Skip to content
YuzuAtelier

02 · 2024 · Founder-built

Appointment & Reservation System

A booking system built around the parts that actually break: availability rules, overlapping slots, cancellations and reminders.

Problem

Booking interfaces are easy to draw and hard to make correct. Availability is a function of staff schedules, service durations, buffers, holidays and existing reservations — all changing at once.

Objectives

  • Compute availability correctly under concurrent booking
  • Support per-staff schedules and per-service durations
  • Handle cancellation and rescheduling cleanly
  • Give administrators a fast daily working view

Approach

Availability was implemented as a derived calculation rather than stored state, with database-level constraints preventing two confirmed reservations from occupying the same staff slot.

UX / UI

Two distinct interfaces: a short, forgiving customer flow, and a dense administrative calendar designed for someone using it all day.

Features

  • Service catalogue with durations and buffers
  • Per-staff availability and holiday rules
  • Day, week and staff calendar views
  • Reservation creation, rescheduling and cancellation
  • Customer records with visit history
  • Confirmation and reminder notifications

Interface preview

Gallery

Customer booking flow

Service, staff, time

Administrative calendar

Conflict-aware scheduling

Reservation detail

Customer and history

Engineering

Slot generation is deterministic and testable; concurrency is handled with transactional constraints rather than optimistic UI assumptions.

Architecture

  • Derived availability computation with caching
  • Unique constraints preventing double booking
  • Timezone-aware scheduling
  • Queued notification dispatch

Technology

  • TypeScript
  • React
  • Node.js
  • PostgreSQL
  • Tailwind CSS

Challenges

Two people, one slot

The only reliable answer was a database constraint. Application-level checking loses the race eventually.

Timezones

Storing instants and rendering in the viewer's zone was the only approach that survived daylight-saving edge cases.

Outcome

A working, independently built reservation system demonstrating correct availability handling. Founder-built; not a client deployment.

Have something worth building?

Tell us what you're trying to build, improve or solve. We'll tell you honestly whether we're the right studio for it.