IronSilk
Cycle-aware training and recovery app, private beta
Vanilla ES modules · Supabase · Netlify Functions
The decision
Routing is fail-closed. Any failure resolving a profile — a missing row on a brand-new account, a network error, an RLS misconfiguration — lands the user on discovery, never on login. Sending them to login looks safer and is not: a new user with no profile row bounces between login and index forever. Onboarding commits by UPSERT rather than UPDATE, and a failed write stops the flow instead of advancing it.
architecture.md · The Auth Guard State Machine
- row-level security policies
- 6row-level security policiessupabase_rls_upgrades.sql, every one scoped to the owning active user
- lines of architecture written before the code
- 741lines of architecture written before the codearchitecture.md — hard constraints, viewport modes, state machine
