Wiki · Веб-разработка
Strapi
Strapi – это headless CMS с открытым кодом на Node.js: редакторы ведут контент в админке, а сайт, мобильное приложение или другой сервис забирают его через REST или GraphQL API. Систему ставят на свой сервер, код написан на JavaScript и TypeScript.
Обычно о Strapi заказчик слышит в связке: «фронтенд сделаем на Next.js, контент будет в Strapi». Это значит, что у сайта две отдельные части: внешний вид и хранилище контента. Сам подход подробно разобран в статье Headless CMS, здесь речь о конкретной системе.
Модели контента и API Strapi
Работа начинается с моделей контента. Разработчик описывает в визуальном конструкторе, из чего состоит, например, «Статья»: заголовок, текст, обложка, автор, теги. Или «Услуга»: название, описание, цена, вопросы и ответы. По каждой модели Strapi сам создаёт форму в админке и адрес в API. Запрос к нему выглядит так:
GET /api/articles?locale=ru
{ "data": [ { "id": 1, "title": "Strapi" } ] }
Первая строка просит список статей на русском, вторая показывает начало ответа в формате JSON. Такой ответ одинаково понимают сайт, приложение и, скажем, бот. Подробнее о том, как программы обмениваются данными, в статье API.
Из коробки в Strapi есть роли и права доступа, медиатека, черновики и публикация, версии на разных языках и система плагинов. Данные хранятся в PostgreSQL, MySQL, MariaDB или SQLite. MongoDB и другие NoSQL-базы, по документации, не поддерживаются.

Отсюда и признаки, по которым Strapi узнают снаружи. По умолчанию он добавляет в ответы сервера заголовок X-Powered-By со значением Strapi <strapi.io>, админка открывается по адресу /admin, а данные отдаются по адресам, начинающимся с /api/. Заголовок часто отключают, поэтому надёжнее спросить подрядчика.
Что редактор делает в админке сам, а что через разработчика
Для маркетолога Strapi выглядит как набор форм: выбираешь тип контента, открываешь материал, заполняешь поля. Черновик можно сохранить и опубликовать позже, у материала бывают версии на разных языках. А вот новые поля и типы контента редактор сам не добавит: конструктор моделей по документации работает только в режиме разработки, поэтому структуру меняет разработчик и выкладывает на сервер. Предпросмотр страницы прямо из админки тоже возможен, но его настраивают вместе с фронтендом.
Для каких задач выбирают Strapi
- Один контент нужен в нескольких местах: на сайте, в мобильном приложении, на экранах в офлайн-точках.
- Фронтенд пишут на Next.js или Nuxt, и команде нужна админка, которую не придётся делать с нуля.
- Сайт на нескольких языках с общими материалами.
- Сайт компании с типовыми разделами без отдельного фронтенд-разработчика. Классическая CMS закроет задачу проще.
- Интернет-магазин с обменом с 1С: Strapi не магазин, каталог и заказы придётся строить отдельно.
| Задача | Strapi и отдельный фронтенд | Классическая CMS |
|---|---|---|
| Контент для сайта и приложения | Один источник, отдаётся через API | Нужны доработки под API |
| Типовой сайт услуг | Две системы в поддержке | Одна система, готовые шаблоны |
| Правка страниц маркетологом | Если блоки заложены в модели | Обычно есть визуальный редактор |
Как запускают проект на Strapi
Контент и внешний вид делают параллельно, связывает их API. Сначала проектируют модели и поля для SEO, затем настраивают роли, чтобы редактор не мог случайно удалить чужие материалы. Потом фронтенд-разработчик подключает сайт к API. Последний шаг: два сервера, резервные копии и проверка, что поисковик видит готовые страницы.

