Contributing
Synaplan is Apache-2.0 licensed and developed in the open. Contributions — bug reports, fixes, features, docs, plugins — are welcome.
Where things live
| Repo | Purpose |
|---|---|
| synaplan | Main app: Symfony PHP backend, Vue 3 frontend, plugins, deploy/ contract |
| synaplan-docs | This documentation site (docs.synaplan.com) |
| Synamail | Outlook add-in |
| synaplan-desktop | Synaplan Desktop — companion app (Windows / macOS / Linux), public beta; see Synaplan Desktop |
| synaplan-apps | iOS and Android apps (Capacitor shells around the same SPA) |
| synaplan-nextcloud | Nextcloud integration |
| synaplan-opencloud | OpenCloud integration |
| synaplan-owncloud-online | ownCloud.online integration |
| synaplan-tts | Optional Piper TTS service |
| synaplan-base-php | Base Docker image (FrankenPHP + gRPC + whisper.cpp) the platform builds on |
| synaplan-charts | Helm charts for Kubernetes |
| All repositories | The full metadist organization |
The production compose files, node inventory and roll scripts for web.synaplan.com are in a private synaplan-platform repository; the reproducible parts are the public deploy/ contract and the layout on Hosting Platform.
Documentation site pages
This site is a Markdown catalog rendered by index.php. Every page must be
registered in the $docsMap array there (and listed in $sections). That
catalog is also what the Synaplan chat assistant learns from: the site
exports it as /docs-manifest.json and /raw/{slug}.md, and an install
syncs those pages into its documentation corpus. A page that is not in
$docsMap will not appear in the sidebar, the sitemap, or the assistant's
answers.
Ground rules (main repo)
The development guidelines and code standards live in AGENTS.md at the repo root. The short version:
- English for all code, comments and commit messages.
- Conventional Commits (
feat:,fix:,refactor:,docs:, …). - Feature branches + pull requests — never commit directly to
main. - Run the quality gate before committing — lint, static analysis and the full test suites run inside the Docker containers via the
maketargets.
Development setup, commands and architecture notes: docs/DEVELOPMENT.md.
Writing plugins
Synaplan has a non-invasive plugin system, so you can extend the platform without forking it. Architecture, the plugin manifest, and an install walkthrough are on the Plugins & Integrations page (see For developers: the plugin architecture).
Getting help & reporting issues
- Discord — chat with the team and community; the fastest place for questions
- GitHub Issues — bugs and feature requests