Enterprise CMS Migration
A multinational was running separate content systems per region, each with its own templates, its own editors and its own idea of what a product page should contain. Publishing one global announcement took a week of coordination. We consolidated everything onto a single headless CMS and gave each region the autonomy it actually needed, without the duplication it did not.
- Sector
- Enterprise technology
- Engagement
- Content platform consolidation and migration
- Timeline
- 9 months across three regional rollouts
The challenge
- Four regional CMS installations held overlapping content with no shared structure, so the same product was described four different ways.
- Publishing anything global meant a manual relay between regional teams, with each one re-entering content by hand and introducing its own errors.
- Front-end templates were coupled to the CMS, so a layout change required a developer release in every region separately.
- Years of accumulated content included broken links, orphaned pages and assets nobody could trace to an owner.
- Translation was a side process run over email and spreadsheets, entirely outside the systems that held the content.
Our approach
Each step below was finished and verified before the next one started, so the risk stayed contained at every stage.
Model the content before moving it
We ran workshops with editors from every region to agree a shared content model: what a product page genuinely is, which fields are global, and which are legitimately regional. Agreeing this first is what kept the migration from simply reproducing the existing mess in a newer system.
Audit and triage the archive
Automated crawling catalogued every page, asset and link across the four systems. Roughly a third turned out to be orphaned or superseded. Rather than migrate it, we gave each region a reviewed list and archived what nobody claimed.
Decouple presentation from content
The front end was rebuilt to consume the CMS through an API, so templates are now versioned with the application. A layout change ships once and applies everywhere, instead of being repeated per region.
Script the migration, repeatedly
Migration ran as repeatable tooling, not a one-off import. We could re-run a region's migration as often as needed, diff the output against the source and fix the mapping — rather than hand-correcting records after the fact.
Roll out one region at a time
Each region went live separately, with the previous system kept readable for a defined period. Lessons from the first rollout were folded into the second and third, and the last region took a fraction of the time the first one did.
Bring translation inside the platform
Translation became a workflow state within the CMS, with source-change notifications. Translators work against live content instead of exported spreadsheets, and nothing ships half-translated.
What we delivered
- A single shared content model governing all regions
- A headless CMS with regional permissions and editorial workflow
- A decoupled front end consuming content over GraphQL
- Repeatable, re-runnable migration tooling with verification diffs
- An in-platform translation workflow with change notifications
- Editor training and documentation for each regional team
Technology used
- Headless CMS
- Next.js
- TypeScript
- GraphQL
- CDN edge caching
- Automated migration tooling
The results
60%
Faster editorial workflow
Measured as the time from draft creation to publication, averaged across regional teams before and after the move.
4 → 1
Content systems
Four regional installations consolidated into one platform, removing duplicated structure and licensing.
~33%
Archive retired, not migrated
Orphaned and superseded pages were identified and archived rather than carried into the new system.
One release
For a global layout change
Templates now ship with the application, so a change applies across every region at once.
A global announcement that previously took a week of coordination now publishes the same day. Regional teams kept the local control they genuinely needed — pricing, availability and local campaigns — while everything that was only duplicated by accident is now shared.
Have a similar problem?
Tell us what is slowing you down and we will tell you honestly whether it needs a rebuild or a much smaller fix.
