Next.js CMS: How to Choose a Headless CMS for Next.js (Sanity, Payload, and More)
Choosing a Next.js CMS? Compare Sanity, Payload, and major headless CMS options based on previews, workflows, hosting, and scaling.
You find out whether a Next.js CMS was the right choice once your team has to live with it.
After launch, the cracks show up: preview links aren’t safe, approvals don’t exist, publishing requires a rebuild, and revalidation is flaky.
Here’s how to pick a Next.js headless CMS that won’t turn publishing into a fire drill.
What is a Next.js headless CMS?
A Next.js headless CMS manages content and delivers it to your Next.js site via an API.
- The CMS handles drafts, approvals, roles, and publishing.
- Next.js handles routing, rendering, SEO, performance, and layout.
Headless means your Next.js app controls the front-end.
With that split, preview links, publishing, and cache revalidation can get weird, and someone has to own the breakage.
The lifecycle your Next.js CMS has to survive
Content is a loop: draft, review, preview, publish, update, repeat.
Everyone pulls a Next.js CMS in different directions:
- Marketing wants speed.
- Leadership wants control.
- Developers want stability.
Once you’re live, your whole week goes to the painful parts a CMS demo usually skips: secure preview links, approvals, fast rollbacks, and changes that hit production without forcing a rebuild.
So pick a Next.js headless CMS that keeps the loop boring: draft, preview, publish, update. If it does, it’ll still feel like the right call six months after launch.
The problems that make teams hate their Next.js CMS
The pain usually shows up once real people are publishing under deadlines.
1. Preview is a mess
Drafts need to look like the real site, and preview links need to be safe to share. A lot of setups end up hacky, flaky, or accidentally public.
2. Publish doesn’t actually go live
Someone hits publish and the site is still stale, or it only updates after a rebuild, or it takes 10 minutes and nobody trusts it.
3. The content model gets stuck
What starts as “a page with a title and body” turns into sections, variants, CTAs, SEO fields, and weird one-offs.
If updating the content model in your Next.js CMS is painful, you stop touching it. Then the site slowly rots because everyone works around the CMS instead of improving it.
4. Access control is tough
Real teams need rules in their Next.js CMS.
Marketing should edit posts without touching navigation, someone should approve changes, and contractors should get temporary, limited access.
You want permissions tight enough that mistakes don’t ship and loose enough that editors aren’t filing a dev ticket for every change.
The 4 types of Next.js headless CMS
Next.js CMS tools make different tradeoffs, and they hit where teams feel it: preview, publishing, permissions, and content model changes.
Most Next.js headless CMS options fall into four buckets.
1. Hosted platforms (SaaS-first)
You log in and start publishing, with a hosted admin UI, APIs, and solid editorial features out of the box.
Good fit when: you want low maintenance, marketing moves fast, and you don’t want to run CMS infrastructure. Where it bites: pricing and platform limits, plus you’re stuck with their approach to Next.js CMS preview, roles, and workflows.
2. Self-hosted / open-source headless CMS
You run it yourself, which gives you more control and flexibility along with more responsibility.
Good fit when: ownership matters, you can handle ops, and you want to avoid lock-in. Where it bites: upgrades, security, and the “who owns the outage” problem.
3. Database-first CMS
You point it at a database, get an admin UI, and expose APIs, which is great when “content” is really structured data.
Good fit when: you already have structured data, or you need a fast back office for a Next.js app. Where it bites: less editor-friendly, and content modeling starts to feel like schema design.
4. App-native CMS (CMS inside your app)
The CMS lives in your product and shares its codebase, auth, and deployments.
Good fit when: permissions are weird, content is tied to users/accounts, and you need total control. Where it bites: you own everything, including building an editing experience people don’t hate.
So start by picking the type that matches how your team actually ships content in Next.js.
The major Next.js CMS options and where they fit
Once you know which type of CMS you want, the list of “real” options gets a lot smaller. Here are the names you’ll keep running into, grouped by the bucket they usually land in.
| Bucket | Best when | Pros | Tradeoffs | Picks |
|---|---|---|---|---|
| Hosted (SaaS-first) | You want the best editor experience and don’t want to run CMS infra | Fast setup, strong workflows, marketing-friendly | Pricing climbs, vendor constraints | Storyblok, Sanity |
| Self-hosted / open-source | You want ownership and can operate it | Full control, flexible hosting, no “SaaS lock-in” | You own upgrades, security, backups | Strapi |
| Database-first | You already have the data and just need an admin UI + API | Quick admin UI on real tables, great for internal data | Content modeling becomes “your DB,” less editor-friendly | Directus |
| App-native (inside your app) | Content is tied to product logic, auth, roles, workflows | Tight integration, custom rules, same codebase | You own the editing experience | Payload CMS |
How to choose a Next.js CMS for your content lifecycle
| Scenario | What you want | Why | Recommendation |
|---|---|---|---|
| Marketing site with frequent changes | Hosted Next.js headless CMS | Best editor experience, lowest ops burden | Storyblok |
| Small team that wants control and can run it | Self-hosted / open-source headless CMS | You own it, but you also own updates, security, backups | Strapi |
| You already have a database and just need a UI + API | Database-first CMS | Fast admin UI + API on top of existing tables | Directus |
| Content tied to your app’s logic, auth, and roles | App-native Next.js CMS | One auth/roles system, workflows live with the app | Payload CMS |
Next.js CMS integration basics
This part is easy to put off during setup, and it decides whether your Next.js headless CMS feels smooth or annoying.
Preview and drafts
Previews are easiest when you treat them as a first-class feature.
- Use Draft Mode in the App Router so Next.js can render draft content on request, even on pages that are normally cached or static.
- Most CMS setups do this by having the CMS hit a Route Handler that enables draft mode, then redirects to the page being previewed.
- Draft Mode is designed so the bypass cookie can’t be guessed and changes per build, but you still need to lock down the endpoint.
Publishing and revalidation
When someone hits publish in the CMS, the live site should update on its own, without waiting for a rebuild.
- Have your CMS send a webhook to Next.js when content is published/unpublished.
- In that webhook handler, call:
revalidatePath()when you know the exact page URL that changed.revalidateTag()when multiple pages depend on the same data, and you want to refresh them together.
- Next.js supports on-demand revalidation with both path-based and tag-based approaches.
Caching expectations
Caching is often the culprit when someone asks “why didn’t it update?”
- Next.js has multiple caching layers, and you should decide up front what’s cached and how it gets invalidated.
- Server
fetch()in Next.js has framework-level caching and revalidation behavior, so be deliberate with tags and revalidate settings.
What “good” looks like in a Next.js CMS setup
If you want a Next.js CMS that stays boring after launch, most setups have four things.
1. A real preview flow
- The CMS generates a preview link.
- That link hits a Next.js route, enables Draft Mode, then redirects to the page.
- Draft content is only visible to people who should see it.
2. Publishing that updates the live site
- Publishing fires a webhook.
- The webhook tells Next.js what changed.
- You revalidate only the affected path or tag.
3. A content model that can evolve
- Start simple.
- Add sections/blocks only when needed.
- Deprecate fields instead of breaking them overnight.
4. Permissions match real risk
- Editors can safely update most content.
- High-risk areas (homepage, nav, legal) require approvals or tighter roles.
- Temporary access is a normal, planned part of the setup.
Wrapping it up
Before you commit to a Next.js CMS, run one real change through the whole loop: write a draft, share the preview link, publish it, and see whether the live site updates on its own.