Architecture
All docsA high-level tour for people reading or extending the code. For the full detail, see the README in the repository.
Stack
- PHP on Symfony, organized into domain
modules under
src/Module/. - CalDAV served via sabre/dav
through a dedicated entry point,
public/caldav.php. - PostgreSQL with Doctrine ORM and Migrations.
- Tailwind CSS + DaisyUI for the UI, with Symfony UX (Stimulus and Turbo) for interactivity.
Modules
Each feature lives in its own module under src/Module/ with a
consistent layout — Controller/, Entity/,
Form/, Repository/ — and its templates mirrored
under templates/Module/. Modules are kept independent of one
another; cross-module coupling is treated as a structural defect.
The CalDAV entry point
CalDAV requests are handled by a separate front controller
(public/caldav.php) that boots the kernel per request, rather
than going through the standard web firewall. This keeps standards-compliant
CalDAV clients working alongside the web application.