[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.
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
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)
- Strapi Content-type Builder: Creates collection and single types, with draft-and-publish and internationalization settings.
- Strapi features and plans: Separates Community, Growth and Enterprise features from Strapi Cloud hosting plans.
Choosing between them
Editors publish documents and reorder blocks that already exist. New fields ship as a config change.
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)
- Strapi Content-type Builder: Creates collection and single types, with draft-and-publish and internationalization settings.
Choosing between them
Use it when the schema, admin and API should be generated from one TypeScript config.
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)
- Strapi features and plans: Separates Community, Growth and Enterprise features from Strapi Cloud hosting plans.
Choosing between them
Versions, drafts, autosave and schedules can be turned on. Localized draft status is beta.
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)
- Strapi internationalization: Enables locales per content type and field on the free Community plan.
- Strapi CMS pricing: Lists the free MIT Community plan, Growth at $45 per month, and Enterprise review workflows.
Choosing between them
Locales are enabled per field, with fallback on by default. The docs state no locale limit.
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)
- Strapi Content-type Builder: Creates collection and single types, with draft-and-publish and internationalization settings.
- Strapi Cloud fundamentals: Describes Strapi Cloud as hosting for an existing project, not a different CMS.
Choosing between them
Developers own config, migrations, custom admin components and the host.
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
Queries can filter, select fields and populate relationships to the depth you request.
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)
- Strapi Cloud fundamentals: Describes Strapi Cloud as hosting for an existing project, not a different CMS.
- Strapi features and plans: Separates Community, Growth and Enterprise features from Strapi Cloud hosting plans.
Choosing between them
You bring the database, permanent file storage and email provider. Enterprise can include Payload hosting.
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
Cookie auth, CSRF and field access ship in the app you deploy. SSO is enterprise, and SOC depends on your host.
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
Budget the Node host, database and storage, and sales if you need SSO, visual editing or Payload hosting.
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
Exit means exporting that database and replacing hooks and API usage in the app.
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
Blocks and iframe preview work after the frontend URL and block components exist.
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
Use it when developers will embed the frontend and post draft changes into that frame.
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.