Live interactive demo

One booking system,
both sides of the counter.

This is the exact booking system we build for appointment-based shops โ€” running here on a fictional spa, Serenity Head Spa & Wellness, with sample data. Book as a guest, then open the owner’s admin and confirm your own booking. Everything is clickable; nothing is a screenshot.

๐ŸŒฟ

Customer view โ€” book an appointment

The guest’s side: pick treatments (up to 5 in one visit), choose a day and time, pick a therapist or “No preference”, and send the booking. It takes about a minute.

Open the shop page →
๐Ÿ—‚๏ธ

Owner view โ€” admin panel

The shop’s side, no password needed in the demo: confirm bookings, take phone bookings, manage treatments and prices, set staff schedules, block days off, and pull monthly reports.

Open the admin panel →

Try it in 60 seconds

The full loop, exactly as it works for a real shop:

  1. Book as a guest. Open the Customer view, add a treatment or two, pick tomorrow and a start time, choose a therapist (or No preference), fill in any name and email, and confirm.
  2. Open the Owner view. Your booking is sitting in “Waiting for confirmation” โ€” the shop also gets an email alert in the real system.
  3. Confirm it. If you chose “No preference”, assign a therapist first (the card suggests one), tap Confirm, and watch it move into Upcoming. Then explore: the calendar, Phone Booking, Schedules, and the records report.

What’s inside

Every feature below is live in this demo โ€” including the availability rules.

Start over

Played with the data? Reset it back to the original sample bookings, treatments and staff.

✓ Demo data restored.

Demo notes: Serenity and all of its guests, staff and bookings are fictional. Data lives only in this browser (localStorage) and is shared between the two views on this device โ€” no account, no server, and no email is ever sent. The production system adds email notifications to the shop and each assigned therapist, plus a private self-service link for guests to change or cancel.