On the record · 2025 to now · Independent

Mantel

A white-label operations platform for restaurants and bars in Ecuador, from the floor to the SRI. Built for one room first.

When
2025 to now
For
Independent
Role
Design engineer
Customer zero
El Encanto, Quito
Timeline
2 months
Tools
Paper, Notes, Claude
Built with
React, Tailwind, Hono on Node, Postgres, Drizzle

The brief

Mantel is a white-label operations platform for restaurants and bars in Ecuador: the floor, the kitchen, inventory and cost, the digital menu, staff and roles, SRI electronic billing, and a public website with online reservations, in one system. I'm designing and building it, with El Encanto in Quito as customer zero: a wine garden that needed to run service, and a real Friday night to prove the whole thing against.

The Mantel landing: the floor on a screen and the comanda on a phone, drawn at true scale
Mantel, as the landing draws it: the floor on the desk screen, the comanda on the phone.

Customer zero

A restaurant isn't won at the door. It's won in the stretch between sitting down and leaving: the order, the kitchen, the bill, the inventory, the SRI. And most places in Ecuador run that stretch on a pile of disconnected tools: three WhatsApp groups to coordinate the floor, a paper comanda that never quite reaches the kitchen, an Excel sheet someone fills in by hand at the end of the night to bill against.

Each tool is fine on its own; together they leak. Orders get lost between shifts, stock is a number nobody trusts, and the SRI (Ecuador's mandatory electronic invoicing) becomes a separate chore instead of just the sale. Existing point-of-sale systems don't fix that so much as rent you a rigid version of it: one account shared with a thousand other venues, shaped to none of them.

El Encanto, a wine garden in Quito with an outdoor garden that doubles as the dining room, needed something to actually run service. I wanted to build it from the room out, not fit the room to someone else's POS.

So El Encanto became customer zero. Building against one real venue (its zones, its menu, its rush) kept every decision honest: if a feature didn't help the host on a Friday at 8pm, it didn't ship. But I designed it from the start to travel.

Mantel is white-label. Each venue gets its own instance, in its own color, logo, and domain, and the same operation wears the skin of the place. Customer zero is a wine garden; customer one could be a bar. Proving it against a single, demanding room is what makes it trustworthy enough to become a product.

The before state on the landing: a WhatsApp group, a paper comanda, and an Excel billing sheet
The "before": three WhatsApp groups, a paper comanda, and the SRI as a separate Excel chore.

The floor

The first screen is the floor: a live map of the room, every table free, seated, or reserved, with covers and how long they've been sitting, at a glance. Started to rain? The host disables the terrace zone in one tap.

I split the color language on purpose. The brand red carries warmth and voice; a cool operational teal is scoped onto the product itself: mesa states, live dots, the data. Warm brand, cool data. And nothing in the interface has a border radius except the product prototypes, which stay rounded so they read, unmistakably, as "the actual app."

The waiter takes the order on whatever device is nearest and fires it. The comanda lands on the kitchen and bar displays instantly: a paperless KDS, no shouting across the garden, no ticket lost on the way. Change the order and the kitchen sees it the moment it happens.

A small local print bridge still pushes a physical ticket to the kitchen printer for stations that want paper, without putting paper back in the critical path.

From there it's the whole night, in one place. Inventory runs by store (bar, kitchen, cellar) with recipes tied to each dish, so stock drops with the sale and you get cost and margin per plate, live, instead of a guess at month's end. Cash opens each shift with its float and closes with the count and the difference in view.

Reservations and walk-ins flow onto the floor; staff clock in and out and the rota builds the week; eight roles each see only their slice. Ten areas, but one model: every screen is a live view of the same service.

The kitchen display in the demo: two tickets, one with a dietary restriction flagged
Cocina. The KDS in the demo: two tickets up, one restriction flagged.
The floor in the demo: four active tables, three seated, covers and minutes on each card
Mesas. The floor in service: three tables seated, covers and minutes on each card.
Reservations in the demo: three web bookings to confirm and the count for the night
Reservas. Three from the web still to confirm, and the room counted for the night.
Inventory in the demo: plates with cost, margin and units left
Inventario. Cost and margin per plate, and stock that drops with the sale.

Billing and the brand

The part that usually breaks last is billing. The SRI is mandatory, and in most setups it's a separate program someone re-keys into after the fact. In Mantel it isn't bolted on. It's the same object as the sale. The comanda becomes the invoice: 15% IVA and 10% service figured automatically, and when you close the table the SRI is already filed. The bill files itself.

The platform doesn't stop at the back of house. Your public website comes included: a landing for the place, a QR menu in your brand that 86s a dish the instant the kitchen runs out, and online reservations that drop straight onto the same floor your host is watching. A booking made on the website is just another table on the map.

The included public site: a reservation form, and the landing, QR menu and reservations tiles
The public side: landing, QR menu, and reservations, all on the same system.
Invoices in the demo: eighty authorized by the SRI, a credit note at the top
Facturas. Eighty authorized by the SRI, a credit note at the top, nothing re-keyed.

The brand

This is the part I care most about. You don't share one account with a hundred other restaurants. We deploy your own instance, themed to you (your color, your logo, your domain), and the entire operation re-skins to match. The floor, the KDS, the menu, the invoices: one system, your brand.

White-label theming on the landing: seven brands and the same floor re-skinned
Marca blanca. Pick a brand and the whole system changes. One operation, many skins.
Mantel markMantel mark, bone on darkMantel mark in red
The mark, and the mark in red.

Where it stands

Under it: a React + Tailwind client that installs as a PWA on any phone, tablet, or kitchen screen and holds up when the wifi blinks; a Hono API on Node with WebSockets carrying live order state; Postgres with Drizzle, typed end to end; and that small print bridge for the kitchen.

The marketing site itself is built the same way: the "screenshots" on it aren't images, they're the real components running with plausible, ticking data. A prototype you can poke is a better argument than a render.

Mantel is in production today in Quito, running El Encanto's service as customer zero, and in active build as I shape it toward the next venues. It started as the thing one restaurant needed to get through a Friday night. It's becoming the system any of them can run.

The app on three phones: the floor, the kitchen, and open checksThe cash register in the demo: the float, expected cash, and payments of the shift
The app on the phones, and the caja at close.