Skip to main content

Development Workflow

General approach

  • Read the relevant route, component, or Convex module before changing it.
  • Keep new behavior close to the owning feature area.
  • Prefer extending existing patterns over introducing parallel abstractions.

Branching and changes

  • Expect the working tree to be dirty sometimes.
  • Do not revert unrelated user changes.
  • Keep feature work scoped and isolated.

Code organization conventions

  • Put feature UI in the nearest feature folder under components/.
  • Keep low-level primitives in components/ui/.
  • Put shared helpers in lib/.
  • Add new schema and indexes in convex/schema.ts before writing dependent queries or mutations.

Backend conventions

  • Use getCurrentUser() and capability checks where appropriate.
  • Use typed Convex IDs consistently.
  • Keep payment, release, and support flows in their existing domain modules instead of creating catch-all utility files.

Documentation conventions

  • Keep platform docs in docs-site/docs/.
  • Update docs when adding new public routes, env vars, or operational flows.
  • Prefer documenting actual repo behavior, not intended behavior.