[Head-to-head comparison]

Payload vs Strapi

Payload vs Strapi for teams that may own the CMS, compared across editing, modeling, localization, governance, hosting, APIs, cost and migration.

Kalle Bertell

By Kalle Bertell

Direct answer

Choose Payload when the CMS, admin and database should be one TypeScript app the team deploys, with content stored in a database it already operates. Choose Strapi when editors and developers should share a Node CMS that can be self-hosted or placed on Strapi Cloud, with content types built in the admin. Payload’s on-page visual editor is enterprise. Strapi’s live preview starts on Growth. The useful test is whether the content model should live in application code or in an admin builder.

Choose Payload when

  • Config generates the admin

    Collections, fields and access rules in the Payload config generate the admin and the APIs together.

  • Content in your database

    You pick the database and file storage. Leaving is an export of a database you already run.

  • Iframe preview in the MIT app

    Live preview posts changes into your frontend frame. The separate on-page visual editor remains an enterprise feature.

Choose Strapi when

  • Model in the admin

    The Content-type Builder defines collection types, components and dynamic zones without a config-only workflow.

  • A managed host remains optional

    The same project can stay on your servers or move to Strapi Cloud. Cloud does not include Growth or Enterprise CMS features.

  • Drafts and roles on Community

    Community includes draft and publish, RBAC and locales. Review workflows and audit logs stay on Enterprise.

Consider neither when

  • No one to run a Node CMS

    Both products expect a Node application. A vendor-managed CMS is a better fit when nobody will patch the runtime and database.

  • On-page visual editing in the free tier

    Payload’s visual editor is enterprise. Strapi live updates in the admin are Growth or Enterprise. A hosted page builder may fit a marketing team better.

  • Enterprise audit on an unfunded license

    Payload SSO and approval workflows are enterprise. Strapi review workflows, audit logs and the SOC 2 report are Enterprise pricing items.

Criterion-by-criterion comparison

How we evaluate platforms

Marketer autonomy

Both admins follow a model developers control. Strapi can change that model in the admin. Payload changes it in config.

Payload

Admin follows the config developers ship

Editors create and publish documents in the generated admin, including blocks once those blocks exist. Changing fields, validation or who can publish means a config change.

View sources (2)
  • Payload blocks field: Stores mixed blocks, such as a page builder, each with its own schema in config.
  • Payload access control: Documents collection, global and field access functions, including locale-specific checks.

Strapi

Editors fill types; layout follows the model

Editors manage entries, components and dynamic zones in the Content Manager. Adding a section type or a permission still happens in the content-type and role settings developers control.

View sources (2)

Choosing between them

Payload:

Editors publish documents and reorder blocks that already exist. New fields ship as a config change.

Strapi:

Editors fill types and dynamic zones. Adding a section type or a permission happens in builder and role settings.

Have a marketer request a new page section and see whether that change is an admin click or a deploy.

Content modeling

Payload defines collections and blocks in code. Strapi defines collection types, components and dynamic zones in the project and the builder.

Payload

Collections, fields and mixed blocks in code

The config defines collections, globals, relationships and blocks that editors can reorder. That same config generates the admin and the APIs.

View sources (2)
  • Payload blocks field: Stores mixed blocks, such as a page builder, each with its own schema in config.
  • Payload REST API: Generates CRUD routes from collections, including depth, locale and where queries.

Strapi

Collection types, components and dynamic zones

The Content-type Builder defines collection types, single types, components and repeatable dynamic zones. Saving a type requires at least one configured field.

View sources (1)

Choosing between them

Payload:

Use it when the schema, admin and API should be generated from one TypeScript config.

Strapi:

Use it when content types should be editable in the Content-type Builder and still stored in the project.

Implement one relationship and one repeatable page section in each, then keep the modeling workflow the team will still accept in six months.

Workflow and governance

Payload drafts and access are code, and approvals are enterprise. Strapi drafts and roles are on Community, and reviews are Enterprise.

Payload

Drafts and access are code; approvals are enterprise

You can enable versions, drafts, autosave and scheduled publish, then restrict drafts with access functions. Approval workflows are described on the enterprise page.

Plan considerations: Localized draft status is documented as beta. Test it before relying on per-locale publishing.

