Strapi — headless CMS номер один на GitHub по звёздам. Open source, Node.js под капотом, гибкий конструктор контентных типов и авто-генерируемый REST + GraphQL API. Запущен в 2015 году французской командой и с тех пор вырос в экосистему из тысяч плагинов и сотен тысяч пользователей.
Сайт: strapi.io
Как работает
В отличие от WordPress, где контент жёстко связан с темой и фронтендом, Strapi — это чистый API. Вы создаёте контентные типы в админке (статьи, товары, лендинги, что угодно), наполняете их через визуальный редактор, а фронтенд получает данные по REST или GraphQL.
Админка на React, кастомизируется. Можно добавить поля любого типа: текст, rich text, медиа, даты, связи (one-to-many, many-to-many), JSON, enum, password. Компоненты для повторяющихся блоков. Динамические зоны для гибкой компоновки страниц.
После создания контентного типа Strapi автоматически генерирует API — контроллеры, роуты, модель. Всё, что остаётся разработчику — написать фронтенд.
Плагины и экосистема
Маркетплейс Strapi насчитывает сотни плагинов. Часть официальных: GraphQL, документация (авто-генерируемая по контентным типам), провайдеры для email и загрузок. Часть от сообщества: SEO, карты сайта, Algolia, Cloudinary, комментарии, Webhook.
Архитектура плагинов зрелая — можно писать свои под любые нужды. Это особенно ценно для агентств: натянул SEO-плагин, карту сайта, подключил Cloudflare Images — всё бесплатно.
Self-hosted vs Cloud
Strapi можно развернуть где угодно: VPS, Railway, Render, Heroku, Docker. База данных — SQLite для разработки, PostgreSQL или MySQL для продакшена. Self-hosted версия бесплатна.
Strapi Cloud — это managed-хостинг от создателей: $99/мес за проект. Авто-бэкапы, CDN, CI/CD из коробки. Для агентств и команд, которые не хотят возиться с серверами — хороший вариант.
Важный нюанс: Strapi v5 (актуальная) требует Node.js 20+ и использует ES модули. Документация обновилась, но старые туториалы для v4 местами нерелевантны.
Что хорошо
Гибкость контент-моделирования — главная фишка. Можно построить схему любой сложности: от блога до маркетплейса с взаимосвязанными сущностями. API генерируется автоматически, фильтрация, сортировка, пагинация — из коробки.
Ролевая модель (RBAC) позволяет разграничить доступ для редакторов, авторов и админов. Интернационализация (i18n) встроена — можно создавать контент на нескольких языках без костылей.
Админка приятная. Чистый Material Design, интуитивно понятная, быстрая. Редакторы контента осваиваются за час.
Что не очень
Strapi — это Node.js-монолит. Если проект растёт до миллионов записей, база начинает упираться. v5 содержит улучшения производительности, но до headless-решений на Go (вроде Payload CMS 3) далеко.
Обновления мажорных версий — боль. Переход с v3 на v4 был квестом, с v4 на v5 — полегче, но миграции всё ещё требуют рук. Для долгоживущих проектов это фактор.
TypeScript-поддержка улучшилась в v5, но не везде глубокая. Некоторые плагины сообщества всё ещё на чистом JS без типов.
Вердикт
Strapi — отличный выбор для 90% проектов, которым нужна headless CMS. Бесплатно, опенсорс, гибко, с отличной админкой и активным сообществом. Идеален для блогов, лендингов, корпоративных сайтов, небольших e-commerce. Для high-load сценариев присмотритесь к Ghost (если только контент) или Payload.