Contentful migration
scoped against your renewal date.
We migrate teams off Contentful onto DatoCMS or Storyblok, scoped against the renewal date. Content models translate cleanly, localizations carry over, and the frontend rewrite is part of the same project. You get a fixed price and a cutover that lands before your renewal.
Trusted by
Trusted by
As of June 2026
Contentful is being acquired by Salesforce, with the deal expected to close later in 2026. If that shifts how you think about roadmap, pricing, or data residency, the renewal math on this page still applies. We wrote up what the acquisition means for Contentful customers and what to actually do about it.
Contentful was the right call. Until renewal.
Most teams do not leave Contentful because the platform is bad. They leave because the cost stopped matching the value, and because renewal is the moment somebody finally does the math on what the next three years look like. Compose going into maintenance mode by the end of 2026 has moved a few of those conversations forward. This page sits inside our wider headless migration practice. If you are leaving a different system, we also move teams off WordPress and Webflow.
The annual quote doubled, and the value did not.
Compose is being deprecated and Contentful's own docs give current installations until the end of 2026. If your editors live in it, you are rebuilding that workflow either way.
Above 20 users the published plans stop and the user count becomes a custom number in an enterprise quote. You cannot model that yourself.
Version history does not export and every year you stay adds more of it to the pile you would leave behind.
Localization workflows feel like fighting the platform every time.
Renewal is approaching and the migration window is shorter than it looks.
The Reality
Renewal cycles are predictable. That is the good news. A migration scoped against the date stops you paying for both platforms at once.
What Survives the Move
Every entry and locale lands intact.
Contentful's content model is structured, which makes a migration predictable. Entries, models, locales and references all translate to DatoCMS or Storyblok without losing fidelity. The rest of the project is the frontend code that talks to them.
All your entries
exported through the Content Management API. Drafts come along when the export runs with include-drafts, and entries sitting in Changed state get published on import. Version history is the exception. Contentful's export docs say it starts fresh in the new space, so no destination can recover it.
Your content models
translated field by field. Short text, long text, references, location, JSON, media all map cleanly.
Your localizations
every locale, every translated field. The localization model is rebuilt to match how DatoCMS or Storyblok handles multi-locale natively.
Your reference graph
linked entries, references with cardinality, and embedded references all reconstructed with the same connections.
Your assets
media moved to the destination CDN with the same URLs preserved through redirects. No broken image references in the wild.
What Changes
The code rewrite is part of the job.
A headless-to-headless migration is mostly an integration project. Your frontend talks to a different API. That code change is included in the same migration. We ship one cutover.
Your codebase
every reference to the Contentful SDK gets rewritten during the migration itself. You ship one PR.
The editor experience
changes shape. Storyblok puts editors on the page itself, DatoCMS puts them in a structured workspace. Which one your team prefers is the main thing the audit settles.
Your cost model
becomes something you can calculate up front. On their standard plans, Storyblok publishes $15 per month per additional user and $10 per month per extra million API requests, DatoCMS € 9 per month per extra collaborator and € 9 per million extra API calls. Both still charge per user and per request, and both go custom at the top tier. What changes is that at the sizes most teams sit at, you can do the arithmetic before you sign.
Scheduled releases, tasks, and workflows
do not migrate at all. Contentful's export docs say they have to be scripted afterwards. We put that in the scope and price it.
Your renewal calendar
drives the plan. We work backward from the date you already have so the cutover lands ahead of it, with no window where you are running two platforms.
How It Works
A migration scoped to your renewal date
Audit and destination choice
We export your Contentful environment, walk through every model and every locale, and review the apps and integrations attached. Then we recommend DatoCMS or Storyblok based on how your editors work and what the frontend needs. You approve the destination before any code is written.
Translate models, migrate, rewrite
Content models are translated into the destination's format. Entries are exported through the Content Management API and imported through the destination's bulk import. The frontend integration is rewritten in the same project. Locales are preserved with hreflang in place. Drafts come across with the include-drafts flag, and entries in Changed state are published on import.
Cutover before renewal
We cut over before your Contentful renewal date with a window we agree on up front. Contentful stays read-only during the watch period as a safety net. We monitor Search Console, Analytics, and the new CMS for 30 days after launch.
DatoCMS or Storyblok?
Most decisions come down to who edits the most.
If marketing edits frequently and wants to see the page directly, Storyblok's visual editor wins. If content is heavily structured and developers edit alongside editors, DatoCMS tends to fit better. We make that call once the audit is done.
Start with an auditPricing
Fixed price, renewal-aware
Contentful migrations vary in scope based on model count, locale count, and frontend complexity. A 20-model setup with three locales and a clean Astro or Next.js frontend is one thing. A 100-model setup with ten locales and bespoke app integrations is another. The ranges below are where typical projects land. Once we scope yours, you get a fixed quote tied to your renewal date.
Full audit of your Contentful environment, models, and integrations
Destination recommendation between DatoCMS and Storyblok
Model translation field by field, locale by locale
Content migration through Content Management API export
Frontend code rewrite from Contentful SDK to destination SDK
Renewal-aware schedule built backward from your renewal date
30 days of post-launch monitoring
Same team stays accountable for the system
Performance and uptime monitored continuously
Content and component changes handled monthly
All prices are net, excluding applicable VAT.
Who This Is For
Who this is for
This works well if you
Are facing a renewal with a price increase that does not match the value
Want per-user and per-request rates you can look up on the destination's standard plans before you commit
Want a visual editor as the primary editing surface for your marketing team
Run localized content across multiple markets and want this to feel native, not bolted on
Use Compose heavily and have to rebuild that workflow anyway, now that Contentful has put it in maintenance mode through the end of 2026
Need a migration scoped to your renewal date with a fixed window and a fixed price
This is not a fit if you
Run editorial process on scheduled releases, tasks, and workflows. Contentful does not migrate those, so they get rebuilt on the other side and the scope grows. Talk to us first
Have deeply customized app integrations or Studio experiences in Contentful that would need to be rebuilt as well. Scope is larger
Are happy with Contentful and only looking to negotiate price. We do not help with that
Need a new build from scratch with no legacy content. See Headless Website
Are not sure yet what the right move is. Start with a Headless Audit