
Strapi
Open-source headless CMS on Node.js and TypeScript: visual content-type builder, auto-generated REST and GraphQL APIs, RBAC, i18n and plugins.
Strapi is an open-source headless CMS built on Node.js and TypeScript. Content models are defined in the admin panel with the Content-Type Builder — fields, reusable components, Dynamic Zones and a blocks-based rich text editor — and Strapi generates a REST API and a GraphQL API for every content type, ready to consume from any website, mobile app or IoT device.
Out of the box it includes role-based access control for both admin users and API consumers, API tokens, webhooks, a media library, internationalization with unlimited locales, draft and publish, and a plugin marketplace. Controllers, services, routes and middleware can all be overridden in code, TypeScript types are generated for your content, and the admin panel itself is a React application. Content lives in SQLite for local development or in PostgreSQL, MySQL or MariaDB in production.
Deployment is self-hosted on Node.js 20 through 26, via Docker or any Node-capable host, or managed through Strapi Cloud. Content can be moved between environments with the export, import and transfer CLI commands, and data can be migrated from another instance or another CMS during a rebuild.
The Community edition is MIT licensed and free with unlimited content types, entries, API calls and locales. Paid self-hosted plans add Growth features — Strapi AI, Live Preview, Releases and 14-day Content History — while the Enterprise tier adds SSO, Review Workflows, Audit Logs and a SOC 2 report. Compared with Contentful, Strapi follows the same API-first model but runs on your own infrastructure, with the database, uploads and admin panel under your control. Compared with WordPress, there is no rendering layer at all: Strapi only models and serves content, and you build the frontend yourself.












