← All work

Website · 2026

Kingsway Barbers

An appointment system with real availability. Free slots are computed from opening hours, service length and every existing booking, so a taken slot vanishes for the next visitor immediately.

Try it, live

This isn’t a mock-up. It’s the real application, running on this server with its own database. You get a private copy. Book a slot, then find yourself in the diary.

Open the live demo →

Booking systems are where "it looks fine" and "it works" part ways. A slot grid is easy to draw. A slot grid that is never wrong takes actual logic, and that logic is the point of this demo.

How availability works

The shop has opening hours, closed days, and one chair. Each service has a length: a cut is 30 minutes, a skin fade is 45. When you pick a service and a day, the grid offers every start time where the whole appointment fits before closing and doesn't overlap anything already booked. Pick a longer service and you'll see the grid change shape.

Book a slot and it greys out for the next visitor on the spot. If two people race for the same time, the second one is told it has just gone and nothing double-books. Past times today are closed off too.

The barber's side

The diary shows the day in chair order: who, when, what, and their number. Cancel a no-show and the slot opens up again immediately. Like the other demos, this screen would sit behind a login in a real build.

What it does

  • Slot availability computed from hours, service length and bookings
  • Race-safe booking: the slot is checked again on submit
  • The grid reshapes itself per service duration
  • A diary view in chair order with one-click cancel
  • Cancelled slots reopen instantly