Multi-brand platform · Tech Lead · Oct 2023 — Present · 1 min read
One codebase that looks and feels like three different luxury brands.
Internal tool

- Brands
- 3
- Apps in the monorepo
- 6
- Shared packages
- 14+
The problem
Three luxury brands needed the same post-booking portal, each with its own look, content and rules, without maintaining three codebases.
What we did
- Built a semantic token theming system in Chakra UI, so brand differences live in tokens, not in conditional logic.
- Organised the work as a Turborepo monorepo with 6 apps and 14+ shared packages: brand theming, PDF generation, email templates, spreadsheet exports, Salesforce and AWS clients, and payment libraries.
- Generated brand-specific trip PDFs on demand from EJS templates.
- Every brand runs identical code, with brand-specific styling, configuration and content filtering.
Screenshots
Login, Smithsonian Journeys
Login, TCS World Travel
Dashboard, Four Seasons
Dashboard, Smithsonian Journeys
Destination page, Four Seasons
Result
Three brands ship from one codebase with full visual differentiation and zero brand conditionals in components.
What I learned
- 01
Design tokens are an architecture decision, not a styling detail: they decide how cheap the next brand is.
- 02
Shared packages pay off only with clear ownership; otherwise they become a dumping ground.
Stack
- React 18
- TypeScript
- Chakra UI
- Turborepo
- EJS
- Sanity.io
Want something like this for your business?