Case study · Multi-tenant travel SaaS
Bahaza
B2B and B2C travel products spanning responsive dashboards, booking flows, tenant portals, role-aware operations, and a no-code website builder.
Context
The product problem
Travel agencies, operators, subagents, and travelers needed distinct interfaces for search, passenger data, PNRs, payments, cancellations, ticketing, reports, wallets, and branded content.
Constraint
What made it difficult
A multi-schema data architecture and many user roles had to support complex booking workflows without forcing repetitive manual entry or engineering-led content updates.
Decision
The technical judgment
I adapted AdminJS for the multi-schema architecture, automated ID parsing and Excel imports, and built a no-code CMS for tenant-specific pages and tour content.
- Failure states designed explicitly
- Observable production path
- Accessible interaction model
Under the hood
A readable system boundary.
The architecture stays compact enough to explain and explicit enough to operate.
- Next.js UI
- AdminJS
- Booking services
- Tenant schemas
- Next.js
- React
- TypeScript
- AdminJS
- Multi-schema data