W WeKnowSalons Booking flow
Customer journey · full fidelity

Booked in four taps.

Who → what (+ add-ons) → when → details. No account required, no fluff — the bar is Square and Fresha. Every screen below is the real widget; toggle the theme to see it carry a salon's brand.

One toggle reskins every screen — that's the per-salon theming.
Step 1 · Who

Pick your person

Opens with people, because that's how regulars think. "Anyone" widens availability. Per-salon label — Dolce shows "Technicians."

9:41
Who would you like?
Book with your regular — or anyone available.
Anyone availableSoonest opening today
TLTina L.Gel & nail artnext 11:30
KPKim P.Pedicuresnext 1:00
MTMai T.Acrylic & extensionsnext 2:15
Step 1 of 4
Step 2 · What

Service + add-ons

Only what that person offers. One main service, then optional add-ons that fold into the running total & the slot length.

9:41
with Tina L. · change
Choose a service
ManicuresPedicuresExtensionsAdd-ons
Gel Manicure
60 min · up to 3 weeks wear
$35
Classic Manicure
45 min
$25
Dip Gel Manicure
60 min
$55
Add to your visit
Nail art +$8 French +$12 Paraffin +$20
Total$43 · 75 min
Step 3 · When

Real openings only

Live availability for Tina + 75 min. Closed days, time off, and taken slots are gone — every slot shown maps to a booking the database will accept.

9:41
Tina L. · Gel Manicure +1
Pick a time
Mon
30
Tue
1
Wed
2
Thu
3
Fri
4
Sat
5
Morning
10:0010:4511:30
Afternoon
1:152:003:30
Thu 3 · 10:45 AM$43 · 75 min
Step 4 · Details

Guest checkout

Just name + contact. A reminder opt-in, and an optional "save my info" that signs them in with a 6-digit code — no passwords, no magic links.

9:41
Almost done
Maria Alvarez
(856) 555-0148
maria@email.com
Text me a reminder24 h before · reply STOP anytime
Save my info for next timeWe'll text a 6-digit code
Total$43
Done · Confirmed

Booked

Instant confirmation on screen and by email (text too, if enabled). The slot is held the moment this shows — no "pending" limbo.

9:41
You're booked, Maria
Confirmation sent to maria@email.com
WithTina L.
ServiceGel Manicure + Nail art
WhenThu, Jul 3 · 10:45 AM
Total$43 · 75 min
Self-serve · Manage

Reschedule or cancel

The confirmation's secure link opens this — no login. Reschedule re-runs availability; cancel is free until the salon's cutoff, then it asks them to call.

9:41
Your appointment
Thu, Jul 3 · 10:45 AM with Tina L.
ServiceGel Manicure + Nail art
Duration75 min
Where302 Hurffville Rd
Total$43
Free to change until Wed, Jul 2, 10:45 AM.
After that, please call the salon.
What the screens don't show

The rules behind the taps

Most of the booking system's value is invisible — it's the correctness, not the screens.

Never double-booked

The database is the guard

A Postgres exclusion constraint refuses two overlapping appointments for the same person — even if two customers tap the same slot in the same second. The loser sees "that time was just taken."

"Anyone" is resolved late

Picked at booking, not before

Choosing "Anyone" keeps every free person in play until the final tap, then commits to a specific one inside the transaction. Maximum availability, zero conflicts.

Add-ons change the math

Duration is summed, then checked

Add-ons extend the total time, so the "when" step only offers slots long enough for the whole visit plus the salon's buffer.

Returning customers

Optional account, 6-digit code

Guests never sign in. Those who opt to save info get a Supabase account verified by a one-time 6-digit code — pre-filled details next time, faster rebooking.

Timezone-correct

Salon-local, always

Slots are computed in the salon's timezone and stored as exact instants, so DST and travel never shift an appointment.

Email always, text optional

Confirmation + 24 h reminder

Email confirmation every time; SMS reminders only when the salon enables them and the customer opts in. Reminders are idempotent — never sent twice.