// 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

Client Browser
Next.js SSR
Express API
Prisma ORM
PostgreSQL
Stripe
|
SendGrid
|
Redis Cache

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