All posts
Web design & development

Payload vs Strapi: Open-Source CMS Comparison for Next.js Sites

Payload vs Strapi for a Next.js marketing site: architecture, hosting, editing and cost, from a team that runs Payload in production, plus who should pick Strapi.

By Mehdi Hassan9 min read

The short answer

Payload vs Strapi comes down to where the CMS runs. Payload 3 installs inside your Next.js app, so the site, admin and API share one codebase and one deploy. Strapi runs as its own Node server that any front end calls over REST or GraphQL. For a single Next.js marketing site we pick Payload; for several front ends, Strapi fits better.

Key takeaways

  • Payload 3 lives inside your Next.js app; Strapi is a separate server your site calls over an API.
  • Both are open source and can be self-hosted, so you keep your data in your own database.
  • Strapi supports Postgres, MySQL, MariaDB and SQLite; Payload supports Postgres, MongoDB and SQLite.
  • Strapi's admin lets you build content types visually; Payload's content model lives in TypeScript code.
  • Pick Strapi when several apps share one content API, or your front end isn't Next.js.

Part of CMS Setup for Marketing Websites: How to Give Your Team Editing Freedom

Payload and Strapi are the two open-source headless CMSs most teams shortlist when they want to self-host and keep their content in their own database. We run Payload in production on our own site, so we'll say plainly where that experience shapes our view, and where Strapi is the better tool. For the wider picture of editing models, blocks and roles, start with our hub on CMS setup for marketing websites.

Payload vs Strapi: what's the core difference?

The core difference in Payload vs Strapi is architecture. Payload 3 is a Next.js-native CMS: you install it into your Next.js app, and the admin panel and APIs run as routes in the same deployment. Strapi is a standalone Node.js application with its own admin and API, deployed separately from whatever front end consumes it.

Everything else follows from that. With Payload, your pages can read content through the Local API, a direct call in the server process with no HTTP round trip and shared TypeScript types. With Strapi, your Next.js site fetches content over REST or GraphQL like any other headless CMS, which also means a mobile app or a second site can use the same API just as easily.

Payload

Strapi

Where it runs

Inside your Next.js app

Its own Node.js server

How the site reads content

Local API, REST or GraphQL

REST, or GraphQL via plugin

Content model

TypeScript config in code

Built in the admin or as JSON schema files

Databases

Postgres, MongoDB, SQLite

Postgres, MySQL, MariaDB, SQLite

Managed hosting

Self-hosted with your app; check Payload Cloud's current status

Strapi Cloud or self-hosted

Front ends it suits

Mainly Next.js

Any framework or app

License

MIT open source

MIT Community Edition, paid tiers for extras

How does each fit into a Next.js site?

Payload fits a Next.js site with less glue code, because it is part of the same app. Strapi fits with the standard headless pattern: a separate service, an API token, fetch calls and cache revalidation when content changes.

In a Payload project, a server component can query posts directly, and draft preview, auth and access control all share the app's session. There's one repository, one set of environment variables and one deploy. The trade-off is coupling: upgrading Next.js and Payload often happens together, and a CMS bug can affect the site build.

In a Strapi project, the CMS and the site evolve independently. You can redeploy the site without touching the CMS, scale them separately, and swap the front end later. The cost is a second thing to host and secure, plus the plumbing: webhooks to revalidate pages when editors publish, a preview route, and keeping API types in sync. Our explainer on what a headless CMS is covers this model in plain terms.

What is running Payload in production like for us?

Our own site, designify.design, runs Payload CMS 3 inside a Next.js 16 app on Cloudflare Workers, with Cloudflare D1 as the database and R2 for media. The blog you're reading is stored in it. That's first-hand experience of Payload on one specific stack, not a benchmark, and we haven't run Strapi in production at the same depth.

What we value most is that the content model, the admin and the pages live in one TypeScript codebase. A new field shows up in the admin, in the types and in the page code in the same pull request. What took real work was the hosting: Workers isn't Payload's default target, so builds, image handling and media storage needed extra setup. We wrote those lessons up in setting up Payload CMS for a marketing site.

Pros

  • Site, admin and API ship as one app
  • Content model is typed code, reviewed in pull requests
  • Local API reads content without a network hop
  • Access control, drafts and versions built into the core

Cons

  • You own hosting, backups and database migrations
  • Next.js and Payload upgrades are coupled
  • Non-default hosts need extra configuration
  • Less useful if your front end isn't Next.js

When is Strapi the better choice?

Strapi is the better choice when several front ends share one content API, when your site isn't built on Next.js, or when you want a managed host for the CMS without running it yourself. It's a mature open-source project with a large community, and it does the standalone headless job well.

  • Many consumers. A website, a mobile app and an internal tool all reading the same content is exactly what a standalone API is for.
  • Non-Next.js front ends. Payload's biggest advantage, living inside Next.js, disappears with Astro, Nuxt, SvelteKit or a native app.
  • Visual content-type building. Strapi's Content-Type Builder lets a technical non-developer define fields in the admin during development, and it writes the schema files for you.
  • MySQL or MariaDB shops. Strapi supports both; Payload's official adapters are Postgres, MongoDB and SQLite.
  • Managed hosting. Strapi Cloud runs the CMS for you. Check Strapi's current plan page, since its tiers change.

