I run a fried chicken restaurant. I was losing a full day every week to admin — re-writing expenses into a ledger, exporting to Excel, computing payroll for 13 staff by hand. Four weeks of build time later, that's two hours.
One install on every shift phone and the owner's device. Six modules, one database, one login. No add-ons, no plugins, no separate spreadsheet anywhere in the flow. Built specifically for a single-outlet Indonesian F&B with cash-drawer reality — not a generic SaaS bent into shape.
Two-tap checkout optimized for fried chicken combos. Splits cash, QRIS, bank transfer and online orders (GoFood / GrabFood) into their own drawers. Prints a thermal receipt to the kitchen and a customer slip in one action.
Every sale auto-deducts from stock. Low-stock alerts before the shop runs out mid-service. One-screen count-in for supplier deliveries — scan, quantity, price, done.
Every rupiah out of the drawer gets logged at the POS the moment it's paid. Tagged by category, tied to a cash source, photo of the receipt attached. Replaces the hardcover ledger and the monthly Excel export in one swipe.
Selfie clock-in with GPS geofence so no one punches in from home. Three-shift aware (morning / mid / evening). Late, early-leave and absences roll straight into the payroll calculation.
Base salary plus attendance-bonus math, plus fines and advances — all computed live as the month runs. Hit "close month" on the 28th and the payout sheet is done. Print, count cash, hand out.
One dashboard, owner's phone. Daily sales vs. yesterday, month-to-date expenses by category, payroll liability, cash-on-hand. Drill into any number to see the raw transactions behind it.
Every day I re-wrote the day's expenses into a hardcover ledger — ice, parking, cleaning supplies, the gas bill. Once a month I spent a full day exporting everything into Excel as a backup. None of it talked to each other.
If I wanted to know what I'd spent on packaging last month, the only answer was: flip the pages.
Every expense — a pack of ice, the electricity bill, a parking slip — gets logged on the POS the moment it's paid, tagged to cash drawer or safe. The ledger is gone. The monthly Excel backup runs itself.
A manager dashboard rolls it all up: today's sales by payment method, month-to-date expenses by category, targets vs. actuals. I open the app, I see the shop.
Thirteen staff, three shifts a day, attendance tracked on paper slips. End of month I'd cross-check who showed up when, calculate the attendance-bonus percentage by hand, and plug every line into a spreadsheet.
Two hours if nothing went wrong. Longer when a slip went missing or someone disputed a shift.
Staff clock in from the POS terminal with a selfie and GPS check — you can't fake it from home, and the slip can't go missing. Shift, attendance %, bonus and penalties compute as the month runs.
When payday comes, I open the payroll tab, read the number, count the cash. Ten minutes, done.
Stock lived on a whiteboard in the kitchen. Whoever remembered to cross things off, did. Whoever didn't, didn't. Twice I walked in to find we were out of packaging boxes with a full queue of online orders waiting.
There was no early warning, no consumption rate, no reorder point. Just a marker and the hope that someone was paying attention.
Every sale automatically subtracts the right amount from the right SKU — the recipe map is set up once, then it just works. When stock drops under the reorder point for that day's sales velocity, the owner gets a push notification that morning.
Deliveries get counted in on the same app — scan, quantity, supplier, photo of the receipt. The whiteboard is now empty. The kitchen likes it that way.
Sunday was supposed to be my day. Instead it was catch-up day — the one day I could sit down and untangle the week. Here's what changed.
Mapped every admin task I was doing by hand. Cut anything that wasn't load-bearing for a single-outlet shop — no recipes, no ingredient trees, no customer CRM. Just the things I actually re-typed every week.
React Native + Expo on the phone, PHP + MySQL on the back end. Offline-first sync from day one — the kitchen doesn't stop when the wi-fi blinks. Audit log on every mutation so nothing disappears silently.
Trained 13 staff across morning, middle and evening shifts. Written SOP in Bahasa. Ledger and spreadsheets retired the week after. Ship over-the-air updates whenever something pinches.
Every number below is pulled from the production database — not a pitch-deck estimate. The counters start when you scroll here.
The tech is deliberately unglamorous. Every decision answered one question: what happens when the wi-fi drops during a rush and 40 online orders are queued up?
The phone is the source of truth for the next 30 seconds; the server is the source of truth for everything older. Orders, sales and stock deductions write locally first, then sync — the kitchen never stops because the tower went down.
Expo for OTA updates so fixes ship in minutes, not app-store weeks. PHP + MySQL on the back end because the hosting bill is $6/month and the owner's cousin can read the code if I get hit by a bus.
Every sale, void, expense, payroll edit leaves a row with the user, timestamp and before/after value. Nothing disappears silently. If a number looks wrong a week later, you can see exactly who touched it and what it was before.
No custom POS terminal, no proprietary tablet. A shared Android at the counter for checkout, a thermal printer (ESC/POS over Bluetooth) for receipts, and the owner's phone for the dashboard. Total hardware cost: under Rp 2M.
GoFood and GrabFood orders pulled into the same order queue as walk-ins. QRIS payments auto-reconcile against the drawer. Payroll slips go out by WhatsApp when the month closes — no more printed envelopes.
Role-based permissions from day one. Cashiers can take orders and log expenses but can't void, can't edit payroll, can't see margins. Every elevated action needs the owner's PIN.
Free scope-out call. We'll tell you the cheapest thing that fixes it.