Category · #decision

Decisions

Architecture decision records — non-obvious choices with rationale, written when made.

6 entries · sorted by last updated

  1. Auth

    2026.05.22 v1.0.0

    User profiles are created by a Postgres trigger, not an API route.

  2. Copy

    2026.05.22 v1.0.0

    All user-visible strings (labels, error messages, button text, page titles, navigation items, etc.) live in `packages/copy`. Source files never contain hardcoded strings.

  3. Error Handling

    2026.05.22 v1.0.0

    Some failures should crash the process or return an error immediately:

  4. Standards & Guidelines

    2026.05.22 v1.0.0

    TypeScript types are erased at runtime. They cannot be used to validate data that arrives from outside the codebase — user inputs, API request bodies, query parameters, external API responses, and …

  5. Supabase & API

    2026.05.22 v1.0.0

    Current API routes live at `/api/` with no version prefix. Versioning (`/api/v1/`, `/api/v2/`) is deferred.

  6. Tooling

    2026.05.22 v1.0.0

    What we chose: Corepack (`corepack enable` + `corepack use pnpm@latest`) rather than `npm install -g pnpm`.