The case study
Context
Small shops — especially fabric shops that sell by the yard — run on shared phones, busy counters and unreliable data. A few metres here and a discount there quietly add up.
The challenge
Give the owner numbers they can trust without slowing down the storekeeper — and without depending on the network.
What we built
Four large actions on the home screen — Sell, Stock, Money, My Day — with pictures and few words:
- Picture-led selling with yard cuts, split payments across cash, Mobile Money, bank and credit, returns and credit repayment.
- “Sold for less?” records every discount with a reason.
- Stock intake, stock counts and price groups.
- Shifts, expenses with receipt photos, cash drops, a deficit board and manager flags.
- Bluetooth thermal receipts, and reports by day, week, month or range with CSV export.
- Staff invitations with a per-person PIN on shared devices, and shop approval by a platform administrator.
Engineering scope
A Flutter app with a local SQLite database and an ordered outbox, on Firebase with TypeScript Cloud Functions that re-derive totals, run stock checks and send daily summaries. Records are append-only: a sale is voided, never erased.
Design decisions
- Local first: every action is saved on the device before it syncs.
- Accountability without accusation: flags and deficits are shown, not blamed.
- Big targets, few words, for staff with varied literacy.
The build
Estorr v1.1 is built: signed Android release builds and a deployed cloud back end. It is not yet on the app stores.


