For cafés and restaurants
A café runs on the floor, the pass and the till. So does the software.
Tarabeeza models a café or a restaurant as the thing it actually is: areas and tables drawn once and operated live, one catalog the kitchen and the stock room both read from, tickets routed to the station that cooks them, and a check that closes however the table wants to pay.
01
The floor is data, not a picture you uploaded
A floor is a canvas with a width and a height, and everything on it is a positioned element with a size, a rotation and a stacking order, each softly linked to the table or resource it stands for. Editing it and running on it are two modes over the same scene, and publishing the drawing to the live floor is a separate act, so a half-finished rearrangement is not what the waiter opens.
- Areas are typed entities — indoor, outdoor, VIP, smoking, family, kids, gaming, rooftop, terrace, private room — each with its own capacity, whether it may be reserved, and a policy block. They are not tags on a table.
- A table carries a number that is unique inside its area, a seat count, a state and a QR token of its own.
- Table state is a machine rather than a colour: available, occupied, payment pending, cleaning, reserved, blocked, out of service.
- Who sees which area is a scope on the person, not a filter on the screen — a role answers what you may do and a scope answers where, down to a branch, a floor, an area, a table or a single resource.
02
One catalog, read by three rooms
The kitchen, the stock room and the cashier read the same record. Categories are a tree, an item can be a product, a meal or combo, a service, an add-on or a package, and the differences between those are fields rather than separate systems bolted together later.
- Variants carry a price difference rather than being a second product, and modifier groups carry a minimum, a maximum and whether they are required.
- A meal is component groups — a main, a side, a drink — where an option can be the default, a substitution with an extra charge, or a quantity of its own.
- Menus can belong to one branch and open on a schedule of days and times, evaluated in the branch’s own timezone — including the window that crosses midnight, so a late menu that runs to two in the morning is one rule rather than two.
- Each item names the station that makes it, which is what routes the ticket later.
03
Tickets go to the station that cooks them
A station is a real record inside a branch, with a code and a service target in seconds, and that target is what the prep-time reporting measures against. The bar, the hot kitchen, the grill and the dessert station each see only what they make, and a takeaway queue is kept apart from the dine-in one.
- Kitchen state is not service state. An item walks pending, queued, preparing, ready, awaiting pickup, picked up, served — and the gap between ready and picked up is a number of its own rather than a rounding error inside "done".
- The board colours on the target rather than only reporting it: the last fifth of a station’s target is a warning band, and a ticket recomputes its own elapsed time against a local clock so it turns red on the second it misses rather than on the next refresh.
- A timed charge has no dish behind it, so an hour on a console never lands on a kitchen screen — the routing rule says so explicitly rather than relying on nobody configuring it.
04
From the recipe to the cost of the plate
A recipe is versioned and a version is immutable, so a sale from March keeps pointing at the version that was active in March. Every stock change is a movement — a purchase receipt, a sale consumption, waste, a transfer, an adjustment, a count, a supplier return, production — and balances are derived from those movements rather than stored a second time where they can disagree.
- A recipe component carries the loss you expect during preparation, folded into the costed quantity, and a component can itself be another recipe.
- Raw materials hold a moving-average cost per stock unit, plus a reorder point and a reorder quantity.
- Waste is written off with a reason, against the same ledger as everything else.
- Cost of goods for a sale is summed from the consumption movements that sale caused. It is never recomputed from today’s supplier prices, which is the difference between a margin figure and a guess.
05
The till, and the guest’s own phone
A visit is a place and a check is money, and they are two records rather than one. That is what makes the awkward cases ordinary: four people at one table, two of them paying separately, one of them paying for a child who is somewhere else in the venue — and nobody entered into anything for any of it.
- A check splits by picking the items out, into equal shares, or by percentage; checks merge, and a charge moves from one to another without disturbing what the kitchen is doing.
- One check can be settled by more than one tender — cash, card, wallet, bank transfer or voucher — walking from open to partly paid to paid as each one lands.
- Discounts, voids, refunds and tips each carry a reason, and past a threshold a manager’s approval. Money is held as a decimal from end to end and never as a floating-point number.
- Scanning the code on the table opens the visit, or joins the one already open — the code itself is what names the branch and the table, and there is no app to download. A second person joining can be made to enter a PIN.
06
The end of the night, and the trail behind it
A cashier shift opens with a float and closes against a count. Cash in and cash out are movements posted to the shift rather than notes in a drawer, and closing sets what the shift should be holding against what was actually counted — so the difference is a figure on the screen at the end of the night rather than an argument the next morning.
- Opening a shift, taking cash in, paying cash out and closing against a counted total are four separate operations, and each of them is written down with the person who performed it.
- A guest asking for a waiter, for water or for the bill raises a real request with a state of its own, routed to whoever covers that area and escalated if nobody picks it up — so "we have been waiting" becomes a number.
- Report rows export as CSV for anyone whose role carries the export permission, so the night leaves the system as a file rather than as a photograph of a screen.
- A discount, a void, a refund, a price override and a stock adjustment each write an audit row naming the person, the reason and the moment, and the trail is read-only by design.
Questions about running a café on it
Can I import the menu I already have?
Yes, from the spreadsheet you already keep it in. The importer reads a workbook, shows you what it understood before anything is written, and then commits: it matches English or Arabic column headings, folds per-language columns into real translation rows, folds a second sheet of sizes into variants of one item, and in replace mode retires the products you left out rather than deleting them, because orders and stock movements still point at them. The rest of the setup — branches, areas, tables, stations, staff and the floor plan itself — runs against a nine-step checklist in the dashboard that reads the account and tells you what is genuinely outstanding.
Does it handle more than one branch?
Yes — one deployment holds many tenants, and a tenant holds branches, floors, areas, and then tables and resources. Nothing caps the number of branches, staff or tables — the only ceilings that exist at all are optional ones an operator can attach to a plan, and a blank one is not applied. A branch carries its own timezone, currency and address, and staff are attached to the part of the estate they actually cover.
How would I know whether the kitchen is slow?
Every station carries a service target in seconds, and the reporting measures against it. The part that usually goes unmeasured is deliberately separate here: an item that the kitchen has marked ready but nobody has collected sits in its own state, so the time a plate spends under the lamp is a number rather than being folded into the cooking time. Report rows can be exported as CSV by anyone whose role includes the export permission.
Bring your own floor plan.
A walkthrough against your venue rather than a demo one — your areas, your menu, and the argument you have every Friday about who is paying for what.
A time, a screen share, and your own floor plan on the screen.
[email protected]