A full restaurant platform for Karachi Chaat House
The complete digital stack for a high-volume Chicago restaurant — a custom site, online ordering with first-party delivery, a self-serve kiosk, a live digital menu board, and SMS loyalty woven through checkout. Designed, built, and run in production, end to end. Live and publicly verifiable.
A restaurant that runs on its software.
A busy restaurant doesn't need a website. It needs a system: one that takes orders online and at the counter, dispatches its own delivery, keeps the menu on the wall in sync with the register, and rewards regulars — all at once, all fast, and all still standing during a midnight rush. Off-the-shelf tools each solve a slice and leave the seams to the staff.
The brief was to build that system as one hand-built platform — no page builder, no template, no rented lock-in — fed from a single point of truth at the point of sale, fast enough to pass Core Web Vitals in the field, and hardened enough to move real money safely. And then to keep it running in production, not hand it off and hope.
What we built.
Hand-built Jamstack site
Custom-designed and hand-coded — original food photography, structured data on every dish, no page builder and no template. Fast by construction, not by plugin.
Ordering + first-party delivery
A Square-powered menu with online checkout and delivery dispatched through Uber Direct — funds captured at checkout, auto-refunded if dispatch fails, and tips passed 100% to the courier.
Self-serve ordering kiosk
An in-store tablet running the same ordering flow as the web — so the counter is never the bottleneck at peak.
Live digital menu board
A three-screen menu wall plus a large-format ad loop, fed live from the point of sale — a price change on the register is a price change on the wall, with no second system to update.
SMS loyalty, woven in
A loyalty program that redeems across three self-serve channels — online, kiosk, and table QR — and never routes a guest to the counter to make it work.
Structured for discovery
JSON-LD on every dish, a HalalDiet schema no competitor uses, and field Core Web Vitals that pass with room to spare — so the food is findable in Google and in AI answers alike.
The stack.
Hand-built Jamstack
Vanilla ES6+, no framework tax. A strict, hash-pinned Content-Security-Policy and self-hosted type — zero third-party bloat on the critical path.
Square · Uber Direct
Square POS as the single source of truth for menu and payments; Uber Direct for first-party delivery. Server-authoritative pricing — the client can't set its own totals.
Netlify · Supabase · Twilio
Git-connected CD with an in-build verification gate that publishes nothing on a failed check; Supabase for loyalty state; Twilio for SMS. Every release verified live.
A live build, not a handoff.
Most of our work we build, hand over in full, and step back from — the client owns it outright. This one is different: it's a build we run in production ourselves, every day. That's the point of showing it. You don't have to take a case study's word for anything — the site, the ordering, the kiosk flow, the menu board, and the loyalty program are all live right now, and you can go press every button yourself.
Verified every deploy
Each release ships through an automated verify-and-assert gate in the build; a failed check publishes nothing and the last good version keeps serving.
Money path, server-side
Subtotals, delivery thresholds, and loyalty caps are all validated on the server — never trusted from the browser.
Fast in the field
Real Core Web Vitals from real devices pass — not a lab score, the field data Google actually ranks on.