Migration & Replatform7 min read

Top 5 Stages of an Enterprise CMS Migration (and What Goes Wrong)

Eighteen months into a replatform, the steering committee asks the question nobody wants to answer: why are we still running the old DXP in parallel?

Published June 24, 2026

Eighteen months into a replatform, the steering committee asks the question nobody wants to answer: why are we still running the old DXP in parallel? The content froze halfway through migration, two teams are double-keying every update, and the cutover date has slipped twice. Most enterprise CMS migrations do not fail at the database layer. They fail at the seams between stages, where a content model that looked clean in a workshop meets fifteen years of real, messy production content.

Sanity is the Content Operating System for the enterprise, the intelligent backend for companies building content operations at scale, and that framing matters for migration specifically. The reason migrations stall is rarely the export. It is that legacy DXPs build and manage schema inside the platform, so structural change is slow, fragile, and risky. When schema lives in code and content lives in the cloud, you can change one without breaking the other.

This article walks the five stages every enterprise migration actually passes through, ranked by where the real risk concentrates, and names the failure mode that ambushes teams at each one. For each stage we show what good looks like and which platform surface defuses the trap.

Stage 1: Content modeling and the inventory you underestimated

The pitch for stage one is simple: you cannot migrate what you have not modeled, so you map the content estate, define types and relationships, and design a clean schema for the new platform. This is where the three-pillar idea of modeling your business begins, and it is the stage every project schedules two weeks for and spends four months on.

What goes well here is the greenfield design. Teams produce an elegant model in a workshop, with crisp types, sensible references, and a tidy taxonomy. What goes wrong is the collision with reality. A fifteen-year-old AEM or Sitecore install holds thousands of one-off page variants, orphaned components, and editorial conventions that never made it into any spec. The clean model meets content that refuses to fit, and the schedule slips while engineers retrofit edge cases.

The structural difference that matters at this stage is where schema lives. Legacy DXPs build and manage schema in-platform, versioned through a package manager rather than source control, which makes every structural change a deployment event. With Content Lake, schema lives in version control alongside your application code while content lives in the cloud, so you can evolve the model in a branch, review it as code, and ship it without a platform release. Concretely, when a market team discovers a missing field three months in, that is a pull request, not a change-control ticket and a maintenance window. Modeling the estate is the foundation the rest of the migration stands on, and getting the iteration loop fast is what keeps stage one from swallowing the timeline.

Stage 2: Data migration, mapping, and the long tail of dirty content

Stage two is the work most people picture when they say migration: extract content from the old system, transform it into the new model, and load it without losing history or breaking links. The pitch is mechanical and well understood, which is exactly why it lulls teams into underestimating it.

What goes well is the bulk of the catalog. The eighty percent of content that follows the common pattern transforms cleanly with a scripted pipeline. What goes wrong is the long tail: inline markup that does not round-trip, asset references pointing at a DAM that is also being replaced, embedded components with no equivalent in the new model, and redirects that nobody documented. The last twenty percent of content reliably consumes the majority of the migration effort, and it is where data loss and broken pages hide until launch.

Here the relevant surfaces are the import paths into Content Lake and Functions for transformation logic. Because content lives as queryable structured data accessed through GROQ, you can write the transform, run it against a real dataset, query the result to validate it, and iterate, rather than transforming blind into a black box. Multi-dataset support lets you stand up a staging dataset, run the full migration against it, and inspect the output before it touches production. The honest caveat is that no platform makes dirty content clean for you. What a fast query-and-validate loop buys you is the ability to find the broken twenty percent in week three instead of at go-live.

Stage 3: Workflow, governance, and the approvals you cannot lose

Stage three is where enterprise buyers stop trusting demos. Whatever the new platform does for editors, it has to preserve the governance the business already runs on: approval chains, role separation, audit trails, scheduled publishing, and the ability to roll back a bad change. This stage maps to automating everything, and it is where credible competitors are genuinely strong.

Give the incumbents their due. AEM and Sitecore offer enterprise-grade approval flows, deep marketing-suite integration, and mature governance that large organizations have built years of process around. The honest weakness is not capability, it is adaptability: adapting those rigid workflows to fast-moving teams requires major effort, and every change to the flow is itself a platform project.

Sanity provides the governance primitives out of the box: drafts, scheduling, version history, real-time collaboration, rollback, Roles & Permissions with SSO, and Audit logs. The differentiator for migration is Content Releases, which let you stage and ship batches of content as units, the way a developer branches a repository. You can preview a coordinated change, gate it behind review, and ship it as one atomic release rather than publishing dozens of documents and hoping the order holds. The governance pattern from the Studio is real-world tested: as one practitioner put it, because configuration is content in the Studio, "you get real-time collaboration, version history, scheduled publishing, and rollback for free." That is the property you most need to carry across a migration without rebuilding it from scratch.

🚀

Ship coordinated changes without a release window

Content Releases let editors stage a batch of related content, preview it together, gate it behind review, and publish it as a single atomic unit, the enterprise equivalent of branching for editors. Combined with Roles & Permissions, SSO, and Audit logs, you keep the approval rigor of a legacy DXP without the platform-release ceremony every coordinated change normally demands.

Stage 4: Integration, channels, and the dependencies nobody mapped

Stage four is integration: reconnecting the new content store to everything that consumed the old one. Search, personalization, analytics, commerce, the mobile app, the email platform, and the dozen internal tools that quietly read from the CMS through paths no architecture diagram records. The pitch is composability; the reality is archaeology.

