Strapi review
Best known open source option

Strapi is the open-source headless CMS most people can name, and that recognition is deserved: it self-hosts on Node, generates REST and GraphQL APIs from content types you define in an admin panel, and hands a usable interface to non-developers without anyone writing a schema file. For a team that wants an admin panel a client can operate and a database it controls, that combination is genuinely hard to beat on paper.
The licence deserves more attention than it gets. Strapi is described everywhere, including by us until this review, as MIT. The actual LICENSE file grants MIT only if two conditions both hold: you are not using anything under an `ee/` directory, and you have no registered account on Strapi's cloud offering. The second condition is unusual enough to be worth checking against your own situation, because a cloud trial somebody signed up for is not the sort of thing that normally changes the licence on your self-hosted install.
The reputational split is the other thing to know. Strapi's brand and marketing are the strongest in open-source CMS, and its developer-experience reputation among people who have actually shipped and upgraded it is the weakest in this directory. That is not a contradiction so much as a warning about which reviews to weight.
Our scorecard
Our editorial read across six dimensions, scored 1 to 5. This is our own assessment, not an aggregate of user reviews, and it is deliberately kept out of the page's structured data.
- Content modelling4/5
Built in the admin UI, which is the appeal and the constraint: fast to start, harder to version and review.
- Developer experience2/5
The consistent criticism. Upgrades between major versions are described as painful by people who have done them.
- Editor experience4/5
A real admin panel a non-technical client can use, which is why agencies keep choosing it.
- Pricing4/5
Free self-hosted, and Cloud starts at $35. Honest, though enterprise features sit behind a quote.
- Governance3/5
Role-based permissions in core, with the stronger governance features in the enterprise edition.
- Ecosystem5/5
The largest community and plugin ecosystem of any self-hostable option here, by a wide margin.
An editorial read, not an aggregate of user reviews, and deliberately kept out of this page's structured data.
What you can query
REST API
Generated, not hand-written
Auto-generated CRUD endpoints for every content type you define, with filtering, sorting, pagination and population of relations.
GraphQL API
Official plugin, install required
The same content through a generated GraphQL schema, added as an official plugin rather than on by default.
Document Service API
Strapi 5, replaced the Entity Service
The server-side API for querying and mutating documents from within plugins, lifecycle hooks and custom controllers.
Admin and Users-Permissions
How you wire client access
Role and permission management, authentication providers and the endpoints backing the admin panel itself.
Plugin APIs
The reason the ecosystem is large
Server and admin extension points, which is how the ecosystem adds SEO tooling, preview, i18n workflows and storage providers.
MCP server
Announced GA on the homepage
Generally available Model Context Protocol access, so an agent can manage content in a Strapi project directly.
Who Strapi is for
Teams that want an admin panel a non-technical client can operate, on infrastructure they control, without paying per seat. Agencies building sites for clients who will maintain their own content are the natural buyer, and the plugin ecosystem means most common requirements already have an answer.
It is a weaker choice for a developer-centric team that wants the content model in version control, and for anyone who cannot absorb a painful major-version upgrade. Both of those are the specific complaints practitioners raise most often.
Strengths and limits
What it does well
- Genuinely self-hostable on your own infrastructure with your own Postgres, MySQL or SQLite, which no hosted competitor here offers at any price.
- REST and GraphQL APIs are generated from content types defined in the UI, so a working backend exists before anyone writes code.
- The largest community and plugin ecosystem of any self-hostable option in this directory, so uncommon requirements usually have an existing answer.
- An admin panel non-developers can actually operate, which is why it wins agency work over more developer-centric alternatives.
- Cloud pricing is public and starts at $35 a month with unlimited database entries on every tier.
- An MCP server at general availability, so agent-managed content is a supported path rather than a community experiment.
- The MIT grant, where it applies, is real MIT: no competing-use clause, no revenue threshold, no source-available hedging.
Where it falls short
- THE MIT GRANT HAS CONDITIONS. It applies only if you use no `ee/` code AND have no registered account on Strapi Cloud. Check that second one against your own organisation.
- Developer experience is the consistent criticism, and upgrades between major versions are described as painful by people who have done them.
- The content model lives in the admin UI rather than your repository, so schema changes do not go through code review by default.
- One team migrating away cited long-standing GitHub issues from 2022 and 2023 still open, failed saves and poor performance on a $375 Cloud plan with 50 admin users.
- Self-hosting means you own the database, the backups, the scaling and the upgrade path, which is a real operational cost against a hosted competitor.
- Cloud environments are expensive as add-ons: $60 a month on Pro and $300 on Business for each extra one.
- Admin UI mobile responsiveness is reported as poor out of the box.
Strapi pricing
Self-hosting is free and that is the main event. You run it on your own Postgres, MySQL or SQLite, there are no seat charges, no entry limits and no API metering, and you absorb hosting, backups, scaling and upgrades in exchange.
Strapi Cloud starts at $35 a month for 100,000 API requests, 50GB of asset storage and 50GB of bandwidth. Pro is $90 for 1 million requests, 250GB of storage and 500GB of bandwidth. Business is $450 for 10 million requests and a terabyte of each. Database entries are unlimited throughout, which is a meaningful difference from the record caps most hosted competitors impose. Business+ handles custom limits.
Watch the environments. Every tier below Business includes exactly one, and adding another costs $60 a month on Pro or $300 on Business. A team that wants staging and production on Pro is therefore at $150 rather than $90.
The licence is the part to budget legal time for rather than money. Enterprise features live under `ee/` and are not MIT, which is normal open core. The unusual condition is that the MIT grant also requires you to have no registered account on Strapi Cloud, so a cloud trial and a self-hosted production install are not as independent as they look.
Community (self-hosted)
Free
MIT, subject to the conditions above
- Full CMS, REST and GraphQL, unlimited entries
- You provide the database, hosting, backups and upgrades
- Enterprise features live under ee/ and are not MIT
- A registered cloud account is one of the MIT carve-outs
Cloud Starter / Pro
$35 / $90 / mo
100k and 1M API requests
- 50GB and 250GB asset storage respectively
- 50GB and 500GB asset bandwidth
- Unlimited database entries on both
- One environment included; extra Pro environments are $60/mo
Cloud Business
$450 / mo
10M API requests, 2 environments
- 1,000GB of asset storage and bandwidth
- Additional environments $300/mo
- Business+ available for custom limits
- Overage fees apply on requests, storage and bandwidth
Query example
A minimal fetch against the live API, with credentials read from the environment rather than pasted inline.
curl -s -G "https://your-project.strapiapp.com/api/articles" \ -H "Authorization: Bearer $STRAPI_API_TOKEN" \ --data-urlencode "populate=author,cover" \ --data-urlencode "filters[publishedAt][\$notNull]=true" \ --data-urlencode "sort=publishedAt:desc" \ --data-urlencode "pagination[pageSize]=10" # Endpoints are generated from your content types, so this route # exists because you created an "article" type in the admin panel. # That is the trade: nothing to write, and the content model lives # in a UI rather than in your repository.
Limits and quotas
- Cloud Starter: 100k API requests, 50GB asset storage, 50GB bandwidth, 1 environment.
- Cloud Pro: 1M API requests, 250GB storage, 500GB bandwidth, 1 environment.
- Cloud Business: 10M API requests, 1,000GB storage, 1,000GB bandwidth, 2 environments.
- Database entries are unlimited on every Cloud tier.
- Additional environments cost $60/mo on Pro and $300/mo on Business.
- Overage fees apply on API requests, asset storage and bandwidth.
- Self-hosted has no vendor-imposed limits, and no vendor-provided backups or scaling either.
- MIT applies only with no `ee/` usage and no registered Strapi Cloud account.
Third-party reviews
Scores read from each source on 3 September 2026. We report them as-is and publish no rating of our own.
What developers say on Reddit
This is the most negative practitioner read in the directory, and the gap between it and the review scores is the finding. Strapi's recognition is universal and its developer-experience reputation among people who have shipped and upgraded it is poor.
The specific complaints repeat: the upgrade path between major versions, long-standing open issues, and a general sense that the marketing runs ahead of the product. One team migrating off it described being on a $375 Cloud plan with 50 admin users and hitting failed saves and unfixed bugs dating to 2022.
The defence is consistent too, and it is about audience rather than quality. Strapi is repeatedly framed as the user-centred choice against Payload's developer-centred one: if non-technical people need to set things up, it wins, and if your developers own the model, it does not. That is a fair summary and a better way to decide than the star ratings.
“Strapi if you need some non-coding users to set things up, but dev experience is worse. [...] Strapi - user-centered, Payload - dev-centered”
r/nextjs on Reddit“Strapi: Marketing is top tier, the actual product... not so much. DX is pretty bad and upgrading versions is painful. I genuinely hated using it and won't touch it again.”
r/webdev on Reddit“Strapi works well, but you're going to be baked into the Strapi way of having content. Our team preferred Directus because it allowed using whatever DB configurations were preferred and you could ultimately "unplug" from Directus if desired”
r/webdev on Reddit“Full control and flexibility - Strapi is fully open-source and lets you define any data models or APIs you need. Whether you want REST, GraphQL, webhooks, or granular role permissions, it's all there and super dev-friendly.”
r/nextjs on Reddit“I am having self hosted Strapi for my Nuxt application. Can recommend although mobile responsiveness of the Admin UI is not great by default.”
r/nextjs on Reddit
Verdict
Choose Strapi when the admin panel is the deliverable. If a client will maintain their own content, if non-technical people need to define content types without a developer, and if the database has to stay on your infrastructure, it does that job and the ecosystem means most gaps are already filled.
Do not choose it for developer experience. That is the one thing practitioners consistently criticise, the upgrade path is the specific complaint, and a developer-centred alternative will make your engineers happier while making your client's editors less so. Decide which of those two groups you are optimising for and the answer becomes obvious.
Before anything else, read the LICENSE file against your own situation. Strapi is called MIT everywhere, and the grant is conditional on using no enterprise-edition code and holding no Strapi Cloud account. Neither condition is exotic, both are easy to breach by accident, and it takes five minutes to check.
Strapi FAQ
Is Strapi really MIT licensed?
Conditionally. The LICENSE file grants MIT only if you are not using code under an `ee/` directory AND you have no registered account on Strapi Cloud. The first condition is standard open core. The second is unusual, and it means a cloud signup can change which licence governs the copy you self-host.How much does Strapi cost?
Self-hosting is free. Strapi Cloud is $35 a month for 100,000 API requests, $90 for 1 million and $450 for 10 million, with 50GB, 250GB and 1,000GB of asset storage respectively. Database entries are unlimited on every tier, and Business+ handles custom limits.What does an extra Strapi Cloud environment cost?
$60 a month on Pro and $300 a month on Business. Every plan below Business includes just one, so a team wanting staging alongside production on Pro is really paying $150 a month rather than $90. It is the most common surprise in Strapi Cloud budgeting.Is Strapi good for developers?
It is the most common criticism. Practitioners who have shipped and upgraded it describe the developer experience as poor and major-version upgrades as painful, while praising the admin panel non-developers get. If your team owns the content model in code, a developer-centred alternative will suit you better.Where does the Strapi content model live?
In the admin UI, which generates schema files in your project. That makes it fast to start and means changes do not automatically pass through code review the way a repository-defined schema would. It is also why teams report schema drift when another tool, such as Prisma, also manages the database.Does Strapi have an MCP server?
Yes, and it reached general availability rather than staying an experiment, so agents can manage content in a Strapi project directly. It is announced on the Strapi homepage, which is a reasonable signal of how central they consider it.Can I self-host Strapi in production for free?
Yes, and many do. You provide the database, hosting, backups, monitoring and upgrades, and there are no vendor limits on entries, requests or seats. The real cost is operational rather than licensed, and the upgrade path is the part to budget for.Strapi or Payload?
The practitioner shorthand is that Strapi is user-centred and Payload is developer-centred, and it holds up. Strapi if non-technical people define content types and operate the panel. Payload if developers own the model in code, you want it in version control, and you would like to run it serverless.
This is an independent review. We have no affiliate relationship with Strapi, earn nothing if you sign up, and no vendor pays for placement in the directory. Prices were read from the vendor's own pages in September 2026 and change without notice.