Strapi: The Popular Open Source Headless CMS
Strapi is a headless CMS: it manages content and serves it through an API, leaving the website, app, or anything else to fetch and display it however it likes. Editors get a friendly admin panel; developers get REST and GraphQL endpoints. It is one of the most popular open source CMS projects.
Headless, briefly
A traditional CMS like WordPress stores content and renders the website. A headless CMS only stores and serves content. The same articles can feed a static site built with Hugo or Astro, a mobile app, and a digital sign. The trade-off is that you build the front end yourself.
Features
- A visual Content-Type Builder to define content structures without code
- Auto-generated REST and GraphQL APIs for every content type
- Role-based access control for the admin panel and the public API
- A media library
- Internationalisation for multilingual content
- Draft and publish workflows
- TypeScript support and a plugin system
Deployment
Strapi is a Node.js application supporting SQLite, PostgreSQL, MySQL, and MariaDB. You typically create a project with its CLI, build your content types in development, and deploy the project to a server or container. Use PostgreSQL in production, keep uploads on persistent storage or S3, and put it behind a reverse proxy. Strapi Cloud is the official managed option, and an Enterprise Edition adds features such as SSO and audit logs.
Alternatives
- Directus: wraps any SQL database with an admin app and APIs
- Payload: a code-first TypeScript CMS
- Ghost: publishing-focused, with headless APIs as well
License
MIT (Community Edition); Enterprise Edition features are commercially licensed.