docs: ADRs 0011-0013 for Sprint 1 stack, user store, and Docker boundary
Mirror to GitHub / mirror (push) Canceled after 0s

This commit is contained in:
SinachPat
2026-08-15 20:07:44 +01:00
parent a037b882e9
commit 97f31315bd
4 changed files with 81 additions and 0 deletions
@@ -0,0 +1,26 @@
# 11. Fastify is the API server; React + Vite is the web shell
- **Status:** Accepted
- **Date:** 2026-08-15
## Context
IMPLEMENTATION §1 names "Express/Fastify" for the backend and "React + TypeScript" for the frontend. Sprint 1 required committing to one server framework before the first route and test.
## Decision
Use **Fastify** for `api/`, and **React 19 + Vite + vitest + @testing-library/react** for `web/`.
### Options considered
- Express (matches the plan's pseudocode).
- Fastify (chosen).
### Rejected
- Express — the plan allows either; Fastify ships built-in JSON-schema validation, native async handlers, and first-class TypeScript, which removes glue the plan would otherwise write by hand.
## Consequences
- Route handlers return via Fastify's `reply` object and validate payloads schema-first (the signup route enforces email format and password length).
- Future routes should keep using Fastify schema validation at the boundary rather than hand-rolled checks.