Skip to content

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
Trimmly on three phones: a barber's home screen with today's sales, the owner dashboard with team sales, and the new-sale service picker
Trimmly on iOS, shown with sample data.

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.

  1. Make checkout fast

    Ring up a sale in a few taps between clients, without leaving the chair.

  2. Keep working without signal

    Take sales and clock shifts when the connection drops, and sync everything once it's back.

  3. Show owners each barber's day

    Sales, card and cash split, and who is on the floor, visible to the owner at any moment.

  4. 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.

  1. Fast checkout

    Pick one or more services from the shop's menu and charge by card or cash in a single step.

  2. Offline-first sync

    Sales and shifts are stored on the device first and synced to the server in the background.

  3. 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.

  4. Owner dashboard

    Today's sales with the card and cash split, and every team member's takings and shift status.

  5. Per-barber reporting

    Daily revenue, popular services and a staff leaderboard, with reports exported as PDFs.

  6. 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.

  1. 01

    Discover

    Mapped how sales, shifts and payouts actually happen on the shop floor with owners and barbers.

  2. 02

    Design

    Separate flows for barbers at the chair and owners checking the day, kept to as few taps as possible.

  3. 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.

  4. 04

    Launch

    Released to the app stores, with the back end deployed on AWS.

Stack

  • React Native
  • iOS
  • Android
  • Node.js
  • PostgreSQL
  • AWS

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.

Book a call (opens Calendly in a new tab)