A curated private-chef marketplace
Two-Sided Marketplace iPhone App
An iOS marketplace connecting clients with vetted private chefs: operator-reviewed onboarding, request-to-book with menu proposals, Stripe Connect payouts, and 18 push notifications.
- Expo
- React Native
- Clerk
- Supabase
- Stripe Connect
- Cloudflare R2
- GitHub Actions
The problem
The business vetted every chef by hand and booked every event over text and email. Growing meant adding chefs and clients without losing the curation that made the brand worth paying for. Off-the-shelf booking tools could not handle a three-way workflow in which the operator approves the chef, the chef proposes the menu, and the client approves the price.
What I built
An iPhone app with three roles, each with its own experience:
- Clients browse and search approved chefs, request a booking, review proposed menus, approve, and pay.
- Chefs apply in three steps (training, cuisines, insurance details, and a liability attestation), build a profile with photos, propose menus, invoice, and get paid.
- Operators review applications in a queue with comments, approve profiles before they go public, sign off on proposals, and close bookings.
The booking flow runs: request → details approved → menus proposed → client approves → operator signs off → chef invoices → client pays → chef requests close → operator closes. Every booking has a comment thread, and there is a support inbox for everything else.
How it works
- Roles are set on the server. Sign-in runs through Clerk with email verification, and a signed webhook assigns the role in the database, so the app never trusts the phone to say who someone is.
- Payouts run through Stripe Connect Express, so chefs are paid directly and the business never holds their money.
- 18 push notifications fire only when someone has to act. Never to the person who acted, and never on drafts.
- Photos live on Cloudflare R2, and drafts autosave while chefs build their profiles.
- Postgres with row-level security keeps each role’s data separate, behind 24 edge functions.
Every push to the repository runs the full test suite (187 unit tests across 34 suites at last count), and passing builds go to TestFlight through cloud builds. Before writing code, I modeled vendor costs at 100, 1,000, and 10,000 users, so the owners knew what the platform would cost to run as it grew.
Stack
Expo and React Native, Clerk, Supabase (Postgres, row-level security, edge functions), Stripe Connect Express, Cloudflare R2, Expo push notifications, GitHub Actions CI, TestFlight.
Where it stands
In App Store review as of September 2026. After launch, the owners can choose a care plan: vendor accounts held and paid for them, break-fix support with a response window, and new features scoped and quoted one at a time.
Have the same problem?
Twenty minutes is usually enough to tell whether it is the same leak and what fixing it would take.
Related builds
Soko Healthcare
Soko Healthcare: Website, Intake & Speed-to-Lead System
Moving a South Florida nurse recruitment firm onto Cloudflare with two-sided intake forms, 60-second lead alerts, a recruiting CRM design, and pages built to show up in AI search.
OpsPal
OpsPal Client Portal & E-Signature
An invite-only portal where OpsPal clients see their work log, hour balances, requests, quotes, agreements, and payments, with every request checked on the server.
OpsPal
Custom CRM, CPQ & Quote-to-Cash Platform
The CRM OpsPal runs on: accounts, leads, and deals with scoring, a pricing book and quote builder, agreements with e-signature, payment links, commissions, and finance dashboards.
In-house R&D
Autonomous AI Build Pipeline (R&D)
A scheduled pipeline in which an AI coding agent ships one tested increment at a time to a 3D game, with a render check, automatic rollback, and alerts that make failure impossible to miss.