APPLICATION
Next.js App Router · TypeScript · React Server Components by default
DATA
Supabase Postgres · Row-Level Security enforced on every table
AUTH & STORAGE
Supabase Auth · Storage with per-org prefixes and RLS on the bucket
DELIVERY
Vercel deployment · migrations applied by a human, never by CI
CAPTURE
Genius Scan SDK for on-device capture and perspective correction
TENANCY
Multi-tenant from the first commit
GUARDS
Two CI guards: a table without RLS fails, code without RLS fails
DECISIONS
Architecture decisions recorded as ADRs · every schema change a forward-only numbered migration
The guards matter more than the frameworks. A tenancy mistake in this product is another carrier's revenue on your screen, so the build refuses two whole classes of that mistake.