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.
Related foundation
Express Booking
This project informs the Express Booking foundation.
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.