A multi-vendor salon & spa marketplace covering the full business cycle — booking, POS, inventory, CRM, and platform administration — from one shared API.
Role
Senior Software Engineer — architected and built the full platform
Stack
NestJS 10 / Prisma / PostgreSQL / Socket.IO / Next.js 15 / React Native / Expo / Turborepo / Radix UI / Cloudinary / TypeScript / Tailwind CSS
Live
VisitSign in with phone + OTP. Enter the phone number, then use the code below when prompted.
The interactive preview has been closed to save resources.
Or Open In New TabSalon owners juggle disconnected tools — one for bookings, another for payments, a spreadsheet for stock, paper for staff shifts — while customers have no single place to discover and book across salons.
Unified the entire cycle into one multi-tenant platform where each vendor gets a full back-office and customers browse every salon through a shared marketplace front-end. Vendors self-register, are approved by platform admins, then manage branches, employees, services, and subscription billing independently with all data strictly scoped per tenant.
Enforced multi-tenancy with row-level scoping at the guard and query layer rather than trusting client-supplied IDs, and layered five-role RBAC over a global API-key guard. Stored all money as integer piasters to eliminate rounding drift across POS, refunds, payouts, and commission splits, and decoupled notifications, realtime broadcasts, and audit trails from core logic via domain events.
Deepened experience designing multi-tenant data isolation that holds under real access patterns, modeling money and bilingual content at the database level, and shaping a monorepo so three distinct client surfaces stay coherent against one evolving API.
Continue