RSVD

Project

RSVD

RSVD: System rezerwacji online dla małych firm

Next.js + Stripe + Supabase + Google Calendar

System rezerwacji SaaS, który pozwala firmom usługowym przyjmować rezerwacje 24/7. Widget do osadzenia na stronie, płatności online, synchronizacja z kalendarzem Google.

RSVD landing page

Geneza projektu

Studia fotograficzne, gabinety terapeutyczne, sale konferencyjne — wszystkie borykają się z tym samym problemem: telefony w trakcie sesji, excel z terminami, ręczne wysyłanie przypomnień. RSVD to system, który pozwala klientom samodzielnie rezerwować i płacić, a właścicielom skupić się na pracy zamiast na administracji.

RSVD dashboardRSVD bookingsRSVD calendarRSVD embed

Kluczowe funkcjonalności

Widget do osadzenia

Konfigurowalny widget rezerwacyjny. Właściciel dostaje kod i wkleja na swoją stronę. Widget automatycznie dopasowuje się do kolorystyki i działa na każdym urządzeniu.

Płatności online

Integracja ze Stripe Connect. Klient płaci przy rezerwacji, pieniądze trafiają bezpośrednio do właściciela. Obsługa refundów i automatyczne paragony.

Google Calendar

Dwukierunkowa synchronizacja. Rezerwacje automatycznie pojawiają się w kalendarzu właściciela. Blokuje terminy, wysyła zaproszenia klientom.

Podpisy elektroniczne

Dla branż wymagających umów (studia foto, wynajem sal). Klient podpisuje regulamin na canvasie, system generuje PDF z metadanymi.

Kupony rabatowe

System promocji z walidacją: limity użyć, daty ważności, rabaty procentowe i kwotowe, minimum godzin rezerwacji.

Przypomnienia email

Automatyczne powiadomienia 24h przed rezerwacją. System sprawdza nadchodzące terminy i wysyła maile przez Resend.

Wyzwania i rozwiązania

Problem

Stripe Connect wymaga, żeby właściciel przeszedł onboarding (weryfikacja KYC). W międzyczasie może przyjmować rezerwacje, ale nie płatności online.

Rozwiązanie

System statusów onboardingu. UI dynamicznie pokazuje dostępne metody płatności. Przed włączeniem Stripe, właściciel może przyjmować gotówkę lub przelewy.

Problem

Widget musi działać na dowolnej stronie, ale z zachowaniem bezpieczeństwa (CSP, X-Frame-Options).

Rozwiązanie

Osobna konfiguracja nagłówków dla ścieżek embed. Sanityzacja parametrów CSS (kolory, fonty) przed renderowaniem.

Stack technologiczny

FrameworkNext.js 16 (App Router)
LanguageTypeScript
DatabaseSupabase (PostgreSQL + Auth)
PaymentsStripe Connect
CalendarGoogle Calendar API
EmailResend
PDF@react-pdf/renderer
UITailwind CSS + Radix UI