Thanks for your interest in contributing! Here's how to get started.
- Fork the repo and clone it
- Follow the Getting Started guide to get the app running locally
- Create a branch for your changes:
git checkout -b feat/your-feature
# App (web preview)
cd app && npm install && npm run dev
# Backend (local emulator)
cd backend/functions && npm install && npm run serve
# Landing page
cd web && npm install && npm run dev- TypeScript everywhere — no
anytypes - TailwindCSS for styling — no inline styles
- Named exports only — no default exports
- i18n — all UI text goes through i18next, never hardcode strings
- Services — components never call Firebase/Capacitor directly, use the service layer
We use Conventional Commits:
feat: add ticket search for new region
fix: calendar export missing end time
chore: update dependencies
refactor: extract camera logic into hook
- Keep PRs focused — one feature or fix per PR
- Make sure
npm run buildpasses inapp/,backend/functions/, andweb/ - Describe what changed and why in the PR description
- Link related issues if applicable
See the Architecture docs for how the codebase is organized.
Open an issue or start a discussion — happy to help.