This is a Vite + React scaffold wired for Supabase Auth, basic group sharing, expenses, balances with a minimal cash-flow algorithm, settlements, and a QR payment request route.
- Node 18+
- Supabase project with Email (magic link) enabled
- Env vars set in a
.envor via Netlify:VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEY
npm install
npm run dev
Open http://localhost:5173.
- Use
SETUP_TASKS.mdto provision the project and set redirect URLs. - In Supabase SQL editor, run the schema from the Appendix in
SETUP_TASKS.md.
- Auth: email magic link (
/→AuthPage). - Groups: create/join, list (
/groups). - Group dashboard: members, expenses, balances, settlements (
/groups/:groupId/*). - QR/Payment request route:
/pay/:token.
Algorithm tests with Vitest: npm test.
- This scaffold expects the Supabase tables and RLS policies from
SETUP_TASKS.mdto be present. - QR flow uses short-lived tokens from
payment_requests. In MVP, tokens require login and group access; one-time use can be added later. - Netlify secrets scanning: Frontend apps must ship public env vars (VITE_*). Supabase anon key and URL are safe to expose with RLS. We configure
SECRETS_SCAN_OMIT_KEYSinnetlify.tomlso Netlify does not block the build.