A guest scans the code on the table, orders from their own phone, and the ticket appears on the kitchen screen before the waiter would have finished walking to the till. The kitchen bumps it, and the guest's phone says the food is on its way. One system, two directions, no app to install.
A waiter takes an order, walks to the terminal, types it in, and the kitchen starts cooking: two to four minutes of walking per order, plus the mistakes that come with retyping. Here the guest's phone is the terminal. The order is on the kitchen screen in a fifth of a second, already split between the hot line, the grill and the bar, with allergies and "no onion" attached to the right dish. The waiter's time goes back into the dining room, where it earns money.
| Step | Paper / walk to the till | This stand |
|---|---|---|
| Order reaches the kitchen | 2–4 min of walking and typing | under a second, measured above |
| Sold-out dish | guests keep ordering it until every waiter is told | greyed out on every phone at once |
| Allergy note | repeated verbally, sometimes | attached to the dish on the ticket |
| Split bill | arithmetic at the table | computed from who ordered what |
| Weak wi-fi | order retyped, sometimes twice | queued locally, delivered once |
Kitchen tablets sleep, screens get carried through the walk-in, phones lock. A plain broadcast
loses whatever happened while a screen was away. Every state change here is appended to an
events table first and broadcast second, so a reconnecting screen says
since=1841 and receives the missed tickets in order before live traffic resumes.
A phone on a bad connection cannot tell "the request never arrived" from "the answer never came back". So it retries — and a naive kitchen cooks the steak twice. Each order carries a key generated on the phone; the database has a unique index on it. Retry as often as you like: one steak.
People do not order individually; they order together. The cart is keyed to the table visit, every line remembers which phone added it, and that single decision gives you live "Basil added hummus" updates and a bill that can be split by person without anyone doing arithmetic.
Not from a field in the menu. Each station's current queue is summed in cooking minutes, divided by
three pairs of hands and capped at ten minutes, then added to the longest dish in your own order:
eta = max(dish) + 0.5 × rest + min(10, backlog / 3). Press Rush hour on the home
page and watch the promise move. The panel above compares promise to reality — and counts only orders
a human actually ran on the kitchen screen, because the synthetic tables cook on a compressed clock.
Stock food photography is somebody else's plates and roughly 200 KB each. All 48 dishes here are drawn by a small generator from a palette and a shape archetype — about 1 KB each, inline in the HTML, sharp on any screen, and legally ours. Zero image requests on the menu page.
sim come from a generator so the kitchen screen is alive at 3 am. They never take the featured table.since= replay described above.