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, all in one Arabic-first system.

Next.js 16React 19SupabaseModular monolithRTL

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

01 · one order, end to end

Counter to close, no shouting.

The café ran on a notebook, a cash drawer, and shouted tickets. Crema is one tap to ring, a screen in the kitchen, cash that reconciles, a receipt, and a table that frees itself.

  1. 01RingA walk-up, 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.

02 · thirteen modules, one spine

A modular monolith.

Thirteen modules behind frozen contracts, so any piece swaps without unpicking the others. The money spine was built and verified end-to-end before a single feature module joined it.

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

03 · empty repo → live

One day to a system taking cash.

Measured between commit timestamps: four hours to a money path verified green on both counter and dine-in, deployed to production by hour five. Not a prototype, a live system.

1 dayempty repo → live on production

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

the receipts

13
independent modules
2
money paths verified live
1d
empty repo → live POS
RTL
Arabic-first