For years, A+ Content Manager rendered with three design systems at once: one from the cloud platform, an aging clone of it that had been snapshotted years earlier, and a newer internal system. Brands saw inconsistent UI depending on which surface they were using, and every engineer paid a context-switching tax deciding which of the three to follow for any new work. Everyone agreed it was a problem. Nobody had a technical strategy for getting down to one system without taking the app down.
In 2025, I owned that architecture and led 5 engineers across multiple teams to execute it, committing 127 changes across 20 packages. My job was the design and the decisions, not authoring every component migration myself.
Key Contributions
Architecture
- Established the facade pattern as the reference implementation: the legacy and migrated versions of each component sit behind a feature flag with dynamic imports, so they're interchangeable at runtime. The team built 55+ changes against that pattern without re-deciding the architecture each time, and ramping a new engineer onto it took about half a week.
- Before touching our modals, I consolidated 8 inconsistent modal implementations into a single facade, so we migrated one component instead of 8 scattered copies.
Conflicting Constraints
- Zero downtime, one-click rollback, and a smaller bundle pull against each other: rollback wants both component sets shippable, while cutting the bundle wants the legacy set gone. I resolved this with a single dynamic-import entry point per app shell that splits the bundle into legacy, migrated, and shared chunks. Rollback stays one feature flag away, but only the active set ships to users.
- Code splitting fails silently when the imports are structured wrong. The app just loads both component sets with no error. Because of this, I verified the bundle composition with a bundle analyzer and watched page-load metrics through each stage of the rollout, so any regression would surface before customers noticed.
Discipline
- We removed dead code first so we wouldn't waste time migrating code that shouldn't exist: 5,943 lines (25%) from one editor package and 5,505 lines (13%) from another.
- We established a regression-test baseline before migrating anything, then dialed the rollout up progressively with one-click rollback available at every stage.
Result
The migration shipped with zero downtime, cut the total JavaScript bundle by about 10%, and delivered a measurable page-load improvement to sellers. Replacing bespoke components with compliance-tested ones also improved our WCAG 2.1 AA accessibility. Since engineers no longer context-switch between three systems, implementing a new component is 20–30% faster than it used to be. And if we ever need to swap design systems again, the facade pattern reduces that job to changing the implementation behind each facade, one file per component.