One system for a small barbershop
Customers book online. Every barber has their own PIN. The counter takes cash or card, and each tip and commission goes to the right person automatically. The owner sees the money, the pay and the profit without a notebook.
Demo PINs: Niko 1111 · Marta 2222 · Ivo 3333 · Counter 0000 · Owner 2468

01 · For customers
Booking in under a minute, no app to install
- Free times come from opening hours, lunch, each barber’s working days and time off
- Two people can never take the same slot (checked on the server)
- Booking code, add-to-calendar file, cancel online
- Full day? Join the waitlist and the shop calls you if a time opens up
- Loyalty card on the booking page: every 6th cut is free
- Reviews only from customers who actually paid for a visit
- Sign in with Face ID or fingerprint (passkeys, no password) to see bookings and book again in one tap
02 · For barbers
Their own PIN, their own day, their own money


A barber only sees their own clients and money. Check in, tap Done, and the client goes to the counter to pay. When a client checks in, their card opens with notes like “#2 on the sides” and their history, so nobody has to remember.

03 · At the counter
One checkout for everything, with the barber’s share worked out


- Tips go 100% to the barber who did the cut
- Each barber has their own % of services and % of products
- Gift cards keep their balance; promo codes have a use limit
- You can’t sell more than you have in stock, and low stock is flagged
- Free loyalty cut: the shop pays, the barber still gets their %
- All totals are calculated on the server, not in the browser

04 · For the owner
The money, the pay and the profit, without a notebook





Refunds are owner-only and put stock and gift-card money back. Discounts, refunds, PIN and % changes, closed days and cost changes all go into a “who did what” log.
05 · On a phone
Same system in your pocket

06 · Under the hood
Small, fast, cheap to run
| Part | How |
|---|---|
| Front end | Plain JavaScript and CSS, no framework, loads fast on old phones |
| Server | Cloudflare Workers, so it runs close to the customer |
| Data | Cloudflare D1 (SQLite) for bookings, payments, clients, stock and costs |
| Customer logins | Passkeys (WebAuthn), verified on the server. No passwords stored anywhere |
| Staff logins | PINs stored hashed, signed sessions, wrong-PIN attempts rate-limited, auto-lock |
| Running cost | A small shop fits in Cloudflare’s free plan; a custom domain is extra |
07 · For your shop
Set up for your business
Services, prices, staff, opening hours, percentages and the look are all set up for your shop: barbershop, hair or nail salon, massage, tattoo studio or anything that runs on appointments. English and Bulgarian are included; other languages can be added.
Pricing depends on what you need. Email me with your shop and I’ll send a quote.
North Pier is a made-up shop used for this demo. ← All projects