E-commerce platforms
Marc O'Polo: migrating 37 storefronts to a headless CMS
I contributed to a mid-project CMS migration that replaced a slow in-house publishing workflow with a shared Storyblok component model across 37 storefronts and six languages.

The system I joined
Five months into a commerce relaunch, the in-house CMS still required developers for routine campaign and content work. Design, content, and commerce workstreams were blocking one another.
The team needed evidence that changing the content platform mid-project would reduce risk rather than add another unfinished migration.
Where I contributed
I worked on the Storyblok component model, Nuxt storefront integration, migration tooling, visual-editor workflow, and coordination between content and frontend workstreams.
A working prototype changed the decision from a theoretical platform debate into a side-by-side comparison of real editorial work.
Decision trail
Constraints became architecture.
Each decision below connects a concrete limitation to the engineering response and its practical effect.
- 01
Constraint
Stakeholders were being asked to replace a system after months of investment.
Decision
Build the same representative homepage scope in Storyblok within 48 hours and demonstrate live editing and preview.
Impact
A four-month legacy-CMS scope became a working prototype that secured agreement on the migration.
- 02
Constraint
Content migration could not pause active marketing across 37 live storefronts.
Decision
Map legacy structures into a shared component schema, migrate through the Management API, and validate each story before release.
Impact
All storefronts and six languages moved within the 14-day implementation window.
- 03
Constraint
A flexible CMS could still fail if editors needed developers to understand its component model.
Decision
Make the visual editor and component vocabulary match the storefront structure editors already recognised.
Impact
Content teams began publishing without formal onboarding or developer assistance.
Outcome
What the work produced
- A representative prototype shipped in 48 hours.
- The full implementation covered 37 storefronts and six languages in 14 days.
- Developer dependency was removed from routine content publishing and campaign management.
- The shared component contract let design, content, and engineering progress in parallel.
Technology
The prototype worked because it made the organisational bottleneck visible. A shared content model became a coordination system for design, editorial, and engineering, not only a CMS schema.
Abrar Ahmed