Everything a small café needs, none of the chain-restaurant cruft
Six product areas, all included on every plan. Built around the actual workflow of a 1–6 branch independent café.
Point of sale
Tablet-first order screen, built for counter speed
The till is the screen your baristas spend their whole shift on. EspressOS treats it as a real product — big tap targets, no hover-only interactions, optimised for one-handed use while the other hand is on the espresso machine.
A typical order at a small café is 1–3 items with a couple of modifier picks (size, milk type, sugar level). EspressOS optimises the path for exactly that flow:
- Product grid grouped by category, filterable by typing
- Modifier groups attach to product categories — you don't see "soy milk" when you tap a pastry
- Cart on the right, payment buttons big and unambiguous
- Cash, bank transfer (with reference number capture), and GCash payment methods built in
- Void requires a manager QR scan — cashiers can't void on their own

Offline-first sync
The data SIM dropped. The till keeps working.
Most cafés in the Philippines run on a data SIM with intermittent connectivity. EspressOS assumes the network might be gone at any moment and is designed to keep selling regardless.
Every tablet has a local SQLite database. Orders, payments, stock changes, and customer point updates write locally first and sync in the background when connectivity returns. There's no "saving…" spinner that blocks the next sale. There's no manual reconciliation when you come back online.
- Order completes in milliseconds — sync happens after the receipt prints
- SignalR real-time push between paired tablets within the same branch (when online)
- Polly-based retry with exponential backoff for transient failures
- Conflict resolution favours the local truth (the tablet that actually rang the sale), with audit logging when the cloud and local disagree

Dual printing
Bar and kitchen slips fire simultaneously, every order
A typical Filipino café order has both drinks and food. Most POS systems make the cashier choose which printer to fire and when — EspressOS routes automatically based on product category.
Two Senda SDXP-210 Bluetooth thermal printers, paired once to the tablet:
- Drinks go to the bar printer the moment the order is rung
- Food goes to the kitchen printer at the same time
- Slips show items, quantity, and notes — no prices, no payment details (kitchen staff don't need the cashier's report)
- Printer failure is caught and logged — a broken printer never blocks order save or payment
ESC/POS layout is tuned for 58mm thermal paper (32 chars per line) so the receipts look right out of the box, no template fiddling required.

Customer loyalty
QR-based loyalty, no plastic cards
Customers show their QR code on their phone (or a screenshot — works offline too). Points earned at any branch are spendable at any other branch under the same café.
- 1 point per ₱100 spent, redeemable as ₱1 — no abstract point currencies to translate
- Cross-branch balance: earn at Lian, redeem at Tuy, the math just works
- Manual adjustment with required reason — your manager can fix a dispute without unlocking a hidden admin menu
- Adjustment history is audited so disputes 6 months later still have a trail
- Loyalty redemption can't exceed the order total (no negative bills)

Inventory & recipes
Stock auto-decrements when you sell a coffee
Define your recipes once — say a cappuccino uses 18g espresso beans + 150ml whole milk — and the inventory tracks itself. Manual stock counts only when you need them.
- Ingredient catalogue with current stock, low-stock threshold, cost per unit
- Recipes link products to ingredients with quantity used
- Stock decrements automatically when an order completes
- Manual adjustments (wastage, miscount fix, restock) require a reason and create an audit row
- Low-stock alerts surface on the dashboard so you reorder before you run out, not after
- Ingredient purchase log — total cost, supplier, date — feeds COGS into the reports

Reports
P&L, top products, year-over-year — without leaving the laptop
The admin web (this site) is built for off-site owners. Pull up reports from home in the morning, spot the dip in afternoon sales, decide whether to push the loyalty promo this weekend.
Available from any browser, no app install required:
- Daily sales rollup by branch
- Top products (last 7/30/90 days) with per-product margin if you have recipe + ingredient cost set
- Multi-month sales trends with month-over-month deltas
- Year-over-year comparison ("Was last May better than this May?")
- Expense tracking with category breakdown
- Low-stock and out-of-stock alerts as a single dashboard widget
All reports respect branch attribution — you can filter to one branch or see the whole café rolled up.
