Dishorb · Cursor Miami Ship Night

The menu that answers.

Scan the table QR — or call the restaurant's own phone line — and talk to the menu itself. It explains every dish, knows its real calories and macros, coaches your order to your health goals, speaks your language, and sends the ticket to the kitchen only once it's paid.

The paper menu cannot answer a question

A guest who reads "Fire Egg Wrap" and needs to know whether it has dairy, how much protein it has, or what it is in Portuguese, has to find a server carrying four plates. So they guess — or order the thing they already know.

0Questions a printed menu can answer — about allergens, macros, or anything else
15–30%What delivery platforms charge to be the thing that answers instead
9Languages the waiter speaks at Pura Vida — dish names kept in the original so the kitchen ticket stays readable

The phone is worse: answered by whoever is nearest, mid-shift, over a room full of noise — and every call that rings out during a lunch rush is a paid order the restaurant never learns it lost.

Health coaching that survives scrutiny

Every one of Pura Vida's 91 dishes is decomposed into ingredients and gram weights, matched against USDA FoodData Central, and its macros are summed deterministically in code — not estimated by a model.

"I'm cutting — what here gets me 40 grams of protein under 600 calories?" Answered from the dish's real ingredients, in whatever language it was asked.
  1. Ask anything about any dish — calories, protein, carbs, fat, allergens, what it actually is. Answered from the venue's own data, out loud.
  2. Coach the order to a goal — the waiter recommends dishes for a stated goal and checks "does this fit my budget" against the diner's own daily log.
  3. Every claim is re-verified before it's spoken — a nutrition claim is checked against the dish's real ingredient breakdown before the waiter says it.
  4. It cannot invent — every dish name is resolved against the menu file in code before it can enter a cart. An unknown dish is refused, not guessed.

A hallucinated gluten-free claim is a hospitalisation. Grounding is a correctness requirement here, not a feature — the waiter never states a macro or an allergen it was not given.

One waiter, two front doors

The table QR and the restaurant's phone line are transports, not products. The same agent, the same menu file, the same grounding, the same kitchen ticket.

On the table

Scan. Talk. Eat.

The QR opens the live menu with the voice orb docked. No app, no install, no account. Order out loud in any language; the cart and the kitchen ticket build themselves.

dishorb.com/r/puravida
On the phone

The menu answers the line.

Every restaurant already has a phone number. The same waiter picks up, takes the order over the call, and it lands on the same kitchen screen — the caller becomes their own table.

+1 (325) 880-0800

The order reaches the kitchen screen and the thermal printer directly — no marketplace in the middle, no commission, no intermediary owning the customer. And on a prepaid venue, the kitchen never cooks for an order that didn't pay: the ticket is held until settlement confirms — on a rail where a $12 pickup order settles in under a second for a fraction of a cent, with no chargeback exposure on a card-not-present order.

Go to market — three stages, each funds the next

The menu is the wedge. The rail is the business. The data is the moat.

  1. Stage 1 — the free talking menu. Onboarding a restaurant is one JSON file: db/restaurants/<slug>/menu.json exists, therefore the menu serves and the QR prints. No registration flow, no integration project — deliberately the cheapest customer acquisition in the category. Live in five Miami restaurants today.
  2. Stage 2 — the dataset nobody else is collecting. Every venue that turns the menu on hands us a structured, ingredient-level menu: dishes decomposed into ingredients, USDA-matched, with allergen and dietary tags. Delivery platforms have restaurant names and dish names; they don't have this, because they never needed it. We built it because the agent can't safely answer "does this have gluten?" without it. It compounds with every restaurant, at zero marginal cost.
  3. Stage 3 — the marketplace the incumbents cannot build. With enough venues indexed, the corpus answers what no delivery app can: "forty verified gluten-free meals, Thursday, downtown" · "kosher catering for 120, no shellfish in the kitchen." Search by dietary constraint across restaurants — served as a dashboard and an API. Event catering, corporate, schools: planned in advance, high ticket, far better economics than $18 consumer delivery.

We route demand; we do not own it. The restaurant keeps the customer, the menu and the relationship. We compete on dietary certainty — precisely the axis DoorDash and Uber Eats cannot index, because they never collected the ingredients.

The gate we are not hand-waving: before any dietary claim is sold, it needs restaurant attestation — the venue affirms the attribute with a name and a timestamp, and kosher/halal reference a certification body, not a checkbox. One bad allergen claim ends the marketplace. Nutrition is USDA-grounded today; attestation is what turns inferred tags into sellable claims.

LayerPriceStage
Voice menu + orderingFree, forever — distribution, not revenue1
SettlementTake rate, a fraction of card rates1
Marketplace / dietary search APIPer-order or subscription3
POS / enterprise integrationContract3

See the whole loop, live

Every piece below is the production system — same binary, same data. Open them side by side and watch an order travel.

1 · Order

Talk to the menu →

The table QR view — tap the orb and order by voice, in any language. Ask it for macros, allergens, or a high-protein pick.

2 · Pay

Solana Pay & split →

Ask for the check: a Solana Pay QR settles it in under a second — or split it at the source into house, kitchen and server shares, each paid straight to its wallet.

3 · Kitchen

The kitchen screen →

The ticket appears here only once payment confirms — the kitchen never cooks for an order that didn't pay. (Staff login.)

4 · Payout

The payout board →

Three on-chain balances polled live. When diners pay a split check, watch each destination move — proof the money went where it was promised.

Add your restaurant — watch the clock

Onboarding is not an integration project. Paste your menu's URL or drop the PDF, and the structuring engine reads it, grounds it, and serves it as a live talking menu with its own QR — while you watch.

or
The same engine ingests any format — a website, a PDF, a photo of the printed menu. One file in, a live voice menu out.

What was built tonight

Dishorb runs on a working restaurant system: voice ordering on Gemini Live, five live Miami tenants, kitchen routing to screen and thermal printer, Solana Pay settlement. One Rust binary, one port, one SQLite file — no framework, no build step.

Tonight's work: the phone line — Twilio Media Streams relayed into the same voice session the browser orb uses, so the caller gets the identical menu grounding, macros and ordering, with no second persona to drift — plus the grounded health-coaching tools and the prepaid settlement gate. It sits on a branch cut at kickoff, so git log main..shipnight is the diff of what was built during the event.