WorkSalon Booking & Customer Platform
The full customer journey for a salon
Salon Booking & Customer Platform
Discovery, WhatsApp-verified booking, customer records, billing and self-service admin — one pilot platform built for hair-and-beauty salons.
- Status
- Prototype
- Category
- Web experience
- Year
- 2026
- Role
- Self-initiated end-to-end build — public site through staff-side operations.
Self-initiated pilot for the salon vertical — not commissioned client work. Runs on seeded data with a mock payment gateway behind a feature flag.
The problem
Salons run discovery on social media, bookings in chat threads, customer history in a stylist's memory and billing on paper. The owner needs one system — but customers book in the channel they already use, and no salon can retrain its clientele.
Constraints
- Customers book in chat, not in apps — authentication had to live in WhatsApp, not a password form
- No merchant account exists yet, so checkout must be honest about being mocked
- Owner-operated business: the admin side has to work in the five minutes between clients
The approach
Build the whole journey as a pilot and let the vertical prove itself: a fast public site with local-search foundations; booking that meets customers in WhatsApp (verified by one-time codes rather than passwords); and a staff-side operations platform behind role-based access. Every phase closed with end-to-end checks before the next began.
What was built
- Public services-and-discovery site with structured data and local-search groundwork
- Online booking with WhatsApp OTP verification — no passwords, no new habits for customers
- Customer records, appointment management and a billing flow with receipts and refunds
- QR checkout against a mock payment gateway, kept behind an explicit feature flag until a real merchant account exists
- A reviews moderation queue feeding permission-checked testimonials — nothing publishes without consent
- Self-service content editing for the owner: text, images and theme changes gated by an automatic contrast check
- Role-based staff authentication with four permission levels
Contribution
Built with React · TypeScript · Supabase · Postgres RLS · Edge Functions · WhatsApp OTP · Cloudflare Pages
Technical decisions
Meet customers in-channel
Booking authenticates with a WhatsApp one-time code because that's where salon customers already are. Forcing account creation would optimise for the database, not the business.
Never fake a live integration
The checkout runs against a mock gateway behind a feature flag, and says so. A demo that pretends to move money is a lie with a UI.
Consent-checked reviews
Testimonials only surface through a moderation queue with explicit permission flags — trust features have to be trustworthy internally too.
Outcome
- A functional pilot deployed on its own dedicated backend
- Roughly seventy end-to-end checks green across booking, billing, refunds, reviews and admin
- Launch-gated behind a real salon signing on — validation before inflation
Current status
PrototypePrototype in public terms (internally: pilot) — fully functional on seeded data, ~70 E2E checks green, waiting on a signed salon to go live.
Lessons
The website is the storefront, but the admin side is the product. The owner's five-minutes-between-clients experience decides whether a system survives contact with a real business.
Next stage
First onboarding: swap the mock gateway for a real merchant account behind the existing flag, run the drafted go-live checklist, and let a real salon put it under load.