Appearance
Contributing
Who this is for: Developers working in this monorepo
Layout
apps/web # Next.js tenant app
apps/worker # BullMQ worker
packages/domain # Pure TS engine + RBAC
packages/db # Drizzle schema / seed
packages/emails # Email templates
docs/ # SYSTEM_PLAN (engineering)
docs-site/ # This VitePress user documentation
presentation/ # Stakeholder slide deck
scripts/ # tenant:create and fixturesConventions
- Prefer small, focused changes
- Keep example school data out of product defaults
- Match existing naming, types, and UI patterns
- Update
docs-site/when user-facing behaviour changes - Keep
presentation/index.htmlconsistent withdocs/SYSTEM_PLAN.mdwhen product decisions change
Checks before opening a PR
bash
pnpm test
pnpm docs:build
pnpm --filter @schoolrota/web lint # if configuredDocumentation screenshots
After UI changes, refresh screenshots using the checklist in scripts/capture-doc-screenshots.md.
