Custom Restaurant Ordering System: A Real Build, Start to Finish
Every page about “custom restaurant ordering systems” is written by a SaaS company that wants to rent you theirs. This one is different: it’s the build story of a real system I designed and run for Yaki Ya!, a halal Japanese restaurant in London — and you can open the live ordering app right now.
What the restaurant needed
Online ordering without marketplace commissions, a kitchen that sees orders instantly by station, and every customer captured for marketing — plus the long tail of real restaurant life: phone orders, a counter kiosk, table bills, catering enquiries, gift cards and a loyalty scheme. Off-the-shelf tools covered fragments of that list; nothing covered it as one system.
The architecture
| Layer | Technology | Why |
|---|---|---|
| Application | Cloudflare Workers | Serverless — no servers to patch, scales on its own, hosting costs pennies |
| Database | D1 (SQLite) | Owns orders, loyalty ledger, gift cards, waitlist — operational truth |
| Menu cache | Workers KV | 110-dish menu served at edge speed |
| Payments | Open-banking pay-by-bank | Bank-to-bank transfer at checkout — a fraction of card processing fees |
| CRM & marketing | GoHighLevel | Contacts, invoices and campaigns — every order fires events into GHL |
| Staff logins | Supabase Auth | Per-person accounts with role hierarchy across staff/manager/dev screens |
The split matters: the database owns operations, GHL owns the customer relationship. Orders flow one way, marketing flows the other, and neither system pretends to be the other. (The GHL wiring uses the same patterns from my n8n + GoHighLevel guide.)
What it does today
- Customer app — browse, customise, pay by bank; loyalty points earned on every paid order and redeemable at checkout.
- Kitchen board — orders appear per station the second they’re paid; staff work the queue, not a printer tray.
- Manager dashboard — VAT-ready reports, Z-reports, category and menu-engineering analysis, waste tracking, full audit log.
- Staff order entry — phone orders keyed in with “pay at counter” support.
- Kiosk mode — a PIN-armed tablet at the counter for self-service.
- Table bills & waitlist — combined dine-in bills with split-N calculation; a live waitlist with seat-to-table flow.
- Catering & gift cards — longer-lead catering orders with higher minimums; gift cards issued by managers, redeemed at checkout in full or part.
Every feature is config-driven — the restaurant changes prices, hours, lead times and payment rules from a settings screen, not by calling a developer.
The honest cost comparison
| Route | Typical cost | 3-year picture |
|---|---|---|
| Marketplace apps (e.g. Uber Eats) | up to ~30% commission per order | The most expensive money in hospitality — and they own your customer data |
| Ordering SaaS (UpMenu, Deliverect tier) | roughly $50–200+/mo + add-ons | $2,000–7,000+ in subscriptions, feature ceiling included |
| Custom build (this system) | one-off project cost | Near-zero running costs on serverless; you own the code, the data and the roadmap |
Vendor prices move — check them before deciding — but the shape of the maths doesn’t: commissions scale with your success, subscriptions never end, and a custom system is paid for once. Past a modest weekly order volume, custom wins inside the first year.
When custom is (and isn’t) the right call
If you do a handful of online orders a week, use a SaaS tool — genuinely. Custom makes sense when order volume makes commissions hurt, when your workflow doesn’t fit template tools (stations, kiosk, catering, loyalty), or when you want the customer list working for you in a CRM instead of sitting in a marketplace’s database.
If that sounds like your restaurant — or you’re an agency whose client needs this — book a call and I’ll walk you through the live system and what a build for your menu would look like.
Frequently asked questions
How much does a custom restaurant ordering system cost?
A custom build like the one described here is a one-off project cost (typically a few thousand dollars depending on scope) plus near-zero running costs on serverless infrastructure — versus ordering SaaS at roughly $50–200+ per month forever, or marketplace apps taking up to 30% commission per order. Past a modest order volume, custom pays for itself within the first year.
Why not just use Deliverect, UpMenu or Uber Eats?
Marketplaces rent you their audience and charge commission on every order; ordering SaaS rents you features on subscription. A custom system is owned: no per-order fees, your customer data stays yours (and flows into your CRM), and features are built for how your kitchen actually works.
What stack is this built on?
Cloudflare Workers for the app, D1 (SQLite) as the operational database, KV for the menu cache, open-banking pay-by-bank for payments, and GoHighLevel as the CRM — contacts, invoices and marketing automation. Serverless means no servers to maintain and hosting costs of pennies.
Can it handle dine-in, kiosk and phone orders too?
Yes — this build runs online ordering, staff-entered phone orders, a PIN-armed self-service kiosk mode, table bills with split calculation, a waitlist, catering orders with longer lead times, and gift cards, all feeding one kitchen board.