THE STACK
Next.js App Router · TypeScript · React Server Components by default
Supabase Postgres · Row-Level Security enforced on every table
Supabase Auth · Storage with per-org prefixes and RLS on the bucket
Vercel deployment · migrations applied by a human, never by CI
Genius Scan SDK for on-device capture and perspective correction
Multi-tenant from the first commit · two CI guards: a table without RLS fails, code without RLS fails
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.