case 01 · travel / rental
Car rental platform, Thailand
Two brands on one booking engine and admin — a new city is configuration, not a new project.

Problem
Two rental brands (thailandrentalcars.com and phuketcarrentals.com) needed one reliable booking system — without forking the code for every new city.
Approach
A multi-site architecture: one Node.js (Express) backend, a Quasar admin (PWA) and two Nuxt 4 storefronts, all in Docker — with a transactional booking and payment flow and SEO planned from day one.
// architecture
- thailandrentalcars.com
- phuketcarrentals.com
- Quasar admin (PWA)
- MariaDB
- Docker
// key decisions
- D1
One backend, many storefronts
A shared backend and admin panel serve two independent Nuxt 4 frontends, so expanding to a new city does not duplicate the core system.
- D2
Transactional booking and payment
Authorization, owner confirmation and payment capture as one flow, with idempotency and double-booking protection.
- D3
SEO as part of engineering
I own SEO and the launch strategy alongside the product work and lead the content manager.