View sources (3)
  • Payload versions: Stores version history, diffs, restore, draft visibility and scheduled publishing when enabled.
  • Payload drafts: Drafts require versions and can autosave or schedule publish and unpublish events.
  • Payload enterprise: Lists visual editing, SSO, publishing workflows and vendor or self-hosted enterprise deployment.

Strapi

Drafts and roles free; reviews are Enterprise

Community includes draft and publish, RBAC and API tokens. Releases and content history start on Growth. Review workflows and audit logs are Enterprise.

Plan considerations: Growth history is 14 days. Enterprise history is documented as 30 days, extendable to 90.

View sources (1)

Choosing between them

Payload:

Versions, drafts, autosave and schedules can be turned on. Localized draft status is beta.

Strapi:

Releases and content history start on Growth. Review workflows and audit logs are Enterprise.

Write the review steps you need and mark which ones require a Payload enterprise agreement or a Strapi Enterprise license.

Localization and multisite

Both support many locales on the base product. Payload’s per-locale publish status is beta. Strapi lists unlimited locales.

Payload

Field locales in config, with fallback

Locales are listed in the Payload config and enabled per field. Fallback is on by default, and the docs state no limit on how many locales you add.

Plan considerations: Per-locale publish status is a beta option and is off unless you enable it.

View sources (1)
  • Payload localization: Configures locales in code, with fallback on by default and no documented locale cap.

Strapi

Locales on every plan, including Community

Turn internationalization on for a content type, then for individual fields. The pricing page lists unlimited locales on Community, Growth and Enterprise.

View sources (2)

Choosing between them

Payload:

Locales are enabled per field, with fallback on by default. The docs state no locale limit.

Strapi:

Internationalization is turned on per content type and field. The pricing page lists unlimited locales on Community.

Test fallback and a separate publish for one locale. Do not rely on Payload’s beta per-locale status until that test passes.

Developer experience

Payload is a Next.js app you deploy. Strapi is a CMS project that can also sit on Strapi Cloud.

Payload

One TypeScript app for admin, API and data

Developers own the Next.js app, config, migrations and deployment. Editors inherit the admin that config generates, including custom components the team chooses to build.

View sources (2)
  • Payload production deployment: Says Payload runs anywhere Next.js runs, and that you still provide a database and file storage.
  • Payload REST API: Generates CRUD routes from collections, including depth, locale and where queries.

Strapi

Node project, admin builder and a CLI

Developers own the Strapi project and can model in the admin or extend it in code. The same project runs self-hosted or on Strapi Cloud.

View sources (2)

Choosing between them

Payload:

Developers own config, migrations, custom admin components and the host.

Strapi:

Developers own the project and can extend it in code or through the admin builder.

Match the choice to the repo you already run: a Next.js app points to Payload, and a standalone CMS project points to Strapi.

APIs and extensibility

Both generate REST and GraphQL from the content model. Payload also exposes a local API inside the app.

Payload

REST, GraphQL and a local API from one config

Collections generate REST routes and a GraphQL endpoint. Queries can filter, select fields and populate relationships to the depth you request.

View sources (2)
  • Payload REST API: Generates CRUD routes from collections, including depth, locale and where queries.
  • Payload GraphQL API: Exposes a GraphQL API from the same config, by default at /api/graphql.

Strapi

REST and GraphQL on every CMS plan

REST and the GraphQL plugin read and write content types, including locale and draft status. The features table includes both APIs on Community.

View sources (3)
  • Strapi REST API: Documents REST reads and writes, including locale and draft status parameters.
  • Strapi GraphQL API: The GraphQL plugin queries and mutates content types with filters, sort and pagination.
  • Strapi features and plans: Separates Community, Growth and Enterprise features from Strapi Cloud hosting plans.

Choosing between them

Payload:

Queries can filter, select fields and populate relationships to the depth you request.

Strapi:

REST and GraphQL read and write types, including locale and draft status, on every CMS plan.

Run the frontend query you actually need, including a draft and a locale, against each API before you standardize.

Hosting and operations

Payload’s default is to host the app yourself. Strapi offers that path and Strapi Cloud.

Payload

You run the app, database and files

Payload deploys anywhere Next.js runs, including Vercel or your own servers. The database, permanent file storage and email provider remain your responsibility.

Plan considerations: Enterprise agreements can include Payload hosting. The documented default is to host the app yourself.

