GoldSyntax Lab · Featured product
From a QR scan at the table to the tab — one real-time system.
CafeSystem brings a cafe's four roles — guest, waiter, kitchen and owner — together in one real-time system. The guest scans the QR at the table and orders without installing anything; the order lands on the kitchen screen and the waiter's board instantly. The interface is in Turkish, as it's built for local cafes.
The problem
In small and mid-sized cafes, orders get lost between paper tabs, spoken hand-offs and a waiter's memory. At peak hours tables get mixed up, the kitchen doesn't know what's queued, and splitting a bill takes forever. The goal: a lightweight but sturdy flow that runs on everyone's own phone and browser — no expensive POS terminal.
The approach
No setup for the guest — the QR opens a browser tab, that's it. The staff side runs in real time: when an order is created, the waiter board, the kitchen screen and the guest's status card all update at once. Money is stored in cents (integer), so there are no rounding errors. Each cafe runs in its own isolated deployment (white-label).
Four roles, one flow
The same order's lifecycle, shown to each role through its own interface.
Guest — from the table, no install
Scan the QR, browse the menu, customize items with options, add to cart, leave a note and send. Then track the order status (preparing → ready) live; call a waiter or ask for the bill.
Waiter — three-column board
Every table on one screen: new orders, open tabs and service calls. Tap a table, see the tab, take partial payment by line item, add a tip, move a table or merge two.
Kitchen — order wall (KDS)
Incoming orders drop onto the kitchen screen as cards and advance as they're prepared. If a receipt printer is connected, an 80mm kitchen ticket prints automatically.
Owner — menu and control
Manage products, prices and images; generate tables and QR codes; pull the end-of-day revenue report; toggle features on and off. No technical knowledge required.
Feature deep-dive
The details that actually run a cafe — daily use, not a showcase.
Thermal receipt printing (80mm)
The tab and the kitchen ticket print in the standard 80mm thermal format — straight from the browser's print preview.
Partial payment by item & tip
Line items on a tab can be selected and paid separately; split bills and tips are handled in one flow.
Move & merge tables
An open tab can be moved to another table, or two tables merged into one — when a group relocates, the screen changes, not the data.
Product image upload
The owner uploads a photo to a menu item — with a drag-and-drop zone, upload state, preview and type/size validation. Images live in storage and appear on the menu instantly.
Robustness & states
What separates a product from a demo isn't the happy path; it's the empty, slow and disconnected moments. All designed.
Loading skeletons
On a slow connection you get a skeleton that gives the page its shape, not a blank jump — for the menu, the board and the owner table.
Empty states
An empty cart and an empty kitchen wall read as calm screens that tell you what to do, not as errors.
Errors & edge cases
Wrong PIN, invalid QR, a closed table and a dropped connection — each is met with a clear message that never leaves the user stuck.
Tech & architecture
Built on Next.js 16 (App Router, TypeScript, Turbopack); data, real time and file storage come from Supabase (Postgres). The interface is a PWA — add it to your phone and it opens like an app.
At its heart, the real-time layer detects a dropped connection and refreshes state on reconnect, so screens don't drift apart during a busy service. Each cafe runs in its own isolated deployment (silo) — white-labeled, separate data.
- Real-time shared cart — multiple devices, one order
- Disconnect-resilient realtime (auto-reconnect + refresh)
- Money in cents (integer) — no rounding errors
- Isolated deployment per cafe (white-label)
- PWA · accessibility · 404 & error-boundary polish
Want a product of your own?
We can design and build an end-to-end product like CafeSystem for you too. Tell us about your idea.