A client came to us with a familiar goal: a food marketplace where many restaurants list, customers order, and drivers deliver — with the platform earning a commission. Here's how we approached it, the architecture we chose, and the results.
1. The brief
Connect local restaurants with hungry customers in one app: browse menus, order, pay, and track delivery in real time — while the platform handled payments, commissions and payouts to each restaurant.
2. How we built it
- 1
Vendor onboarding
Self-serve restaurant signup, menu management and Stripe Connect accounts.
- 2
Discovery
Search and filters by cuisine, location and rating to drive orders.
- 3
Real-time orders
Live order status from kitchen to doorstep via a socket layer.
- 4
Split payments
Each payment auto-split: platform commission + restaurant payout.
- 5
Admin & analytics
Moderation, fee config and revenue dashboards.
3. The order model
model Order { id String @id @default(cuid()) customer User @relation(fields: [customerId], references: [id]) customerId String restaurant Vendor @relation(fields: [restaurantId], references: [id]) restaurantId String items OrderItem[] total Int commission Int status OrderStatus @default(PLACED) createdAt DateTime @default(now())} enum OrderStatus { PLACED ACCEPTED COOKING OUT_FOR_DELIVERY DELIVERED }4. The stack
Next.js
Web + admin
PostgreSQL
Orders & menus
Stripe Connect
Split payouts
Socket.IO
Live tracking
5. The results
- Timeline
- ~14 weeks to launch
- Model
- Commission per order
- Related service
- Marketplace Platforms
Need this built? Explore our Marketplace Platforms service.
View service →Written by WeBuildCrew Team · Published 26 October 2025 · 9 min read