The public site's segmentation needed an editor-side equivalent. Off-the-shelf CMSs handled rules like "show this promo to South Asian agencies in May only" with ugly workarounds, so we built our own.
// CASE STUDY · 2023
Changi Airport Group
Changi Travel Circle CMS
Custom CMS for Travel Circle. Role-based admin, rich-text editing using the same components the public site renders, nightly cron clears expired promos so nobody has to.

// THE BRIEF
// WHAT I SHIPPED
Vue + Vuex admin with role-based auth. Rich-text editing wired into the same component library the public site uses, so editors actually see what readers will see. Nightly cron clears expired promotions from the live site so nobody has to remember to clean up.
// THE DETAIL WORTH TELLING
The win was operational. Editors tag content with audience filters; the public site resolves the right version at request time. A small editorial team can maintain content for several markets without making more content.
// STACK
- Vue.js
- Vuex
- TypeScript
- Element UI
- SCSS