Strapi: Open-Source Headless CMS with a Human Face

Review of Strapi — the most popular open-source headless CMS. Content types, REST/GraphQL API, admin panel, plugins, and real-world usage experience.

Strapi is the number one headless CMS on GitHub by stars. Open source, Node.js under the hood, a flexible content type builder, and auto-generated REST + GraphQL API. Launched in 2015 by a French team and has since grown into an ecosystem of thousands of plugins and hundreds of thousands of users.

Website: strapi.io

How It Works

Unlike WordPress, where content is tightly coupled to a theme and frontend, Strapi is a pure API. You create content types in the admin panel (articles, products, landing pages — whatever you need), populate them through a visual editor, and the frontend fetches data via REST or GraphQL.

The admin panel is built on React and is customizable. You can add fields of any type: text, rich text, media, dates, relations (one-to-many, many-to-many), JSON, enum, password. Components for repeatable blocks. Dynamic zones for flexible page composition.

After creating a content type, Strapi auto-generates the API — controllers, routes, model. All the developer has to do is write the frontend.

Plugins and Ecosystem

The Strapi Marketplace has hundreds of plugins. Some are official: GraphQL, documentation (auto-generated from content types), providers for email and uploads. Others are community-built: SEO, sitemaps, Algolia, Cloudinary, comments, Webhook.

The plugin architecture is mature — you can write your own for any need. This is especially valuable for agencies: bolt on an SEO plugin, a sitemap, connect Cloudflare Images — all free.

Self-Hosted vs Cloud

Strapi can be deployed anywhere: VPS, Railway, Render, Heroku, Docker. Database — SQLite for development, PostgreSQL or MySQL for production. The self-hosted version is free.

Strapi Cloud is managed hosting from the creators: $99/mo per project. Auto-backups, CDN, CI/CD out of the box. For agencies and teams that don’t want to deal with servers — a good option.

An important note: Strapi v5 (current) requires Node.js 20+ and uses ES modules. The documentation has been updated, but old v4 tutorials are partially irrelevant.

What’s Good

Content modeling flexibility is the main feature. You can build a schema of any complexity: from a blog to a marketplace with interconnected entities. The API is auto-generated with filtering, sorting, and pagination — out of the box.

The role-based access control (RBAC) lets you restrict access for editors, authors, and admins. Internationalization (i18n) is built in — you can create content in multiple languages without workarounds.

The admin panel is pleasant. Clean Material Design, intuitive, fast. Content editors pick it up in an hour.

What’s Not So Great

Strapi is a Node.js monolith. If your project grows to millions of records, the database starts to struggle. v5 includes performance improvements, but it’s far behind Go-based headless solutions (like Payload CMS 3).

Major version upgrades are painful. The v3 to v4 transition was a quest; v4 to v5 was easier, but migrations still require manual work. For long-lived projects, this is a factor.

TypeScript support improved in v5, but it’s not deeply integrated everywhere. Some community plugins are still plain JS without types.

Verdict

Strapi is an excellent choice for 90% of projects needing a headless CMS. Free, open source, flexible, with a great admin panel and an active community. Ideal for blogs, landing pages, corporate sites, small e-commerce. For high-load scenarios, look at Ghost (if content-only) or Payload.