One caution: Strapi's database docs say it doesn't support MongoDB or any NoSQL database, so a Mongo-based team would lean to Payload. And if you're coming from Strapi v4, the v5 upgrade changed the API's identifiers and response shape, which is worth budgeting for. Our headless CMS migration guide covers moves between the two.

How does the editing experience compare?

Both give editors a clean admin with drafts, roles, localization and media libraries, and both generate the editing forms from your content model. The real difference for editors comes from how well the developer models pages, blocks and previews, not from the brand.

Payload's admin is a React app generated from your collections and globals, with versions, live preview and field-level access built into the open-source core. Strapi's admin is also React, with the Content-Type Builder, Draft and Publish, and internationalization in its free edition. Strapi places some editorial features, such as content history, releases, review workflows and SSO, in its paid Growth and Enterprise tiers, so check its pricing page against your editorial needs before you commit.

Preview deserves its own check. In Payload, live preview runs inside the same app, so it's mostly configuration. With Strapi, the preview has to reach your separately hosted front end. Our guide to live preview and visual editing explains both setups.

What does each cost to run?

Neither charges a license fee for its open-source core, so the real costs are hosting, database, file storage and developer time. Payload usually means one deployment to pay for; Strapi usually means two, the CMS server and the site, unless you use Strapi Cloud.

With Payload, the CMS shares the site's hosting, so for a marketing site the extra cost is mostly the database and media storage. With self-hosted Strapi, you run a Node server that stays up for the admin and API, plus its database and storage provider. Strapi Cloud swaps that ops work for a monthly plan, and Strapi's paid CMS tiers add features on top. Prices change, so check both vendors' current pages rather than relying on figures from any blog post, including ours.

Hypothetical example: a 12-page SaaS site with a blog

For example, suppose a SaaS startup wants a 12-page marketing site, a blog and case studies, with two marketers editing and the product app on a separate stack.

On Payload, we'd build pages from blocks, the blog and case studies as collections, and pricing and navigation as globals, all inside the Next.js site, with one host and one database.

Now suppose the same company also wants its mobile app to show the case studies and changelog. That tips the balance toward Strapi, or toward exposing Payload's REST API to the app, because content now has more than one consumer.

Which open-source headless CMS should you pick for a Next.js marketing site?

For a single Next.js marketing site with a developer or studio who owns it, pick Payload. For a content API that serves several apps or a non-Next.js front end, pick Strapi. Both are sound open-source projects with active development, so you're choosing a shape, not avoiding a bad tool.

If nobody on your team will own a codebase, pick neither: a hosted CMS or a visual builder is the more honest answer. And if you're weighing a hosted option too, we compare it with Payload in Sanity to Payload migration. When we build a site on Next.js, the CMS choice follows who edits and who maintains it.

Frequently asked questions

Is Strapi or Payload easier for non-developers?
For day-to-day editing, both are comfortable once a developer has set them up well. For changing the content model, Strapi is friendlier: its Content-Type Builder lets someone add fields in the admin during development. In Payload, every schema change is a code change. That suits teams with a developer and frustrates teams without one.
Can Strapi and Next.js run on the same server?
They can share a machine, but they're still two applications: Strapi runs its own Node process and admin, and Next.js runs the site. Most teams deploy them separately so each can scale and update on its own schedule. Payload is different because it runs inside the Next.js app as one process and one deployment.
Does Payload work without Next.js?
Payload 3 is built to install into a Next.js app, and that's where it's strongest. You can still expose its REST or GraphQL API to other front ends, such as a mobile app, so content isn't locked to Next.js. But if your main site uses another framework, you lose the Local API and the single-deploy benefits that make Payload attractive.
Which is better for SEO, Payload or Strapi?
Neither CMS affects rankings on its own. SEO comes from how the front end renders pages, handles metadata, sitemaps and redirects, and how fast it serves HTML. Both let you model SEO fields such as titles, descriptions and canonical URLs. A well-built Next.js site performs the same in search whichever CMS stores the content.
Who maintains Payload and Strapi?
Strapi is developed by Strapi, the company behind Strapi Cloud and its paid CMS tiers, with an open-source Community Edition. Payload was acquired by Figma in 2025 and continues as an open-source project. Both have active releases, so check each project's changelog and upgrade guides before you commit, and plan for regular updates either way.

· CEO & Design Director

Copywriter, designer and developer, and founder of Designify Studio. Over five years, 60+ projects across 14+ industries, for startups that have raised $300M+.

Want this done for you? Website, $8,000.

A multi-page marketing site, written and designed by us, developed in Next.js and animated. $8,000, one-time, up to 6 pages. Book a free 30-minute call to see if it fits.

Schedule Call