GPS for Life · Family edition
Build status
Internal scaffolding. The family landing page replaces this at build item 17, when approved copy exists. Launch target is 22 October 2026; no student has access until every safety-gate item is ticked.
1 / 22Build items done
0 / 12Safety gate ticked
22 OctLaunch target
Done
- ✓Repo scaffold — Next.js 14 App Router, React 18, TypeScript strict
item 1 - ✓Zod-validated configuration, safe to run with an empty environment
src/config.ts - ✓route() / ApiError — uniform JSON error translation
src/lib/http.ts - ✓Separation assertion — refuses to start on a district value
src/lib/separation.ts - ✓UI primitives and design tokens
src/web/ui - ✓CI — typecheck + tests against live Postgres
.github/workflows
Next
- ○Infrastructure: Neon, Fly.io, Cloudflare, secrets, backups
item 2 - ○Migrations: audit log, withActor(), the RLS pattern
item 3 - ○Migrations: households, students, the 13+ gate column
item 4 - ○Real authentication — separate parent and student credentials
item 5
Flags that must stay off
- OFFSMS — built now, switched on only when this edition’s own toll-free number is verified and the consent record is live
S10a, S10b - OFFRisk detection — stays off until clinical and legal review are complete
S7, S8
Both defaults live in the committed configuration, not only in the deployed environment. The separation audit asserts it from the repository.
Separate from the district product in every dimension: own database, own keys, own Stripe account, own toll-free number, own cookie (gfl_family_session), own subdomain (family.gpsforlife.ai). The one permitted overlap is the Twilio account and business profile.