Rezerva Rapid
An online appointment booking platform for small businesses in Romania - salons, clinics, consultants, and other independent professionals.
// Overview
Rezerva Rapid is a SaaS appointment booking platform built for small businesses in Romania. Each business gets a personalized booking link (e.g., rezerva-rapid.ro/book/salon-maria) where clients can schedule appointments without creating an account.
The platform handles service management, scheduling, payments via Stripe, and email notifications.
// For Businesses
- Personalized booking link for each business
- Service management with duration and pricing
- Flexible working hours configuration per day
- Email notifications for new appointments
- Intuitive dashboard with appointments, stats, and settings
- Embeddable booking widget for existing websites
// For Clients
- Quick booking in just a few steps
- No account required to make appointments
- Email confirmation with booking details
- Easy cancellation via email link
// Platform Features
- Complete admin panel for managing all businesses
- Stripe integration for subscriptions and payments
- User impersonation for customer support
- Activity logging and audit trail
- Platform-wide announcements system
// Technical Details
Next.js 14 + React 18: Server-side rendering with TypeScript for type safety across the entire stack.
Stripe Integration: Full payment lifecycle - checkout sessions, recurring subscriptions, and webhook handling for real-time payment events.
PostgreSQL + Prisma: Robust data layer with Prisma ORM for type-safe database queries and migrations.
// Architecture
The platform uses server-side rendering for fast initial loads and SEO, with an Express API layer handling business logic, Stripe webhooks, and email notifications.
// Challenges & Solutions
Challenge: Handling concurrent booking requests for the same time slot without double-booking.
Solution: Implemented optimistic locking with Redis-based slot reservation. When a client selects a time slot, it's temporarily locked for 5 minutes. Database-level unique constraints serve as the final guard against race conditions.
Challenge: Managing complex recurring availability schedules with holidays and exceptions.
Solution: Built a flexible scheduling engine that computes available slots by overlaying business hours, blocked dates, and existing appointments. The engine caches computed availability in Redis and invalidates on schedule changes.
// What I'd Improve
- Add SMS reminders via Twilio for appointment notifications
- Implement Google Calendar and Apple Calendar sync
- Add staff management for businesses with multiple employees
- Build a native mobile app for business owners