I have set up a lot of headless CMSs on Next.js projects, and the thing nobody tells you is that the "best" one barely matters. What matters is fit. A CMS can be excellent in general and completely wrong for your project, and you only find out three weeks in when you are fighting the content model instead of shipping.
So instead of another "top 10" list, here is the decision framework I actually use, plus where the popular options land.
Start with who edits the content
This is the first fork, and it decides more than any feature list.
- If developers own the content, you can pick a code-first tool. Payload runs inside your Next.js app, models content in TypeScript, and never makes you leave your stack. Sanity gives you the best structured-content modeling around if you are willing to configure the studio.
- If non-technical people edit day to day, optimize for their experience, not yours. Storyblok has genuinely good visual editing. If the client is small and you want them to never break the site, a visual builder like Webflow is often the honest answer even though it is not truly headless.
Picking a developer-favorite tool and then handing it to a marketer who just wanted to change a headline is the most common mistake I see.
Then decide: SaaS or self-hosted
This is really a question about who carries the operational load and who owns the data.
- Self-hosted (Strapi, Payload, headless WordPress) means no per-seat pricing and full control, but security, updates, and uptime are your job.
- SaaS (Contentful, Sanity, Storyblok, Prismic) means someone else runs it, but you rent it, and the pricing can jump hard as you add seats or environments.
If data ownership or vendor lock-in is a real concern for you, self-hosting is worth the ops cost. If you would rather never think about a database again, pay for SaaS and move on.
Watch where the price jumps, not the entry price
Almost every one of these has a friendly free tier and a cliff behind it. Contentful is the classic example: generous to start, then a steep step up to the first serious paid plan. The entry price is marketing. The price at your scale, with your seats and environments, is the real number. Model that before you commit.
The Next.js specific stuff
Since this is a Next.js post, the things I actually check:
- First-party SDK and TypeScript types, so content is typed end to end.
- Clean support for ISR and draft mode, so editors get preview without a rebuild.
- How fast you can get from zero to a rendered page. Payload wins here for me because it lives in the same app.
Where the popular options land
Rough shape, for a Next.js project specifically:
- Payload: code-first, TypeScript-native, runs in your app. My default when developers own the content.
- Sanity: best structured content and real-time APIs, more setup.
- Contentful: safe and mature, watch the pricing cliff.
- Storyblok: pick it when marketers need visual editing.
- Strapi: the open-source, self-hosted default.
I got tired of every "X vs Y" article being written by one of the vendors, so I ended up scoring these (and a bunch more) on the same 11 criteria, independently, with no sponsorship. If it is useful, the full Next.js breakdown is here: https://honeststack.co/cms/best-headless-cms-for-nextjs and the scoring method is here: https://honeststack.co/cms/methodology
The short version
Do not start from "what is the best CMS." Start from who edits, who hosts, and where the price jumps. Answer those three and the field narrows to two or three tools fast, and the rest is just taste.
What have you shipped headless CMS on, and would you pick it again? Curious what other people have run into.
Top comments (0)