Preppa: a two-sided home-cooked food marketplace
Preppa lets home cooks sell meals, run subscription meal plans and take bookings, while customers browse, order and pay in one app. I built the customer app, the cook workspace and an admin console as one Expo and React Native codebase that also ships to the web, on a Supabase backend with 225 versioned SQL migrations and 41 Edge Functions. Payments and cook payouts run through Stripe Connect, with automated payout reconciliation and a weekly payout sweep. Cook onboarding includes document review, and in-home cooking bookings sit behind a separate, stricter vetting step. CI type-checks every push, then replays the full migration history on a fresh Postgres and runs database regression tests. An earlier browser-only prototype, PrepDash, is where I first worked out the operator console.
- Stack
- Expo, React Native, TypeScript, Supabase (Postgres, Auth, Edge Functions, Storage), Stripe Connect, GitHub Actions
- Status
- Deployed, in pre-launch acceptance testing. Built since July 2026.
- Security
- Row Level Security on data tables, checked by regression tests; privileged actions re-verified server-side and a trigger blocks role self-escalation; Stripe and Mux webhooks are signature-verified; uploads are validated by their real file bytes, not the declared type; native sessions live in the OS keychain; CI scans the production web bundle for secret keys.