KeystoneJS logo
Dato CMS logo

From KeystoneJS to Dato CMS

We are the KeystoneJS to Dato CMS migration experts

Last verified:



Challenges with KeystoneJS

Key pain points

The biggest challenge with KeystoneJS is that it hands you all the responsibility that a managed CMS would normally handle. Deployment is entirely on you, and the documentation around production hosting, Docker configuration, and scaling is thin. We've seen teams struggle to go from a smooth local development experience to a reliable production setup, especially if they don't have dedicated DevOps support. The admin UI Docker image alone can balloon to over a gigabyte, which is a headache for containerised deployments.

The community around Keystone is significantly smaller than competitors like Strapi or Payload. That means fewer tutorials, fewer plugins, and slower answers when you hit an edge case. The ecosystem of ready-made integrations is almost non-existent, so you'll be building most things from scratch. For an agency working on client projects with deadlines, that time cost adds up quickly.

Content editors also tend to have a harder time with Keystone compared to more polished alternatives. The admin UI is functional but feels utilitarian, and non-technical users often need more onboarding than you'd expect. There's no visual editing, no preview infrastructure, and no real content workflow features like drafts, publishing schedules, or approval chains without building them yourself. If your client's content team needs a CMS they can pick up and run with, Keystone usually isn't the answer.

Help me migrate


Deployment complexity in KeystoneJS

Deployment complexity

Self-hosting is the only option, and the docs don't hold your hand. Getting Keystone into production requires real infrastructure knowledge, and the large Docker image sizes make it worse.

Small community in KeystoneJS

Small community and ecosystem

Compared to Strapi or even Payload, the community is much smaller. Fewer plugins, fewer tutorials, and slower support when things go wrong.

No built-in content workflows in KeystoneJS

No built-in content workflows

There are no turnkey drafts, scheduled publishing, or approval chains. Keystone provides field primitives that can be assembled into publishing workflows, but you need to wire them up yourself.

Dated admin UI in KeystoneJS

Admin UI feels dated

The admin panel is functional but lacks the polish and UX of modern CMS interfaces. Non-technical editors often find it confusing and need more training.

No visual editing in KeystoneJS

No visual editing or live preview

There's no way for editors to see content in context before publishing. You'd need to build your own preview infrastructure, which is a significant engineering effort.

Scaling challenges in KeystoneJS

Scaling requires significant effort

Running Keystone under high traffic means managing session stores, reverse proxies, and server resources yourself. It doesn't scale as smoothly as cloud-native CMS alternatives.



Benefits of Dato CMS

Key advantages

DatoCMS has a low learning curve, clean UI, and a drag-and-drop schema builder that lets teams shape content without a single existential crisis. Editors love it. Developers tolerate it. Everyone gets to ship faster.

The APIs are solid, the media pipeline is excellent, and the multilingual tooling is actually usable. Visual Editing — added in February 2026 — means editors can now click directly on live page elements to make changes, which genuinely closes the gap with visual-first CMS tools. The JavaScript client also gained full end-to-end type safety in late 2025, with types generated from your own schema, which is a real quality-of-life win for larger teams. To be honest, it's expensive, and the drag-and-drop approach means it's not exactly winning awards for flexibility. Still, if you want something that feels polished out of the box and integrates nicely with Next.js, Shopify, and friends, DatoCMS delivers a pretty smooth experience.

Start my migration


User-friendly interface of Dato CMS

User-friendly interface

DatoCMS has a clean, approachable UI that editors can pick up instantly. Little training needed, and teams can publish content without tripping over the system.

Flexible API-based approach in Dato CMS

Flexible API-based approach

With both GraphQL and REST, you can query content however you prefer. It gives developers freedom to shape data flows without fighting the CMS.

Seamless integration

Seamless integration

DatoCMS works smoothly with popular frameworks and tools like Next.js, Astro, Svelte, and Vue. Plug it in, fetch content, and you're off.

Efficient data retrieval

Efficient data retrieval

The GraphQL API is fast and predictable, making it easy to pull exactly the data you need without overfetching or messy workarounds.

Powerful image tools

Powerful image tools

Dato handles image optimisation, responsive resizing, and transformations automatically. Your site stays fast without custom pipeline work.

Real-time updates

Real-time updates

Content changes sync instantly across environments, giving teams quick feedback and reducing the "save, refresh and hope" cycle.





Common questions

KeystoneJS to Dato CMS migration FAQs

