Architecting Contentstack's content model
Designed the content architecture for AEO's migration from Oracle WCS to Contentstack — built around a reusable 'lockup' pattern, abstracted visual control, and a shared content library.

- WCS → CS
- Headless migration
- Lockup
- Atomic content unit, authored once
- Shared library
- Reusable entries across surfaces
- Abstracted
- Visual control per surface
Problem
AEO's legacy CMS, Oracle WCS, had two structural issues that compounded each other: content was tightly coupled to its visual presentation, and reusable elements were scattered (and often duplicated) across the system. Moving to a headless CMS — Contentstack — was the opportunity to fix both, but only if the new architecture was designed deliberately.
Approach
After extensive discovery with the design and content authoring teams, I anchored the architecture on three principles:
- The "lockup" as the atomic unit. A single marketing message lives in one place — the lockup — and is referenced wherever it needs to appear. The message is authored once and consumed everywhere, ensuring consistency across surfaces.
- Visual control abstracted from the message. Each surface (web, mobile, app) can style the lockup differently without changing the underlying content. Brand voice stays consistent; visual treatment adapts to context.
- A shared content library. Reusable entries live in a discoverable library, eliminating the redundancy and bloat that plagued the WCS era.
The right abstraction is the one that lets non-engineers move fast without breaking things. The lockup model wasn't novel — but pairing it with abstracted visual control and a real content library is what made the system actually maintainable as content volume grew. Architecture decisions live or die on the day-to-day experience of the people authoring against them.