Case study · Retail · Barbershops & salons
A mobile point of sale for barbershops, built for the chair rather than the back office
Checkout, clock-in and shifts, and per-barber reporting in one iOS and Android app. It works offline and syncs when the connection returns.
- Product design
- Mobile app
- Back end & sync

At a glance
- Our role
- End-to-end: design to app store
- Platforms
- iOS and Android from one React Native codebase
- Offline
- Offline-first checkout with background sync
- Core modules
- Sales, services, staff, shifts, reports, billing
- Back end
- Node.js · PostgreSQL · AWS
01The challenge
Point-of-sale systems built for a counter, not a chair.
Shops were ringing up sales on generic tills, tracking shifts on paper and working out each barber's takings at the end of the day. Generic POS systems assume a counter and a stable connection, and a busy shop floor has neither.
Our role: Product design, the React Native app for iOS and Android, the Node.js API and AWS infrastructure.
02Project goals
What Trimmly needed to do.
Make checkout fast
Ring up a sale in a few taps between clients, without leaving the chair.
Keep working without signal
Take sales and clock shifts when the connection drops, and sync everything once it's back.
Show owners each barber's day
Sales, card and cash split, and who is on the floor, visible to the owner at any moment.
Give every staff member their own view
Each barber, manager and owner signs in to their own seat and sees what matters to their role.
03What we built
Sales, shifts and reporting in one app.
Fast checkout
Pick one or more services from the shop's menu and charge by card or cash in a single step.
Offline-first sync
Sales and shifts are stored on the device first and synced to the server in the background.
Clock-in, breaks and shifts
Staff clock in and out and take breaks from the app, with time on shift shown on their home screen.
Owner dashboard
Today's sales with the card and cash split, and every team member's takings and shift status.
Per-barber reporting
Daily revenue, popular services and a staff leaderboard, with reports exported as PDFs.
Services and billing
Owners manage the service menu and prices, and per-seat subscriptions are handled in the app and on the web.
04How we delivered
From first workshop to production.
01
Discover
Mapped how sales, shifts and payouts actually happen on the shop floor with owners and barbers.
02
Design
Separate flows for barbers at the chair and owners checking the day, kept to as few taps as possible.
03
Build
A React Native app for iOS and Android with a local store and sync queue, backed by a Node.js API on PostgreSQL.
04
Launch
Released to the app stores, with the back end deployed on AWS.
Stack
- React Native
- iOS
- Android
- Node.js
- PostgreSQL
- AWS
Related services
Have a platform like this in mind?
Tell us what you're building or what needs fixing. We'll come back with questions and a suggested next step.