Answers to the most common questions about KeystoneJS to Dato CMS migration

What makes migrating from KeystoneJS difficult?
KeystoneJS stores data through Prisma, so the database layer is well-structured and easy to export. The harder part is replacing everything Keystone doesn't give you. Most Keystone projects have custom-built preview systems, publishing workflows, and access control logic that are tightly coupled to the Node.js backend. Rebuilding those features in a new CMS takes planning. We typically budget 4 to 8 weeks for a Keystone migration depending on how much custom infrastructure the team has built around it.
Why do teams move away from KeystoneJS?
Deployment complexity is the number one reason. Teams love Keystone during local development, then hit a wall getting it reliably into production. The Docker images can balloon past a gigabyte, the docs don't cover production hosting well, and there's no managed hosting option. The small community compounds this problem. When you hit an edge case, there are fewer people who've solved it before. Content editors also struggle with the admin UI, which lacks visual editing, live preview, and built-in publishing workflows that competing platforms ship by default.
How do we extract our content from KeystoneJS?
Since Keystone uses Prisma ORM, your content lives in standard PostgreSQL, MySQL, or SQLite tables with clean schemas. You can export directly from the database using SQL dumps or Prisma's query API. The content model is defined in your TypeScript codebase, so mapping fields to a new CMS is straightforward. We write automated scripts that handle the data transformation, including resolving relationships between lists and migrating file references. For a project with 20 to 50 Keystone lists, extraction and transformation usually takes 1 to 2 weeks.
How does DatoCMS compare to other headless CMS platforms?
DatoCMS sits in an interesting middle ground. The UI is polished and editors pick it up fast, which puts it ahead of more developer-centric options like Hygraph or Strapi. The image pipeline is genuinely excellent, with automatic optimisation and responsive transformations built in. Visual Editing launched in February 2026, so editors can now click directly on page elements to make changes with real-time updates — available on all plans including Free. Where it still falls short is customisation depth. Compared to Sanity, you hit ceilings sooner when you need custom validation, unique editorial workflows, or deeply nested content structures. Compared to Contentful, DatoCMS is cheaper at lower tiers but has a smaller plugin ecosystem. It's a solid choice for small to mid-sized projects, but larger builds tend to outgrow it.
What does DatoCMS pricing look like as traffic grows?
DatoCMS pricing is tied to API calls and bandwidth, which means costs scale with your traffic. The free tier includes 100k Content Delivery API calls per month and 10GB of bandwidth. Separately, the Developer plan Content Management API limit was raised to 25k monthly calls in April 2026. The Professional plan runs €199/month on a monthly basis, or €149/month billed annually, with higher limits including 1M CDA API calls and 1TB bandwidth per month. The Enterprise tier is custom-priced. One real concern worth flagging is that there is no hard spending cap. DatoCMS confirmed in their community forum that paid plans let overages accumulate automatically with no way to set a budget limit — so a traffic spike or viral post can generate surprise bills without warning. Set up API caching aggressively and lean on static generation to keep costs predictable. If budget guardrails are critical to your team, factor that in before committing.
Is DatoCMS good for non-technical content editors?
For basic content editing, yes. DatoCMS has one of the cleaner editor interfaces in the headless CMS space. Drag-and-drop schema building means content teams can understand the structure visually, and the media library is well-designed. Visual Editing — launched February 2026 across all plans — now lets editors click directly on live page elements rather than switching to a separate preview environment, which closes a long-standing gap. The issues that remain are around scale. Editors managing content across multiple locales find the interface gets cluttered. The Structured Text editor has been noted as slow on very long documents with heavy hyperlink use (a bug patched in April 2026, so recent versions should be fine). For teams coming from WordPress or HubSpot, the shift away from WYSIWYG-first thinking is still an adjustment, but Visual Editing reduces the friction considerably.
What should you watch out for when migrating from DatoCMS?
The migration path out of DatoCMS is cleaner than most. Both GraphQL and REST APIs give you full content access, so extraction is straightforward. Schema mapping is the main planning task, since DatoCMS's modular content blocks need to be translated to whatever structure your target CMS uses. The thing to watch is image URLs. DatoCMS serves images through its own CDN with transformation parameters baked into the URL, so you'll need to re-upload assets and update references across your content. Budget 3-6 weeks for a typical DatoCMS migration. If you're using their Structured Text field type, allocate extra time to convert that into your new CMS's rich text format.


Get in touch

Fill out the form below and we'll get back to you