Overview
Randevo is a multi-tenant SaaS platform that lets hair salons, barbershops, and beauty salons take online bookings. Each salon gets its own public mini-site at randevo.app/salon/[slug], where customers pick a service, choose a staff member, and book an open slot — no phone calls required.
Key features
- Staff-based availability — every staff member has independent weekly hours and time-off days; the booking engine only shows slots that are actually open.
- Automatic slot calculation — time slots are generated from each service's duration (15/30/45/60+ min), preventing double-booking down to the minute.
- Multi-tenant isolation — every server action derives the salon from the authenticated session server-side, never trusts a client-supplied salon ID.
- Full salon dashboard — bookings, calendar, clients, staff, services, and settings, with light/dark theme support.
- Automated email notifications — new booking alerts to the owner, cancellation notices, and day-before reminders to customers via Resend.
Tech stack
Next.js (App Router) · TypeScript · Tailwind CSS · shadcn/ui · Prisma ORM · PostgreSQL (Neon) · Auth.js v5 · Zod · React Hook Form · Vercel Blob · Resend
Architecture notes
The availability engine walks each staff member's weekly schedule, subtracts time off and salon-wide closed dates, and re-validates slot availability server-side at booking time inside a database transaction to prevent race conditions on popular slots.
Deployed on Vercel with a Neon Postgres database provisioned through the Vercel Marketplace integration.


