Skip to content
SaaS Platform

TheBarberKit

All-in-one booking platform for barbershops

Next.js 16React 19SupabaseStripe ConnectTwilioResendTailwind CSS
TheBarberKit screenshot
01
Overview

A multi-tenant SaaS platform that gets barbershops online with appointment booking, payment processing, and shop management. Each shop gets its own branded site with a smooth client booking flow and a full admin dashboard.

02
Quick Facts

role

Solo Developer

type

Multi-Tenant SaaS

stack

Next.js 16, React 19, Supabase, Stripe Connect, Twilio, Resend

focus

Booking & Shop Management

03
What I Built
build-log ~ thebarberkit
01 Multi-step booking wizard — service, barber, date/time selection with real-time availability
02 Multi-tenant architecture — each shop gets a subdomain with row-level security isolation
03 Stripe Connect integration for direct shop payouts with full payment or deposit modes
04 Admin dashboard with calendar view, appointment management, barber and service CRUD
05 Automated email (Resend) and SMS (Twilio) reminders triggered before appointments
06 Time zone-aware booking engine with smart slot calculation and buffer times
07 Self-service onboarding — shops go from signup to live booking page in minutes
08 Redis caching layer via Upstash achieving 90% query reduction
09 i18n support with English and Spanish marketing pages
10 Three pricing tiers (Free, Pro, Business) with Stripe billing integration
04
Gallery
05
Deep Dive

Building a Multi-Tenant Booking Platform

The core challenge was designing a multi-tenant system where each barbershop gets an isolated, branded experience while sharing infrastructure. Each shop resolves via subdomain, with Supabase row-level security ensuring complete data isolation. The booking engine calculates available slots in real-time by intersecting barber availability with existing appointments, handling time zones, buffer times, and business hours. Stripe Connect enables each shop to accept payments directly — supporting full payment, percentage deposits, or fixed deposits. The onboarding flow gets a new shop from zero to a live booking page in minutes, with configurable branding, services, and team members. An Upstash Redis caching layer cuts database queries by 90%, and three cron jobs handle SMS reminders, waitlist expiry, and stale signup cleanup.

06
Outcomes
+ Shops go from signup to live booking page in minutes via self-service onboarding
+ Zero double-bookings guaranteed by database-level constraints
+ Automated SMS and email reminders reduce no-shows significantly
+ Stripe Connect handles payouts directly to each shop — no manual transfers
+ Redis caching reduced database queries by 90%
+ Bilingual marketing (EN/ES) expanding reach to Spanish-speaking shop owners