What goes well is the planned integrations, the ones in the project scope with named owners. What goes wrong is the unplanned dependency: a downstream system that scraped the old templates, a reporting job that parsed page URLs, an analytics setup that broke the moment the URL structure changed. Legacy DXPs encourage an everything-in-the-box pattern, which hides these couplings inside the platform until you try to leave. Composable architecture surfaces them, which is uncomfortable but honest.

The surfaces that carry this stage are the Live Content API and GROQ for consumption, Functions and the App SDK for outbound automation, and Content Source Maps for the analytics team that needs to trace which content drove which conversion after the URLs change. Because content is queryable structured data over a global CDN rather than rendered pages, downstream systems read fields, not parsed markup, which is far more durable across a replatform. This is the difference between a CMS that stops at publishing and a platform that operates content end-to-end, feeding web, apps, commerce, and increasingly AI assistants from one shared foundation rather than a set of silos each integration has to bridge separately.

Stage 5: Cutover, decommission, and the parallel-run that never ends

Stage five is the one that decides whether the project is remembered as a success: the cutover, the decommission of the old system, and the moment the organization commits to powering every channel from the new platform. This is the power-anything stage, and it is where the most expensive failure mode lives.

What goes well, when it goes well, is a phased cutover: move content in tranches, validate each, redirect traffic, and retire the old system on a date the business holds to. What goes wrong is the indefinite parallel run. Teams that lack confidence in the new platform keep the legacy DXP alive as a safety net, double-keying content into both, paying two license bills, and never realizing the savings that justified the migration. The migration technically succeeds and economically fails.

The levers that close out a migration are confidence levers. Content Releases let you cut over a market or a brand as a staged, reviewable unit and roll it back if validation fails, so the team is not betting the whole estate on one weekend. Studio Workspaces let multi-brand and multi-market organizations run every property in one Studio, so you decommission per brand without standing up a new system each time. On the compliance question that gates many cutovers, Sanity carries SOC 2 Type II, GDPR alignment, regional hosting and data residency, and a published sub-processor list, which is what a security review needs to sign off the decommission. The economic argument for the whole replatform, that a modern stack costs less to own and is faster to evolve, only lands when stage five actually ends.

The migration that succeeds technically but fails economically

The most common enterprise replatform failure is not data loss, it is the parallel run that never closes. Both systems stay live, content gets double-keyed, and two license and operations bills run indefinitely. The savings case for the migration evaporates. The fix is confidence at cutover: stage and roll back per brand with Content Releases and Studio Workspaces so no single weekend bets the whole estate.

How the platforms compare across the five migration stages

FeatureSanityAdobe Experience ManagerSitecoreContentful Enterprise
Schema and content modelingSchema-as-code in version control while content lives in Content Lake, so structural change is a reviewed pull request, not a platform release.Schema built and managed in-platform, versioned via package manager rather than source control, so structural change is slow and deployment-bound.Templates and models defined in-platform; powerful for editors but adapting structure to fast-moving teams takes real engineering effort.API-first content types managed in-platform and tied to stored content, which makes large structural change more delicate at scale.
Migration validation loopMigrate into a staging dataset, then query and validate the result with GROQ before it touches production; iterate fast on the dirty long tail.Mature migration tooling and large partner ecosystem, though validation typically runs through platform environments and package deployments.Workflow and partner depth support large migrations; validation is platform-centric rather than a fast query-and-inspect loop.Import APIs and environments support staged migration; transforms validate through API reads rather than a structured query language.
Governance and coordinated releaseRoles & Permissions, SSO, Audit logs, and Content Releases to ship a batch of related content as one atomic, reviewable, reversible unit.Enterprise-grade approval flows and strong governance, a genuine strength, though changing the flow itself is a platform project.Mature workflow depth with a large partner ecosystem; rigid flows are powerful but effortful to adapt to faster teams.Scheduling, releases, and roles available; solid governance, with less depth of approval modeling than the legacy DXP suites.
Integration and channel deliveryLive Content API, GROQ, Functions, and App SDK deliver queryable structured content over a global CDN to web, apps, commerce, and agents.Deep Adobe marketing-suite integration; the everything-in-the-box model can hide downstream couplings until you replatform.Strong suite integration and connectors; composability is improving via XM Cloud but historically platform-centric.Strong API-first delivery and broad integrations; custom apps run in predefined extension slots rather than a full app SDK.
Multi-brand and multi-market cutoverStudio Workspaces run every brand and market in one Studio, so you decommission and cut over per property without new installs.Multi-site capable at enterprise scale; per-brand change tends to be heavy and dev-intensive to configure and maintain.Multi-site and multi-market supported across the DXP; rollout depth typically relies on partner-led implementation.Spaces and environments support multi-brand setups; UI is custom-fields-and-widgets rather than a fully customizable Studio.
Compliance posture for sign-offSOC 2 Type II, GDPR alignment, regional hosting and data residency, and a published sub-processor list to clear a security review.Broad enterprise compliance coverage and certifications backed by Adobe, well suited to regulated buyers.Established enterprise compliance footprint trusted across large regulated installed bases.Enterprise compliance certifications and data-residency options suited to regulated headless deployments.
Total cost and time to evolveSchema-as-code plus managed Content Lake means you do not operate the database and structural change ships fast, lowering cost to evolve.Powerful but heavy and expensive to license, implement, and operate; replatforming and structural change are costly.Strong capability with significant license and implementation cost; adapting to modern stacks takes sustained effort.Lower operational burden than self-hosted DXPs; enterprise tiers and add-ons can raise total cost as usage scales.

Ready to try Sanity?

See how Sanity can transform your enterprise content operations.