ByteNest Book a free call

Case study 03Booking platformClient: BarberSnapOngoing

BarberSnap

A booking app and a salon dashboard for barbershops.

The BarberSnap admin day calendar for a demo barbershop, bookings colour-coded per barber
The BarberSnap app home screen greeting a demo customer, with the next appointment and a button to book
Admin day calendar and customer app, demo shop.

A customer app and an admin dashboard for barbershops: scheduling, payments, loyalty, marketing and day-to-day operations. ByteNest designed the architecture across mobile, backend and admin, and leads the build through rounds of client feedback.

Role
Architecture and build lead
Client
BarberSnap
Status
Ongoing

The brief

One system for the chair and the front desk.

BarberSnap is one system for the customer's phone and the shop's front desk. Customers book a service, a barber and a time, pay, and collect loyalty points. Owners and managers run the day from a web admin. We designed how the pieces fit, then built them with the client, one feedback round at a time.

System map

How it fits together

BarberSnap architectureCustomers use a Flutter app to book, collect loyalty points and find the salon. Bookings, money and points go through atomic database functions (RPCs) into Supabase Postgres, where row-level security covers every table and an exclusion constraint prevents overlapping bookings. Edge functions and pg_cron run reminders and the waitlist, and FCM delivers push notifications. Owners and managers run the shop from a Next.js web admin on the same backend.01 PEOPLE02 APP03 BACKEND04 RUN05 PEOPLECustomersbook, earn points,find the salonCustomer appFlutterbooking, loyaltyBooking RPCsatomic writespoints ledgerPostgres + RLSon Supabaseno-overlap ruleBackground jobsedge fns, pg_cronpush via FCMWeb adminNext.jscalendar, operationsShop ownersand managers123 BarberSnap architectureCustomers use a Flutter app to book, collect loyalty points and find the salon. Bookings, money and points go through atomic database functions (RPCs) into Supabase Postgres, where row-level security covers every table and an exclusion constraint prevents overlapping bookings. Edge functions and pg_cron run reminders and the waitlist, and FCM delivers push notifications. Owners and managers run the shop from a Next.js web admin on the same backend.01 PEOPLE02 APP03 BACKEND04 RUN05 PEOPLECustomersbook, earn points,find the salonCustomer appFlutterbooking, loyaltyBooking RPCsatomic writespoints ledgerPostgres + RLSon Supabaseno-overlap ruleBackground jobsedge fns, pg_cronpush via FCMWeb adminNext.jscalendar, operationsShop ownersand managers123
System map of BarberSnap. The four stages next to it describe each layer in words.
  1. 1
    A booking starts on a phoneThe Flutter app: pick a service, a barber and a time, collect points
  2. 2
    Rules that live in the databaseAtomic RPCs on Supabase, RLS on every table, pg_cron reminders, push through FCM
  3. 3
    One backend, two appsA Next.js admin with roles for owners and managers
  4. 4
    Three hard partsTwo customers, one free slot

Three hard parts

Two customers, one free slot

  1. No double bookings

    Two customers can tap the same slot at once. An exclusion constraint in Postgres refuses overlapping bookings for the same barber, so the database settles the race, not the app.

  2. Money and points move together

    A booking that charges but forgets the points is a support call. Booking, payment and loyalty writes are single atomic calls, and a ledger trigger owns every balance.

  3. Built to grow

    Shops have owners, managers and staff with different jobs. Owners configure, managers operate, and the schema already supports more than one shop.

On screen

The app and the admin

BarberSnap booking step one: choose a service, with haircut photos and prices
Step one: choose a service.
BarberSnap booking step three: a week strip and the free time slots
Step three: a week strip, free slots.
A receipt-style BarberSnap booking confirmation with a barcode and the points earned, demo data
A receipt-style confirmation, points included.
BarberSnap loyalty screen: 1700 points and the services they can pay for
Loyalty points to spend on services.
BarberSnap admin analytics: a revenue chart, a busiest-hours heatmap and the top services, demo figures
Analytics: revenue, busiest hours, top services.
BarberSnap admin overview: a row of key figures, a weekly bar chart and the staff list, demo data
Overview: key figures, the week, the staff.

Stack

  • Flutter
  • Supabase
  • PostgreSQL
  • Row-level security
  • pg_cron
  • FCM
  • Next.js

Our role: architecture and build lead.

Book a free call Back to all work