Skip to main
Omar Nagy.

Client build · livecase 02 / 08

Crema.

A café operating system built from scratch — counter sales, table tabs, kitchen screen, cash, and receipts in one Arabic-first system, from the first order to the last receipt.

Next.js 16React 19SupabaseModular monolithRTL

Crema — Arabic-first café operating system landing page, gold كريما wordmark on coffee-dark with a live POS order card.

The problem it solves

A café in North Sinai runs on a notebook and a cash drawer. Orders live in the waiter’s head between the table and the counter, the kitchen works from shouted tickets, and at close nobody can say with confidence whether the drawer matches the day. Off-the-shelf restaurant systems assume English, a stable connection, and a setup consultant — none of which a small café has.

Crema is the counter-to-kitchen system for that café: walk-up sales and open table tabs, a kitchen display, cash settlement, printed receipts, and a daily close that actually reconciles — Arabic-first, right-to-left, built for the way the floor really works.

What it does

  • Counter mode — ring a walk-up order, take cash, print the receipt. The fast path is the default path.
  • Dine-in tabs — open a tab on a table, add rounds as the visit grows, settle at the end; the table frees itself the moment the tab closes.
  • Kitchen display — orders land on a screen in the kitchen, not in a shout. Made, served, done.
  • Money that reconciles — discounts, on-account customers, and A/R collection are first-class moves; the daily close adds up or tells you why not.
  • Arabic-first — the whole surface is right-to-left native, not a translation pass over an English layout.

One order, end to end — verified live on production

  1. 01RingA walk-up at the counter, or a tab opened on a table — one tap, one order.
  2. 02KitchenThe ticket lands on the kitchen screen. Made, served — nobody shouts.
  3. 03SettleCash counted, change exact — discounts and on-account are first-class.
  4. 04ReceiptBilingual, right-to-left, stamped PAID — straight to thermal print.
  5. 05Table freesSettling closes the tab; the floor board reads the table free again.
  6. 06Day reconcilesThe daily close: settled totals equal payments, zero open sessions.

How it’s built

Crema is a modular monolith: thirteen modules — POS, orders, payments, tables, kitchen display, receipts, catalog, inventory, customers, discounts, finances, settings, and a demo seeder — behind frozen contracts, so each piece can be replaced without unpicking the others. Next.js 16 with React 19 on Supabase; one command provisions a new café tenant.

The discipline that made one-day-to-live possible: the money path first. Before any feature breadth, the spine — log in, ring an order, take cash, settle, receipt, table frees, totals reconcile — was built end-to-end and verified in a real browser against a seeded café, on the dev server and on a production build. Four end-to-end runs, counter and dine-in both, to green. Feature modules joined only after the spine held.

Thirteen modules, one spine

L1POS · Orders · Payments
L2Tables · KDS
L3Receipts
L4Catalog · Inventory
L5Customers · Discounts
L6Finances · Settings
L7Demo seeder

The number

From an empty repository to a deployed system taking cash on its production URL — one day. Not a prototype: the live deployment passed the full acceptance test on both money paths, with the failures found by the first E2E run root-caused and fixed the same day. A second build day added the settle seams (discounts, on-account, collection) and five breadth modules.

The build log — hours from the first commit

Money path verified green — counter + dine-in4h 06m
Deployed to production4h 38m
Kitchen screen + multi-payment + thermal print15h 52m
v2 — settle seams + five breadth modules62h 34m

Measured between commit timestamps in the repository log. Four hours to a verified money path, the kitchen in the loop the same day, and the settle seams — discount, on-account, A/R collection — wired two days later.

Built for a real café as a trade-for-proof engagement — the same family as Harmonia: a real business runs it, and the build is the receipt.

13
independent modules
2
money paths verified live
4
E2E runs to green
RTL
Arabic-first