Developers
Contributing
Checks, tests, and the BDD workflow.
Work happens in the TypeScript monorepo, inside Devbox.
devbox shell
bun run checks # format + eslint + tsc -b + quality gates
bun run tests # Vitest unit + BDD + regenerate FEATURES.md
bun run test:fast # fast project — the everyday loop
bun run test:heavy # PGlite, tmux, Storybook, full serverchecks locally is the same command CI runs, from the same locked Devbox environment.
Test kinds
| Kind | Use for |
|---|---|
| BDD | A capability a human would name |
| Unit | A public function — not regex, not source greps |
BDD features are Gherkin in tests/features/**, with step definitions in
tests/bdd/<purpose>/<name>.feature.spec.ts. FEATURES.md is generated from them — never hand
edited.
Conventions
- TypeScript with project references; per-app typecheck via each app's
typecheckscript. - ESLint 9 flat config, dprint for formatting (including Markdown).
- Documentation and code move together. If a doc and the code disagree, fix both in the same change.
This site
apps/site is a Next.js App Router app holding the landing page and the published docs. Its content
lives in apps/site/content/docs. See the app README for the audience split and the link rule.