All work

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.

OutcomeReduced manual booking data entry by about 20 minutes per workflowResult documented in résumé
01

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.

02

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.

03

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.

  1. Next.js UI
  2. AdminJS
  3. Booking services
  4. Tenant schemas
  • Next.js
  • React
  • TypeScript
  • AdminJS
  • Multi-schema data
Next case studyZanvent Stream