Build a Booking App for Your Salon
A salon lives and dies by the chair calendar. Nearly half of client bookings happen after hours, first-timers who book online return roughly twice as often as walk-ins, and yet most salons still run the day out of a paper book, Instagram DMs, and a phone that rings in the middle of a color service. Describe your salon to ybuild in plain English and it turns that prompt into a running booking system, hosted on your own domain, that fills chairs while you are cutting hair.
The problem
- Clients want to book at 11pm from Instagram, but the salon phone only answers 9-to-5, so the booking is lost or lands in a DM nobody sees until morning.
- Two stylists get promised the same chair, or a 3-hour balayage gets a 45-minute slot, because availability lives in one person's head and a paper diary.
- No-shows and last-minute cancels quietly bleed revenue every week, with no card on file and no policy the software actually enforces.
- Generic booking tools charge per stylist, hide your brand behind their marketplace, and own your client list, so you are renting your own front desk.
What you’d build
A branded page on yoursalon.com where clients pick a service and stylist and see only the slots that truly fit that service's length, not just any 30-minute gap. The slot locks the instant they start checkout, so no two people grab the same 2pm while one of them is still typing in their phone number. Colors, logo, and service menu are yours, and the client list that comes with it is yours too.
A day view with one column per stylist showing every appointment, color-processing gap, lunch, and day off. Front desk drags to reschedule, drops walk-ins and phone bookings straight onto a column, and never double-books a chair by accident because every channel writes to the same calendar in real time.
A card is captured at booking and held on file, an automated confirmation fires immediately and a reminder goes out 24 hours before by SMS and email, and no-shows are charged per your policy so the revenue that used to walk out the door stops leaking. The deposit is applied to the final bill the moment the client actually shows up.
The data model
A day in the system
- A client lands on yoursalon.com at 10pm, picks "Balayage + cut" with Maya, and the page shows only slots where Maya has the full 3-hour block free, not just any 30-minute opening.
- Because they are a new color client, the flow flags that a patch test is required and offers a quick 48-hour-ahead skin-test slot before the color appointment.
- They pay a deposit; their card is stored for the no-show policy, and the 2pm slot locks immediately so the next visitor cannot claim it mid-form.
- An SMS and email confirmation fire on the spot, and a reminder is scheduled for 24 hours before the appointment.
- Next morning the front desk opens the day view: each stylist has a column, color-processing gaps show as reusable time, and a phone booking gets dropped straight onto Maya's column.
- The client arrives, the appointment is marked in-progress, and while the color develops that gap is free for Maya to start a quick blow-dry on another chair.
- At checkout the service is marked complete, the deposit is applied, retail and tip are added, and the balance is captured on the same card.
- A different client never shows; their status flips to no-show, the fee is charged per policy, and their no_show_count ticks up so the front desk sees the pattern next time.
Where AI trips up
- Processing time is not idle time. During color development a stylist deliberately takes a second client, so a build that hard-blocks all overlap breaks how salons actually work. Model an appointment as prep, then a process_gap, then finish, so the chair frees mid-service instead of being locked for the whole 3 hours.
- Duration is not a single number. The same cut-and-color runs far longer on long, thick hair or with a junior stylist than a senior one. Store duration per service and per stylist level, or the day silently drifts and every later client waits.
- Patch tests are a real legal and safety gate. Many regions require an allergy alert test 48 hours before a new client's color service. The booking flow must detect first-time color clients and refuse same-day color, not cheerfully book it.
- A stylist's availability is not the salon's hours. Days off, lunches, part-time shifts, and blocked training time all differ per person. The slot engine must read each stylist's own schedule, never just the opening hours, or you sell slots that do not exist.
- No-show and deposit rules have sharp edges: a reschedule 26 hours out should keep the deposit, the same reschedule 2 hours out should forfeit it, refunds are sometimes partial, and card charges fail. Nail the policy timing (typically a 24 or 48 hour window) and the reschedule-versus-cancel distinction, or you will charge a loyal client for a legitimate move and quietly lose them.
- A branded booking page per stylist with real-time, service-aware slots and an instant slot-lock at checkout.
- A deposit and card-on-file at booking so no-shows and late cancels are actually enforceable.
- Automated confirmation plus a 24-hour reminder by SMS and email to cut the no-show rate.
- Full retail POS and product-stock inventory; keep using the existing till for v1 and just record product on checkout.
- Loyalty points, memberships, and prepaid package tracking; add these once bookings and deposits are solid.
- Payroll, commission payouts, and multi-location roll-ups; model commission_rate now, automate payslips later.
FAQ
Can clients book themselves without calling the salon?
Yes. Your booking page runs 24/7 on your own domain, which matters because close to half of salon bookings happen outside business hours. Clients pick service, stylist, and time, pay a deposit, and get an instant confirmation, all without touching the phone.
How does it stop double-booking a chair?
Every slot is checked against real-time availability and locked the moment checkout starts, so two people cannot grab the same time. It still supports intentional overlap during color processing, because that gap is modeled as reusable rather than blocked.
Can I take deposits and charge no-show fees?
Yes. A card is captured at booking and held on file. When a client no-shows or cancels inside your policy window, the fee is charged automatically, and the deposit is applied to the final bill when they do show.
Can each stylist have their own services, hours, and prices?
Yes. Services, durations, prices, working hours, and days off are set per stylist, and a junior and senior can offer the same service at different lengths and rates. The slot engine reads each person's own schedule.
What about walk-ins, phone bookings, and my own brand?
The front desk adds walk-ins and phone bookings straight onto the same chair calendar in a couple of taps, so every channel lives in one place and none double-books another, with the client record, formula notes, and no-show history right there while they are on the line. And because the app is hosted on ybuild and served on your own domain, the booking page carries your name rather than a marketplace's, and that client list is your data.
Sources
- Salon Industry Statistics, Trends & Benchmarks — Roughly 46% of bookings happen after hours and online-booked first-timers rebook about 2x more than walk-ins, the case for a 24/7 self-booking page.
- How to Enforce Cancellation and No-Show Fees Fairly (Zenoti) — Practical guidance on flat vs percentage fees, cards on file, and publishing your policy, useful for the deposit and no-show logic.
- How to Avoid Double-Booking Appointments (Acuity Scheduling) — Best-practice guide on buffer time and real-time availability that informs the slot engine and per-stylist calendars.
Describe it, go live on your own domain in one pass — hosted, full-stack, no server. Free to start.