Thanks for your interest in contributing.
- Open an issue first for non-trivial changes
- For bugs, include steps to reproduce and expected vs actual behavior
pnpm install
pnpm --filter @workspace/db run push
pnpm --filter @workspace/api-server run devThe API contract lives in api-spec/openapi.yaml. This is the source of truth.
- Edit the OpenAPI spec first
- Run codegen:
pnpm --filter @workspace/api-spec run codegen - Implement the route in
api-server/src/routes/ - Use generated Zod schemas for input/output validation
Never edit files in api-zod/src/generated/ directly.
The schema lives in db/src/schema/index.ts.
- Edit the schema
- Run:
pnpm --filter @workspace/db run push(dev only) - For production, generate and apply a migration
Never use console.log in server code. Use req.log in route handlers and the singleton logger for non-request contexts.
pnpm run typecheckMust pass with zero errors before opening a PR.
- One concern per PR
- Clear description of what changed and why
- Reference related issues with
Closes #<number>
By contributing, you agree that your contributions will be licensed under the MIT License.