- TypeScript strict mode is enabled everywhere (
tsconfig.base.json). - ESLint (
eslint.config.mjs) and Prettier (.prettierrc.json) configs are shared across the workspace — runpnpm lintandpnpm format:checkbefore opening a PR, orpnpm formatto fix formatting issues. - Keep modules and packages within their existing structure — see
docs/architecture.md for the modular monolith
convention used by
apps/apiand the overall monorepo layout. - Add or update tests for any behavior you change — see docs/testing.md.
See docs/architecture.md for the full layout of
apps/ and packages/, and the top-level README for the
product overview and direction.
- Install dependencies:
pnpm install. - Copy any
.env.examplefiles you need (see docs/environment.md) and fill in local values. - Run the app(s) you're working on:
pnpm dev:api,pnpm dev:web, orpnpm dev:mobile. - Before committing, run:
which runs
pnpm check
lint,typecheck, andtestacross the workspace. - Open a pull request against
main. The CI workflows under.github/workflows/run lint/test/build for any package your change touches.
- Keep changes focused and scoped to the area you're working on.
- Prefer extending the existing module/package structure over introducing new top-level layers.
- Do not commit secrets,
.envfiles, or generated artifacts (dist/,.next/,.expo/,*.db).