CONTRIBUTING.md in the repository for the complete guide.
Before you start
Check existing issues before starting work, and open an issue or discussion first if you’re planning something large. Keep each pull request focused on one feature or fix — it makes review faster and keepsgit blame useful later.
Branch names and commit messages
Branches are named<type>/<short-description>, for example feature/calendar-view, fix/login-validation, or docs/contributing. Commit messages follow Conventional Commits:
Coding standards
- PHP — PSR-12, typed properties, strict typing, constructor property promotion. Keep controllers thin — move business logic into services.
- React — functional components, hooks, small and composable components, local state where possible.
- TypeScript — avoid
any; preferunknownor a proper type/interface, with strict typing enabled. - Styling — Tailwind utility classes, no inline styles, reuse existing components before creating new ones.
Before opening a pull request
Run the test suites and confirm they pass — see Testing for the exact commands. Every bug fix should include a regression test where possible. A good pull request:- targets the
masterbranch - passes all CI checks
- includes a clear description of what changed and why
- includes screenshots for UI changes
- updates documentation if the change affects a workflow, configuration, or public behavior
Documentation is treated as part of the implementation, not an afterthought — if your change affects something described in these docs, update the relevant page in the same pull request.
