Skip to main content
2026

Booking page for small studios

Next.js
Supabase
PostgreSQL
Row Level Security
Stripe
Mercado Pago
Tailwind CSS
TypeScript

Description

A booking page a salon can send by link, and a back office behind it. The visitor picks the service, the day and the time without an account. Live demo, no sign-in needed to book.

Features

  • Public page per business at /p/slug, with services grouped by category and a four-step booking flow
  • Opening hours by weekday, holidays and temporary closures, all reflected in the times offered
  • Back office for services, prices, duration, availability and branding colours
  • Payment settings per business, with Stripe and Mercado Pago
  • Row Level Security per profile: a business only reads its own bookings

Challenges

  • Turning opening hours, service duration and existing bookings into a list of times that are actually free
  • Letting a stranger book without an account while keeping the business data closed
  • Two payment providers with different onboarding, behind one settings screen

Learnings

  • That the free-slot calculation is the whole product, and everything else is a form around it
  • That a public page needs to work for someone who arrives from a link in a bio, with no context
  • How much of a booking product is calendar arithmetic rather than interface