View sources (2)
  • Payload production deployment: Says Payload runs anywhere Next.js runs, and that you still provide a database and file storage.
  • Payload get started: States the MIT license, self-hosting on Node.js, and enterprise SSO, hosting and visual editing.

Strapi

Self-host the project, or use Strapi Cloud

You can operate the Node.js app and database, or deploy that project to Strapi Cloud. Cloud plans meter hosting resources and do not include Growth or Enterprise CMS features.

View sources (2)

Choosing between them

Payload:

You bring the database, permanent file storage and email provider. Enterprise can include Payload hosting.

Strapi:

Self-hosting leaves residency and backups to you. Cloud meters hosting resources and does not include paid CMS features.

Decide whether a vendor-operated Node host is required. Choose Strapi Cloud only after you price the CMS license separately.

Security and governance

Neither free tier includes a vendor SOC report for every hosting mode. Access control exists in both apps.

Payload

App-level controls; compliance follows your host

Payload documents HttpOnly cookie auth, CSRF checks and field-level access in the app you deploy. SSO is enterprise, and a SOC report depends on the host you choose.

View sources (2)
  • Payload security: Describes HttpOnly cookie auth, field access control, CSRF checks and enterprise SSO.
  • Payload SSO: Describes SAML and OAuth 2.0 sign-in as an enterprise feature.

Strapi

RBAC everywhere; SSO and audit logs are paid

Community includes role-based access. SSO is a Growth add-on and included on Enterprise. Audit logs and the SOC 2 report are Enterprise items on the pricing page.

Plan considerations: Self-hosted data residency is yours. Strapi Cloud regions and backups follow the Cloud plan.

View sources (2)
  • Strapi features and plans: Separates Community, Growth and Enterprise features from Strapi Cloud hosting plans.
  • Strapi CMS pricing: Lists the free MIT Community plan, Growth at $45 per month, and Enterprise review workflows.

Choosing between them

Payload:

Cookie auth, CSRF and field access ship in the app you deploy. SSO is enterprise, and SOC depends on your host.

Strapi:

RBAC is on Community. SSO is a Growth add-on or included on Enterprise. The SOC 2 report is an Enterprise item.

Send one questionnaire covering SSO, audit logs, backups and residency, then match the answers to the host and the paid tier.

Pricing and cost drivers

Payload is an MIT app plus your infrastructure. Strapi Community is free, then CMS and Cloud bills split.

Payload

MIT app; you pay hosting and enterprise extras

The CMS is MIT-licensed and free to run. Budget the Node.js host, database and storage, and ask sales if you need SSO, visual editing or Payload-operated hosting.

View sources (2)
  • Payload get started: States the MIT license, self-hosting on Node.js, and enterprise SSO, hosting and visual editing.
  • Payload enterprise: Lists visual editing, SSO, publishing workflows and vendor or self-hosted enterprise deployment.

Strapi

Free Community, then CMS and Cloud bills

Community is free under MIT, with unlimited entries on the CMS pricing page. Growth starts at $45 per month before user charges, and Strapi Cloud is a separate hosting invoice.

View sources (2)
  • Strapi CMS pricing: Lists the free MIT Community plan, Growth at $45 per month, and Enterprise review workflows.
  • Strapi features and plans: Separates Community, Growth and Enterprise features from Strapi Cloud hosting plans.

Choosing between them

Payload:

Budget the Node host, database and storage, and sales if you need SSO, visual editing or Payload hosting.

Strapi:

Growth starts at $45 per month before users. Strapi Cloud is a separate invoice from the CMS license.

Compare a year of hosting plus the enterprise features you will actually turn on, not the free license alone.

Migration and exit

Payload content lives in your database. Strapi moves content between instances with matching schemas.

Payload

Content stays in the database you operate

Leaving means exporting the database you already run and replacing the admin, hooks and API usage in the application. REST can also read documents out of a running app.

View sources (2)
  • Payload production deployment: Says Payload runs anywhere Next.js runs, and that you still provide a database and file storage.
  • Payload REST API: Generates CRUD routes from collections, including depth, locale and where queries.

Strapi

Transfer content between matching Strapi instances

The CLI can export, import or stream content, files and schemas. A transfer requires matching schemas, and it does not move admin users or API tokens.

