Halo Esthétique
Booking and client management for a beauty salon. Appointments, payments, coupons and a CRM the staff open every morning.
Visit the live site- Type
- Custom platform
- Industry
- Beauty
- Role
- Sole developer
- Year
- 2026
Laravel · Livewire · Tailwind CSS · MySQL · Stripe
The situation
The salon ran on a paper diary and a phone that rang in the middle of treatments. Double bookings happened most weeks. No-shows were written off as the cost of doing business, and nobody could say which treatments actually made money. The off-the-shelf tools each solved one slice of it and billed monthly, per member of staff.
What was built
- 01 Public booking with live availability per therapist and treatment
- 02 Internal CRM holding client history, notes and treatment records
- 03 Card payments, deposits and refunds
- 04 Coupon engine with usage limits, restrictions and expiry rules
- 05 Automated appointment reminders
- 06 Revenue and occupancy reporting for the owner
Details that mattered
Availability that tells the truth
Slots come out of treatment duration, therapist hours, room capacity and the gap needed between clients. The calendar cannot offer a time the salon is unable to honour.
Deposits at the point of booking
Clients pay or leave a deposit when they book, which moves the cost of a no-show onto the person who did not turn up. Refunds are handled without leaving the admin panel.
A real coupon engine
Percentage and fixed discounts, first-visit-only rules, per-client caps, treatment restrictions and expiry dates. The owner sets all of it without calling me.
Client history that travels
Every record carries the full treatment history, preferences and notes, so whoever is free can take a returning client without making them explain themselves again.
What it changed
- Bookings come in overnight without the phone interrupting treatments
- Deposits and reminders attack the no-show problem directly
- Revenue by treatment and by therapist, visible without exporting anything
- No per-seat subscription. The salon owns the platform outright