Clear entry points
See the exact pages and runtime routes you can hand to teammates once the app is deployed.
Guide
This page is the hand-off surface for developers and product teams. It explains which routes matter, which commands are worth memorizing, and where to extend the project without turning the codebase into ceremony.
See the exact pages and runtime routes you can hand to teammates once the app is deployed.
Use a short pnpm command surface for local dev, smoke tests, migrations, and observability checks.
Keep extension work predictable by growing features inside a stable folder layout.
Trace continuity survives from the route adapter down to the Drizzle query layer.
/EveryoneOverview page that introduces the stack, architecture, and sample feature flow.
/guideDevelopersOnboarding page for commands, routes, extension points, and project structure.
/operationsOperatorsRunbook page for health checks, metrics, logs, traces, and Tempo usage.
/api/healthLoad balancers / probesHealth JSON with app name, active database mode, and tracing configuration.
/metricsPrometheus / SREMetrics exposition for route counters, process metrics, and database timings.
/api/subscribersFeature smoke testsReal sample workflow using Zod validation, Drizzle persistence, and tracing.
src/appRoute entrypoints, page composition, and thin HTTP adapters only.src/featuresBusiness rules, validation contracts, and repositories grouped by domain.src/serverEnv parsing, observability, db wiring, and generic HTTP utilities.src/componentsReusable UI primitives and client components that stay close to the app.drizzleGenerated SQL migrations kept outside src for cleaner runtime code.opsLocal Grafana and Tempo provisioning for observability smoke tests.pnpm checkRun linting, type checks, and unit tests in one pass.pnpm e2eMigrate the local database, build the app, and run Playwright.pnpm observability:upBoot Grafana and Tempo locally with ready-to-use provisioning.pnpm observability:testStart the stack, run the app, and verify spans reach Tempo.pnpm db:migrateApply committed migrations to the configured database.pnpm devStart the local development server with the current configuration.Entry point
A browser or API client loads a page or posts JSON to a route handler.
Route adapter
The App Router file parses input, starts the route span, and delegates immediately.
Service boundary
A feature service applies rules and emits a business-level span with stable names.
Repository and DB
A repository performs the Drizzle query and records database timing in child spans.
Observability trail
Logs, metrics, and traces are emitted together so the request can be reconstructed later.