← Projects

Barber SaaS

Salon owners run staff, pricing, and bookings from one panel — instead of WhatsApp threads and double-booked calendars.

7 active salon clientsNo bookings on unavailable hours
  • NestJS
  • Prisma
  • PostgreSQL
  • React
  • Vite
  • Docker
  • Cloudflare
  • Nginx
  • VPS

Demo login

Demo salon — try the live app without registering.

Email
test1@example.com
Password
Password123#
Barber SaaS preview 1
Barber SaaS preview 2

Overview

Owner-facing B2B panel for one salon: reports home, barbers, services, clients, and a conflict-aware booking calendar.

Each barber owns duration, price, hours, and time off. The calendar and API enforce those rules so unavailable slots can’t be booked.

Highlights

  • 7 active salon clients on the live product.
  • Schedule rules block bookings on unavailable hours.
  • Reports dashboard with KPIs and attention items as the home screen.
  • Per-barber services, pricing, hours, and time off.
  • Drag-to-book day calendar with overlap checks.
  • NestJS + Prisma + PostgreSQL with JWT and salon-scoped access.
  • React/Vite on Cloudflare; API and Postgres in Docker behind Nginx on a VPS.

Problem

Shops ran on WhatsApp and notebooks — double bookings, unclear availability, and no shared view of performance. The same service needed different times and prices per barber.

Build

Owner MVP: NestJS API, React panel, per-barber overrides, and conflict-safe bookings (app rules + DB constraints). Frontend on Cloudflare; API and database Dockerized on a VPS with Nginx/SSL.

Outcome

Live at app.barbr.space with 7 salon clients. Owners staff, book, and report in one place — and unavailable hours no longer accept appointments.