CelerBook
For salons and barbers, we built a product where bookings, customer communication and insights come together in a calm dashboard.
- Period
- 2026
- Built
- SaaS application / Calendar automation / Notifications / Analytics
The brief
An appointment system that automates bookings, customers and follow-up.
A salon appointment involves more than a calendar. Staff availability, treatments, customers, confirmations, no-shows and revenue all affect one another. The brief was to build one product that supports that entire chain without feeling like heavy business software.
Customers needed to book for themselves around the clock, while the salon sees the same up-to-date schedule and customer information from the web or a phone.
How we built it
From product decisions to engineering: these are the parts that make the project work as one system.
-
One build, multiple surfaces
The Vite/React build reads the hostname and renders the marketing site, dashboard or a booking site at salon.celerbook.com. Web and Flutter use the same ASP.NET Core API.
-
The slot engine is the source of truth
The backend calculates in fifteen-minute steps using working hours, breaks, leave, existing appointments, service duration and time zone. It validates the chosen slot again on confirmation.
-
Tenant isolation in several layers
Clerk JWT, X-Business-Id, membership and permission checks scope every request. BusinessId filters and PostgreSQL Row-Level Security add another data-level boundary.
-
Cloud integrations do not block booking
AWS SES, Twilio, Firebase Cloud Messaging and Google Calendar attach to the appointment. Workers and Redis locks handle reminders and reports outside the critical booking path.
-
Reproducible production deployments
CI delivers the React build to nginx and publishes the .NET 9 API as a Docker image. PostgreSQL 16 stores source data, Redis 7 holds temporary state and health checks cover the API, database and cache.
From online choice to followed-up appointment
A customer sees only available options, but the server makes the final decision. Once stored, the same appointment branches into communication, calendars and business insights.
-
Salon subdomain
The hostname becomes a salon slug; the public React flow loads services and branding.
-
Service, staff and time
The customer follows one flow using current options from the public API.
-
.NET slot engine
Working hours, breaks, leave, duration, time zone and collisions are checked.
-
Tenant-safe storage
Customer and appointment enter the correct business in PostgreSQL and the central calendar.
-
Automatic follow-up
SES, Twilio, FCM and Google Calendar attach; dashboard and analytics read the same source.
The result
More control over customers, no-shows and repeat revenue
CelerBook is a live SaaS platform where a salon can configure staff, services and availability, then publish its own booking page. New bookings appear in the central calendar and automatically start the configured communication.
The same product data powers the dashboard, analytics and mobile app. Owners therefore have one current view of appointments, customers, no-shows and revenue, without separate tools or manual follow-up.
View the live project celerbook.com