KeystoneJS logo
ButterCMS logo

From KeystoneJS to ButterCMS

We are the KeystoneJS to ButterCMS 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 ButterCMS

Key advantages

ButterCMS is one of those headless CMS platforms that genuinely nails the onboarding experience. We've seen content teams go from zero to confidently building pages and blog posts within a few hours, which is rare in the headless world. The dashboard is clean, the API explorer is thoughtfully designed, and the starter templates for popular frameworks mean developers aren't starting from scratch every time.

From an agency perspective, the standout quality is how little hand-holding editors need after launch. The interface is intuitive enough that marketers can create pages, manage blog content, and handle SEO metadata without constantly pinging the dev team. The built-in blog engine is a genuine differentiator. Most headless CMS platforms treat blogging as an afterthought, but ButterCMS was originally built around it, and it shows in the quality of the authoring experience.

The API performance is consistently fast, and the SDK support across languages like JavaScript, Python, Ruby, and PHP is solid. Their customer support team is also notably responsive and genuinely receptive to feature requests, which is something we don't often see from CMS vendors. For small-to-mid-sized projects where you need a reliable content API without overcomplicating things, ButterCMS delivers.

We'd particularly recommend it for teams that need a polished blog alongside structured page content, and who value simplicity over infinite extensibility. It's a CMS that knows what it is and does that thing well.

Start my migration


Easy onboarding in ButterCMS

Exceptionally easy onboarding

Content teams can be productive within hours, not days. The dashboard is clean and the learning curve is one of the gentlest we've seen in headless CMS land.

Built-in blog engine in ButterCMS

Built-in blog engine

Unlike most headless platforms where you have to model blog content from scratch, ButterCMS ships with a purpose-built blog engine that includes categories, tags, authors, and SEO fields out of the box.

Fast content API in ButterCMS

Fast and reliable content API

The read API is consistently quick with global CDN delivery. For content-heavy sites, the performance is solid and predictable.

Unlimited seats in ButterCMS

No seat limits on any plan

Every plan includes unlimited users, which is genuinely unusual in this space. You won't get punished for growing your content team.

Responsive support in ButterCMS

Responsive customer support

Their support team is quick to respond and genuinely open to feature requests. We've seen roadmap items added based on customer feedback, which builds real trust.

SDK and framework coverage in ButterCMS

Strong SDK and framework coverage

Official SDKs for JavaScript, Python, Ruby, PHP, and more, plus starter projects for React, Next.js, Vue, Angular, and other frameworks that actually work out of the box.





Common questions

KeystoneJS to ButterCMS migration FAQs

Answers to the most common questions about KeystoneJS to ButterCMS 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 do we migrate content out of ButterCMS?
ButterCMS has a clean REST API, so pulling your content is straightforward. Blog posts, pages, and collections all export as JSON through their API endpoints. The main complexity is restructuring component-based page content for your target CMS, since ButterCMS components only work on pages and don't map 1:1 to other platforms. Media assets need to be downloaded from their CDN and re-uploaded. For a typical blog-heavy site with 200 to 500 posts, we complete the migration in 2 to 4 weeks.
Why do teams leave ButterCMS?
Content modeling flexibility is the top reason. Once projects grow past simple blogs and marketing pages, the 1,000 content field limit becomes a real ceiling. Components being restricted to pages (not collections or blog posts) forces awkward workarounds. Teams also feel the ecosystem gap, with fewer plugins, integrations, and community resources compared to larger platforms. The 2024 DNS incident that wasn't reflected on their status page raised trust concerns for teams running production sites.
What does ButterCMS cost compared to alternatives?
ButterCMS paid plans start at $71/month after a limited free tier. Every plan includes unlimited users, which is genuinely competitive. But the pricing jumps between tiers aren't proportional to what you get, and the content field limits apply even on expensive plans. By comparison, Sanity's free tier includes 3 users with 500K API requests, and you only pay more as your usage scales. For teams outgrowing ButterCMS, the cost of migration typically pays for itself within 6 months through better tooling and fewer workarounds.


Get in touch

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