Самая дорогая ошибка на старте: непродуманные модели. Если сделать «Статью» с одним большим полем текста, а потом захотеть собирать страницы из блоков, контент придётся переносить. Для страниц из блоков в Strapi есть компоненты и динамические зоны: редактор складывает страницу из заранее заданных блоков.
Версии и лицензия на октябрь 2026 года
Актуальная основная версия Strapi 5, она вышла 23 сентября 2024 года. Ветка v4, по документации Strapi, поддерживалась до апреля 2026 года. Переход с v4 на v5 требует правок кода: есть официальный инструмент обновления, который часть изменений вносит автоматически, остальное правят вручную по списку несовместимых изменений.
Основной код открыт по лицензии MIT и бесплатен. Функции из папок ee относятся к Enterprise Edition и распространяются по отдельной коммерческой лицензии. У разработчиков есть и свой облачный хостинг Strapi Cloud.
Плагины, базы данных, сервер и переход на Strapi 5
Как сайт на Next.js получает материалы из Strapi?
Фронтенд запрашивает их у API Strapi по REST или GraphQL, получает JSON и собирает из него страницы. Делать запросы лучше на сервере, при сборке или открытии страницы, тогда поисковый робот сразу видит текст. Для закрытых материалов Next.js ходит в API с токеном, который выпускают в админке Strapi.
Что в Strapi есть сразу, а что ставят плагинами?
Сразу доступны роли и права, медиатека, черновики, языковые версии и REST API. GraphQL и автоматическую документацию API подключают официальными плагинами, остальное ищут в маркетплейсе или пишут сами. Каждый сторонний плагин потом придётся проверять при обновлении Strapi.
Как перевести проект со Strapi 4 на Strapi 5?
Начните с официального инструмента обновления: он сам переписывает часть кода. Что он не осилил, разработчик исправляет руками по перечню изменений, ломающих совместимость. В пятой версии поменялся формат ответов API, поэтому запросы фронтенда и плагины проверяют на тестовой копии. Тянуть с переходом не стоит, четвёртая ветка уже без поддержки.
За что придётся платить в проекте на Strapi?
За сервер с Node.js и базой, за разработку моделей контента и отдельного фронтенда, а потом за поддержку обеих частей. Сам Strapi под MIT бесплатен, лицензию покупают, только если нужны функции Enterprise Edition.
Почему Strapi не подключается к MongoDB?
Начиная с четвёртой версии Strapi работает только с реляционными базами: PostgreSQL, MySQL, MariaDB и SQLite. В Strapi 3 MongoDB ещё поддерживалась, поэтому старые проекты на ней при обновлении переезжают на другую базу. Для рабочего сайта обычно выбирают PostgreSQL или MySQL, а SQLite чаще берут для локальной разработки.
Какой сервер нужен для Strapi?
Такой, где можно постоянно держать запущенное приложение на Node.js, чаще всего это VPS: виртуальный хостинг под PHP с такой задачей, как правило, не справляется. Рядом нужна база данных и место под медиатеку, файлы можно вынести и в облачное хранилище. Фронтенд нередко живёт на отдельном сервере, так что в смете будет две строки на размещение.
Strapi или WordPress: что выбрать, если контент нужен и сайту, и приложению?
Под такую задачу логичнее Strapi: материалы лежат в одном месте и уходят на сайт и в приложение через один API. У WordPress тоже есть REST API, но система задумана как сайт с темой, и структуру данных под приложение приходится дорабатывать. Если приложения нет и не планируется, WordPress обычно проще и дешевле в поддержке.
Хостинг, SEO-поля и резервные копии
- Проект состоит из двух частей, у каждой свой код, сервер и обновления. Нужен хостинг, где работает Node.js, и база данных.
- SEO живёт во фронтенде. Страницы должны отдаваться поисковику готовым HTML, подробнее в статье JavaScript SEO: CSR и SSR.
- Поля для title, description и адреса страницы закладывают в модели сразу, иначе маркетолог не сможет править их сам.
- Резервные копии делают и для базы, и для медиатеки.
Почему проект на Strapi обходится дороже плана
- Выбрать Strapi для сайта-визитки и получить две системы в поддержке вместо одной.
- Забыть про SEO-поля в моделях и про серверную отрисовку во фронтенде.
- Остаться на v4 после конца поддержки.
Сайты с отдельным фронтендом и системой управления контентом мы проектируем и делаем в услуге Разработка сайтов. Если проект уже работает на Strapi, берём его на доработку и поддержку: доработка существующего сайта и техническая поддержка.
Документация Strapi: базы данных, переход на v5 и лицензия
- Strapi: официальная документация, введение и настройка базы данных
- Strapi: документация по переходу с v4 на v5
- Strapi: репозиторий проекта на GitHub и файл лицензии
См. также: CMS, JavaScript SEO: CSR и SSR, Мобильное приложение.
Остались вопросы по теме «Strapi»?
Напишите нам в Telegram или MAX. Ответит специалист, который отвечает за эту тему, или руководитель проектов в рабочее время.
Отвечает по темеДмитрий КолесниковWeb-разработчикНад статьёй работали
Услуги
Услуги по теме
Посчитайте стоимость проекта за 2 минуты
Калькулятор соберёт смету по нашим тарифам: сайт, дизайн, интеграции и поддержка.
