HOME / WORK / KARACHI CHAAT HOUSE

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.

LIVE BUILD · RESTAURANT PLATFORM // JAMSTACK · SQUARE · UBER DIRECT // LIVE   Visit karachichaathouse.com →
4
Connected surfaces — web · kiosk · menu wall · ad loop
3
Self-serve order channels
100%
Server-authoritative checkout
Pass
Field Core Web Vitals (CrUX)

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.

001

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.

002

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.

003

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.

004

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.

005

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.

006

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.

See it live.

The same platform, in the room it runs. Every surface below is live on Devon Ave — verifiable in person or at karachichaathouse.com.

Karachi Chaat House — live site
EXHIBIT AKarachi Chaat House — live site, original food photography
Karachi Chaat House — self-serve ordering kiosk
EXHIBIT BSelf-serve kiosk — the live KCH ordering flow, tap to order
Karachi Chaat House — three-screen menu wall
EXHIBIT CThree-screen menu wall — fed live from Square POS
Karachi Chaat House — 100-inch storefront display
EXHIBIT D100-inch storefront display — automated promotional loop
Karachi Chaat House — system data flow Conceptual, partner/category-level data flow: guest orders through web, kiosk, or table QR into a hand-built app layer that reads menu and writes orders and payments to Square (the single source of truth), records loyalty in Supabase, dispatches delivery through Uber Direct, and sends SMS through Twilio. Square feeds the live menu wall and ad loop. FIG.01 — KCH PLATFORM · SYSTEM DATA FLOW How the platform fits together CONCEPTUAL · PARTNER / CATEGORY LEVEL · EVERY PATH LIVE ON DEVON AVE GUEST in-store · online ORDER SURFACES · 3 SELF-SERVE WEB ORDERING custom site · checkout SELF-SERVE KIOSK same flow as web TABLE QR scan · order · redeem APP LAYER Hand-built Jamstack + serverless functions SERVER-AUTHORITATIVE ① NETLIFY GIT-CD IN-BUILD VERIFY GATE ④ CSP · SELF-HOSTED TYPE CORE SERVICES SQUARE — POS menu catalog · payments · orders SINGLE SOURCE OF TRUTH SUPABASE loyalty state — ChaatPass ③ UBER DIRECT first-party delivery dispatch ② TWILIO SMS — confirmation + loyalty DISPLAY SURFACES · FED LIVE FROM POS MENU WALL & AD LOOP three-screen menu wall + 100″ storefront loop — a price change on the register is a price change on the wall LIVE MENU · PRICE SYNC 1 Server-authoritative — subtotals, delivery thresholds & loyalty caps validated on the server, never trusted from the browser. 2 Delivery funds captured at checkout, auto-refunded if dispatch fails; tips passed 100% to the courier. 3 Loyalty redeems across all three self-serve channels — a guest is never routed to the counter, and a loyalty failure never blocks the sale. 4 Every release ships through an in-build verify-and-assert gate; a failed check publishes nothing and the last good version keeps serving.

The stack.

FRONT

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.

COMMERCE

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.

BACK

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.