Built for the real worldEvery feature your clients
Every feature your clients
actually depend on.
Not a checkbox list. These are the hard problems we've already solved so your clients don't have to learn the hard way.
📡
Offline-durable capture
Works through power cuts, dead Wi-Fi, and flaky routers.- ▸Every action is written to a local IndexedDB outbox before it ever touches the network.
- ▸When connectivity returns — even after a full power cycle — the outbox syncs automatically with conflict resolution.
- ▸POS transactions, stock counts, and shift sign-ins captured without hesitation, regardless of signal.
🔐
DB-enforced role security
Four roles. Zero trust. Every row locked at the database.- ▸Postgres Row-Level Security (RLS) policies enforce access — not just in the UI, but at the data layer itself.
- ▸Owners, managers, staff, and members each have precisely scoped read/write access.
- ▸Even direct database connections can't bypass the policy — there is no "admin mode" that leaks data.
🏪
Multi-store & multi-tenant
One platform, unlimited companies and stores.- ▸Spin up a new tenant organisation in seconds from the super-admin console.
- ▸Each company's data is fully isolated — schema-level separation backed by RLS.
- ▸Assign staff to multiple stores within an org; manage all from a single owner dashboard.
📅
Shift rule engine
Hour caps, no double-booking, automatic conflict detection.- ▸Configurable weekly hour caps per employee with automatic over-hour warnings.
- ▸Shift requests and approvals flow through a manager-gated queue.
- ▸Double-booking prevention built into the scheduling engine — never assign the same person to two concurrent shifts.
⚖
Stock reconciliation
Expected vs counted, variance surfaced in real time.- ▸Baseline stock counts co-signed by manager and staff create an immutable starting point.
- ▸Purchases, wastage, and POS sales are tracked continuously to compute expected on-hand.
- ▸Reconciliation surfaces variances with drill-down detail — instantly flag shrinkage or data entry errors.
📊
Turnover & margin analytics
Revenue, COGS, and gross margin — across all stores.- ▸Group-level KPI dashboard gives owners a consolidated view across every location.
- ▸Drill down from org → store → SKU to find where margin is won or lost.
- ▸Export-ready reports in CSV; live refresh on every shift reconciliation.
🛍
Customer storefront
A full customer-facing online shop, built in.- ▸Customers browse, add to cart, and checkout against live inventory — no separate e-commerce platform needed.
- ▸Store-credit wallet lets customers accumulate and spend loyalty points.
- ▸Fully branded per tenant — same white-label theming as the ops platform.
🎨
White-label branding
Drop in artwork, get a completely re-skinned product.- ▸Each tenant supplies a logo URL and a handful of brand colour hex codes.
- ▸CSS custom properties cascade through every component — zero rebuild, instant re-skin.
- ▸Your clients' staff never see "PebblePay" — they see your client's brand.
📱
Android + web
Flutter mobile and Next.js web — one shared data model.- ▸Flutter Android app for shop-floor staff: POS, stock takes, and shift sign-in — touch-optimised for the counter.
- ▸Next.js 16 web app for managers and owners: reports, scheduling, reconciliation, and the full ops console.
- ▸Both clients share the same Supabase backend and the same role/module contract — one data model, two surfaces.
Convinced? Let's talk.
We'll scope your deployment, agree on modules, and get your first tenant live — often in the same week.