View sources (2)
  • Strapi data transfer: Streams content, files and schemas between instances. Admin users and API tokens are excluded.
  • Strapi features and plans: Separates Community, Growth and Enterprise features from Strapi Cloud hosting plans.

Choosing between them

Payload:

Exit means exporting that database and replacing hooks and API usage in the app.

Strapi:

Transfer does not move admin users or API tokens, and schemas must already match.

Export one collection, its files and a locale from each trial, and plan a separate path for users and tokens.

Marketing website fit

Both can feed campaign pages after the frontend exists. Neither includes on-page visual editing in the free product.

Payload

Fits when the team will own the stack

Blocks and live preview can support campaign pages after the frontend URL and block components exist. The team keeps owning that app after launch.

View sources (2)
  • Payload blocks field: Stores mixed blocks, such as a page builder, each with its own schema in config.
  • Payload live preview: Renders the frontend in an iframe and sends document changes with window.postMessage.

Strapi

Fits structured pages when preview is funded

Dynamic zones let editors place components that the frontend already renders. Seeing those changes live in the admin depends on a Growth or Enterprise Live Preview license.

View sources (2)
  • Strapi Content-type Builder: Creates collection and single types, with draft-and-publish and internationalization settings.
  • Strapi preview: Preview is configured for every plan. Live Preview requires Growth or Enterprise.

Choosing between them

Payload:

Blocks and iframe preview work after the frontend URL and block components exist.

Strapi:

Dynamic zones work when the frontend renders those components. Live admin preview needs Growth or Enterprise.

If marketers must rearrange a page visually every week, budget the paid editing feature or choose a hosted page builder.

Visual editing and preview

Payload includes iframe live preview in the MIT app. Strapi includes a preview URL on every plan, and live updates are paid.

Payload

Iframe preview; visual editing is enterprise

Live preview loads your frontend in the admin and posts each change to that frame. The separate visual editor is named as an enterprise feature, not as part of the MIT app.

Plan considerations: The open-source website template lists Live Preview. Enterprise materials add on-page visual editing.

View sources (3)
  • Payload live preview: Renders the frontend in an iframe and sends document changes with window.postMessage.
  • Payload get started: States the MIT license, self-hosting on Node.js, and enterprise SSO, hosting and visual editing.
  • Payload enterprise: Lists visual editing, SSO, publishing workflows and vendor or self-hosted enterprise deployment.

Strapi

Preview URL on every plan; live updates are paid

Preview opens the frontend from the Content Manager after you set a client URL. Live Preview, which refreshes as the entry changes, is a Growth and Enterprise feature.

View sources (2)
  • Strapi preview: Preview is configured for every plan. Live Preview requires Growth or Enterprise.
  • Strapi features and plans: Separates Community, Growth and Enterprise features from Strapi Cloud hosting plans.

Choosing between them

Payload:

Use it when developers will embed the frontend and post draft changes into that frame.

Strapi:

Use it when a preview link is enough, or when Growth is funded for live updates in the Content Manager.

Preview one changing entry in both admins and decide whether iframe preview or a paid live preview is the editing bar.

Recommendations by use case

[Marketing website]

Either, after preview is funded

Payload fits if the team will own iframe preview in the app. Strapi fits if a preview URL is enough until Live Preview is licensed.

[Structured content platform]

Payload in code, Strapi in the admin

Choose Payload when the model should generate the admin from TypeScript. Choose Strapi when the Content-type Builder should remain part of daily modeling.

[Multilingual multisite]

Both can start without a locale cap

Payload documents no locale limit, with beta per-locale drafts. Strapi lists unlimited locales on Community. Test independent publishing before you commit.

[Ecommerce]

Keep the catalog beside its operators

Payload fits a catalog stored in the app database. Strapi fits collection types in a CMS the store team can model in the admin.

[Enterprise governance]

Budget the paid governance tier

Payload approvals and SSO are enterprise. Strapi review workflows, audit logs and the SOC 2 report are Enterprise. Community or MIT alone will not cover that list.

[Small team]

Choose the admin you can maintain

Payload suits a team already shipping a Next.js app. Strapi suits a team that wants an admin builder. Both still need someone to run Node and a database.

[Self hosted control]

Both can run on your servers

Payload’s documented default is self-hosting. Strapi can self-host or use Cloud. Pick Payload when the database is already yours, and Strapi when Cloud must stay available.