Barber's Touch
A production platform connecting public booking with the barbershop's calendar, checkout, client records, staff scheduling, and revenue reporting.
- Problem
- Bring customer booking and day-to-day shop operations into one system.
- Contribution
- Built end to end across requirements, UX, frontend, backend, database design, security, deployment, and maintenance.
- Shipped result
- A live platform actively used for online bookings and operational workflows.
Core stack
- React 19
- TypeScript
- Supabase
- PostgreSQL
- Edge Functions
- Vercel
How the system fits together
A protected request path connects public and authenticated interfaces to server-side workflows and shared operational data.
- 1Interface
React + Vite
Responsive customer, admin, and employee experiences share one product surface.
- React 19
- TypeScript
- Vite
- 2Server boundary
Edge Functions
Validated server-side workflows handle booking submission, email, and rate limits.
- Deno
- Upstash Redis
- Resend
- 3Data and access
Supabase
PostgreSQL, authentication, row-level security, and realtime subscriptions keep roles and records synchronized.
- PostgreSQL
- Auth
- RLS
- Realtime
Connected services
- Google Maps / Places
- Resend
- Upstash Redis
- Vercel
1 / Customer experience
From discovery to booking
Responsive marketing pages move visitors from services and work examples into multi-service booking, barber selection, and live slot availability.



2 / Scheduling
Availability before submission
The booking flow accounts for selected services, barber hours, current bookings, and a no-preference path; the authenticated calendar organizes appointments by barber.


3 / Operations
The shop behind the website
Authenticated tools cover revenue, checkout, transactions, clients, recurring schedules, and staff management, with employee access separated from owner-only controls.





