Act 03BiteSquare case study
A cloud kitchen that runs like a pass at midnight
A pure-veg cloud kitchen in Rohini, Delhi, now takes orders on its own site, runs its own kitchen board, and changed hosts without losing a single dish.
- Client
- BiteSquare
- Industry
- Cloud kitchen, Rohini, Delhi
- Live
- bitesquare.in
- Built
- Apr to Oct 2026, 97 commits
- Stack
- Next.js 16, Neon Postgres, Drizzle, Cloudflare Workers and R2


Recorded on bitesquare.in, 20 Oct 2026.
01
The brief
Momos, Maggi, shakes, pizza: 67 dishes in 8 categories, delivered across Rohini, Pitampura, Prashant Vihar and Shalimar Bagh. The first version already had a menu, a cart and a WhatsApp handoff. What it lacked was everything after the customer pressed order: a board for the kitchen, tracking for the customer, and controls for hours and capacity.
Then, in October, came a full redesign and a move off Vercel, with one rule: lose nothing. Not a price, not an add-on, not an order.
02
What we made
Midnight Pass, a new design system: a graphite canvas, amber light, smoked-glass dish sheets and a cream receipt for a cart. Kitchen footage that plays as you scroll, short food loops, and still images for anyone who prefers less motion.
A storefront with dish sheets, customisation, a cart printed like a kitchen ticket, delivery or pickup, UPI payment on the site with proof-of-payment upload, and order tracking with no account needed.
An owner app: catalogue and option groups, a content editor, offers, a kitchen pause and schedule, a live order queue with sound and push alerts, analytics, change requests that sync both ways with Linear, and a switch that shows delivery-app prices next to the cheaper direct price.
- Next.js 16
- Neon Postgres
- Drizzle
- Cloudflare Workers
- Cloudflare R2
03
The hard part
The move. On 11 Oct 2026 we moved the whole kitchen from Vercel to Cloudflare Workers. Every table was snapshotted before cutover and compared field by field after it, and all 166 media files were copied and hash-checked. Old image links still resolve, so rollback is one switch away. The beta Workers adapter broke Server Actions, so we patched it.
The Friday-night rush. A burst of orders should never create duplicates or let one phone number flood the kitchen. Order admission uses Postgres advisory locks, a retry with the same order ID replays safely, limits fail closed, and each phone can hold at most two live orders. One bug we caught on the way: failed WhatsApp retries were eating into customers' order limits. Counters now move only after an order is saved.
04
Proof, with sources.
190 automated tests passing, 0 failing, at release.
SourceTest run at the October 2026 release.
Production check after cutover: every public page returned 200, all 67 dish photos served, 0 page errors, no mobile overflow.
SourcePost-migration production check, 11 Oct 2026.
Catalogue carried across intact: 162 records, 17 option groups, 62 option values, 11 offers.
SourceField-by-field comparison of every table after cutover.
All 166 media files copied and hash-checked.
SourceMigration log, 11 Oct 2026.
Order volume is still low, so this page makes no claims about it.








