Zavia
Marketplace two-sided pentru servicii de beauty & grooming, conectând clienți, saloane și administratori platformă — descoperire pe hartă, programare fără suprapuneri și plăți marketplace integrate.
Zavia

warningProvocarea
Saloanele de beauty independente gestionează programările manual — telefon, WhatsApp, agende pe hârtie — fără vizibilitate asupra disponibilității reale a personalului sau a veniturilor. Clienții nu au un loc unde să descopere saloane din apropiere, să compare servicii și să rezerve direct. Platforma trebuia să susțină un marketplace two-sided complet: onboarding și verificare saloane, gestionarea personalului și a programului de lucru, un motor de disponibilitate în timp real și plăți marketplace — fără suprapuneri de sloturi sub concurență.
- arrow_forwardOnboarding saloane cu geocodare adresă și verificare admin
- arrow_forwardMotor de disponibilitate per angajat, cu program de lucru și zile libere
- arrow_forwardBlocare sloturi la rezervare pentru a elimina suprapunerile concurente
- arrow_forwardPlăți marketplace — platforma reține un comision, salonul primește restul
architectureSoluția
Am construit un monorepo Turborepo cu un API NestJS, două aplicații Next.js 15 (dashboard salon + panou admin) și o aplicație Expo/React Native pentru clienți. PostgreSQL cu PostGIS alimentează căutarea geografică a saloanelor, iar Redis + BullMQ gestionează cozile de procesare asincronă și blocarea sloturilor de rezervare. Autentificarea combină parole Argon2 cu JWT (acces 15 min, refresh 30 zile cu rotație) și autentificare telefon + OTP. Stripe Connect procesează plățile marketplace, direcționând automat comisionul platformei către fiecare salon. Sistemul de roluri (RBAC) separă clar permisiunile pentru client, proprietar salon și admin platformă.
Architecture
Proiectul următor