The problem
A small café chooses between paper and a cloud POS that wants a monthly subscription and a working connection to take an order. The interface problem is sharper than the architecture one: the same product has to serve a cashier mid-transaction, where every extra tap is a real cost, and an owner doing the month's numbers.
How we built it
- Made the local store the source of truth, with CouchDB replication as an option rather than a requirement.
- Modelled the menu properly — portions, add-ons and per-item routing to the right kitchen station.
- Replaced the usual role dropdown with a per-screen permission matrix, so a shift lead gets exactly the screens they need.
- Added shift tracking and categorised expenses, so the day closes against something.
- Built backup, restore and sync configuration into the admin surface rather than a support call.
The result
Orders taken indefinitely offline, access scoped per screen, and a day that closes against tracked shifts and categorised expenses.

