An order built with a thumb beats fifteen messages
July 24, 20263 min read
Today: the panel a taquería's customers used to build their orders now lives on this site, playable. You can assemble a full order — it reaches no kitchen, but everything else is the code that ran in production.
It's worth saying why this helps, because it isn't obvious until you've seen the other side. An order over WhatsApp is fifteen messages: "which filling?", "how many órdenes?", "golden or soft?", "where am I sending them?", "let me go ask about the delivery fee". Somebody at the taquería types all that while working the counter, and at the end somebody transcribes it onto a ticket. Every link in that chain is a chance to get it wrong, and the whole thing occupies a person who should be serving food.
With the panel, the customer does that work with their thumb — and does it better, because nobody knows their own address better than they do. What comes out the other side is a ticket already structured and already priced.
Three practical details that mattered more than they looked:
The price moves on its own when the modality changes. A glass-bottle soda is $30 in the local and $40 once it leaves, because the bottle carries a deposit. Rather than explaining that on a sign, the price recalculates when you pick how you're receiving:
// The glass charge applies whenever the bottle leaves the local.
export function glassApplies(serviceKind) {
return serviceKind === 'pickup' || serviceKind === 'delivery';
}
export function bebidaUnitCents(category, serviceKind) {
return PRICE_BEBIDA_CENTS + (category === 'soda' && glassApplies(serviceKind) ? GLASS_FEE_CENTS : 0);
}
The delivery fee is computed, not negotiated. One free km per orden, and whatever's left at $20 (or $30 after 10pm). Two órdenes at 6.7 km means 2 km free and 4.7 charged: $94. Nobody argues about delivery when the number comes out of a rule instead of out of mental arithmetic at eleven at night.
Every dead end routes to WhatsApp. Closed, out of coverage, a filling ran out, the network dropped: none of those screens leave the customer standing there, they all offer the message button. The panel didn't replace WhatsApp — it took the fifteen boring messages off it.
The full technical breakdown, together with the kitchen board these orders landed on, is in Notes: From a WhatsApp message to a ticket on the kitchen screen.