Problem
Loyalty Plus runs the loyalty programmes for a portfolio of aviation clients, airlines, MROs, and ground service providers across three continents. Their platform was ten years old and showing every one of those years. The original Angular 4 codebase had been patched, forked, half-migrated to Angular 8, then frozen. Initial page loads averaged eight seconds on cellular, the iOS Cordova wrapper crashed on long lists, and any new feature took six weeks of cautious archaeology before code could be written. The brief was unambiguous: modernise the front-end without touching the data layer their enterprise customers had built integrations against, and do it without a single minute of customer-facing downtime.
The temptation when you inherit a legacy front-end is to rewrite the whole stack. We argued against it. The data layer, a stable, well-tested set of REST APIs and a Firestore-backed warehouse, was actually the strongest asset Loyalty Plus owned. Twelve enterprise customers had built integrations against it. Touching it would have triggered a year of contract renegotiations. The right move was a strict perimeter rewrite: replace the front-end and the mobile shell, leave the API surface untouched, and use the rebuild as an excuse to extract a shared services layer that the web and mobile clients could both consume cleanly.
