All projectsOpen the site

Legacy Hair Studio

Book without calling.
And two bookings can never overlap.

Booking system for a barbershop in Rosario: three-step online booking with no account or deposit, booking management from a link, and a panel for the shop to run its schedule.

My role
My own project: design, development and deployment.
Stack
  • Next.js 16
  • React 19
  • Prisma
  • PostgreSQL 18
  • Docker
  • Caddy
  • Vitest

Decisions that matter

  1. Double booking is impossible

    The application does not check it: PostgreSQL guarantees it with an EXCLUDE USING gist constraint. A test fires 10 parallel bookings against the real database to prove it.

  2. Notifications are not lost

    Transactional outbox with FOR UPDATE SKIP LOCKED: the email only goes out if the booking was saved, and overlapping runs do not collide.

  3. The calendar stays up to date

    Each booking generates an .ics with a stable UID and SEQUENCE: move or cancel it and the customer calendar updates.

Next projectDakodev