Strapi или Payload: что выбрать

Strapi 5 и Payload 3 обе бесплатны, обе на Node.js и TypeScript, обе отдают контент по REST и GraphQL. Разница в одном: Strapi это отдельный сервер с конструктором типов в интерфейсе, а Payload это библиотека, которая живёт внутри вашего приложения Next.js и описывается кодом. У нас в работе два сайта на Strapi с фронтом на Next.js, портал заявок и интернет-магазин на Payload, поэтому ниже сравнение по тому, что реально влияет на проект, а не по списку фич с сайтов производителей.

Коротко, если некогда читать

Таблица сравнения

Версии на 30 сентября 2026: Strapi 5.56, Payload 3.90.

КритерийStrapi 5Payload 3
Что этоОтдельный сервер на Node.js (Koa) с админкой на ReactБиблиотека внутри Next.js, админка и API живут в группе роутов `app/(payload)`
Как описывается схемаContent-Type Builder в админке, результат сохраняется в JSON-файлы `src/api/*/content-types`Кодом на TypeScript: коллекции, поля, хуки, права доступа
Базы данныхPostgreSQL 14+, MySQL 8+, MariaDB 10.3+, SQLite. MongoDB нетMongoDB, PostgreSQL, SQLite. MySQL нет, в SQLite пока нет поля Point
Node.jsТолько LTS: 22, 24, 2620.9 и новее, Next.js 15.2.9+ или 16.2.6+
TypeScriptЯдро переписано на TS в v5, типы контента генерируютсяИзначально TS-first, типы коллекций генерируются из конфига
APIREST и GraphQL по HTTPREST, GraphQL и Local API (`payload.find()` прямо в серверных компонентах, без HTTP)
Черновики и версииDraft & Publish в ядре, история контента в платном планеVersions и Drafts в ядре, бесплатно
Мультиязычностьi18n встроен в ядро с v5Localization на уровне полей, в ядре
ПредпросмотрПростой Preview бесплатно, Live Preview (правка рядом с превью) только в Growth и EnterpriseLive Preview в ядре
Права доступаРоли и права по галочкам в админке (RBAC)Функции доступа на коллекцию, документ и поле, любая логика
ПлагиныМаркетплейс, Plugin SDK. Плагины v4 с v5 несовместимыОфициальные плагины (SEO, формы, поиск, редиректы, мультитенантность, импорт-экспорт, e-commerce, Stripe), адаптеры S3-хранилищ, сторонних меньше
Сборка админкиVite, отдельная сборкаСобирается вместе с Next.js
ДеплойДва сервиса минимум: Strapi и фронт, плюс базаОдин сервис Next.js плюс база
ЛицензияMIT (Community)MIT
Платные планыGrowth 45 $/мес за 3 места, Enterprise по запросуНет
ОблакоStrapi Cloud: Starter 35 $/мес (29 $ при годовой оплате), Pro 90 $, Business 450 $Payload Cloud: новые проекты временно не создаются после сделки с Figma
Кто за проектомКомпания Strapi, ПарижС 17 июня 2025 команда Payload внутри Figma
Обновления мажорных версийv4 → v5 с кодмодами, но ломает формат ответа API и плагиныv2 → v3 потребовал переезда в Next.js, внутри 3.x обновления мягкие

Где разница чувствуется на практике

Кто заводит поля

В Strapi поля и типы собираются мышкой в Content-Type Builder, а результат ложится в JSON-файлы проекта. Оговорка, про которую часто забывают: конструктор доступен только в режиме разработки (по документации Strapi он "Available in Development environment only"). На боевом сервере с NODE_ENV=production он открывается только для просмотра, потому что изменение схемы требует пересборки и перезапуска. То есть новое поле в Strapi всё равно появляется через разработчика: он добавляет его на локальной копии, коммитит JSON и выкатывает. Плюс Strapi здесь в том, что для этого не нужно писать код, и прототип структуры контента можно накликать за час.

В Payload любое поле это строчки в конфиге коллекции. Зато схема лежит в git, проходит код-ревью и одинаково разворачивается на тесте и на проде. На портале заявок у нас обязательность фото (талон, акт, шильдик) описана прямо в схеме, и обойти её через админку нельзя.

Сколько сервисов деплоить

Типовой проект на Strapi у нас выглядит так: контейнер Strapi, контейнер Next.js, Postgres, Nginx. Два домена: сайт и админка. Две сборки, два набора переменных окружения, и отдельная головная боль, когда фронт внутри Docker ходит в Strapi по внешнему домену вместо имени контейнера. На эту тему у нас есть отдельный разбор ошибок ECONNREFUSED и ENOTFOUND.

На Payload это один контейнер Next.js и база. Админка открывается по /admin на том же домене. Серверные компоненты читают данные через Local API, без HTTP-запроса к самому себе.

Логика сложнее контента

Пока проект это страницы, новости и галереи, обе системы равны. Как только появляются роли (менеджер видит одно, сервисный центр другое), статусы с переходами, переписка внутри записи, загрузка с телефона, Payload выигрывает: всё это пишется хуками и функциями доступа в той же кодовой базе, без плагинов и без второго бэкенда.

В интернет-магазине Плавательный.рф на Payload у нас три части: Next.js с Payload (каталог, статьи, контент, админка), отдельный бэкенд на FastAPI для интеграций (МойСклад, эквайринг, доставка, SMS) и мобильные приложения на Capacitor поверх того же сайта. Payload здесь закрывает контент и админку, а не пытается быть всем.

Плагины и экосистема

У Strapi маркетплейс больше, и для типовых задач (SEO-поля, импорт-экспорт, S3, sitemap) обычно есть готовый плагин. Минус в том, что при переходе на v5 все плагины v4 перестали работать, и часть сообществом до сих пор не переписана.

У Payload официальные плагины покрывают SEO, формы, поиск, редиректы, вложенные документы, мультитенантность, импорт-экспорт, Stripe и e-commerce, а хранение файлов в S3 делается штатным адаптером. Сторонних меньше, но чаще всего плагин и не нужен: нужное поле или хук пишутся за час.

Обновления

Переход Strapi 4 → 5 это отдельный проект: меняется формат ответа REST (уходит data.attributes), числовой id заменяется на documentId, Entity Service на Document Service, плагины переписываются. У нас два сайта на Strapi 4, и обновление каждого мы считаем как отдельную работу. Подробно про сроки и что ломается написали на strapi.expert/obnovlenie-strapi-4-do-5.

Payload 3 с ноября 2024 живёт в ветке 3.x, и обновления внутри неё у нас проходят как обычный pnpm update с прогоном миграций базы. Оговорка: перед подключением Payload к существующему проекту на Next.js пришлось обновить сам Next.js и закрыть уязвимости в зависимостях, на старой версии Payload не ставился.

Хостинг и деньги

Обе системы на своём сервере бесплатны. Разница в платных функциях: в Strapi Live Preview, Releases и история контента вынесены в план Growth за 45 долларов в месяц на 3 места. В Payload live preview и версии в ядре.

Облако: Strapi Cloud стартует с 35 долларов в месяц (29 при годовой оплате) за 100 000 запросов к API и 50 ГБ файлов. Из России оплатить его картой не получится, так что для наших клиентов это в любом случае VPS. Payload Cloud после покупки Figma новые проекты временно не принимает, и это тоже не аргумент: Payload разворачивается на любом сервере с Node.js.

Когда что брать

Берите Strapi, если:

Берите Payload, если:

Если сомневаетесь, напишите нам, что за проект, и мы за день скажем, на чём его делать и во что это обойдётся. Разработка на Strapi у нас на strapi.pro, на Payload на payload.agency, а если вы уже на Strapi 4 и думаете, обновляться или переезжать, начните со strapi.expert.

Частые вопросы

Что лучше для Next.js: Strapi или Payload?

Payload. Он ставится внутрь приложения Next.js как группа роутов, данные читаются напрямую через Local API без HTTP-запроса, деплой один. Strapi тоже нормально работает с Next.js, но это отдельный сервер со своим доменом, сборкой и контейнером.

Можно ли в Payload создавать типы контента без программиста?

Нет. Схема коллекций в Payload описывается кодом на TypeScript, новое поле добавляет разработчик. В Strapi типы собираются в интерфейсе Content-Type Builder, но он работает только в режиме разработки: на боевом сервере конструктор отключён, и новое поле всё равно проходит через разработчика и выкатку.

Какие базы данных поддерживают Strapi 5 и Payload 3?

Strapi 5: PostgreSQL 14+, MySQL 8+, MariaDB 10.3+, SQLite. MongoDB не поддерживается со времён Strapi 4. Payload 3: MongoDB, PostgreSQL, SQLite. MySQL в Payload нет.

Сколько стоят Strapi и Payload?

Обе системы бесплатны на своём сервере под лицензией MIT. У Strapi есть платный план Growth за 45 долларов в месяц (3 места, Live Preview, Releases, история контента) и облако Strapi Cloud от 29 долларов в месяц при годовой оплате. У Payload платных функций нет, а новые проекты в Payload Cloud после покупки Figma временно не создаются.

Не закроют ли Payload после покупки Figma?

Payload вошёл в Figma 17 июня 2025. Репозиторий остался открытым под MIT, команда продолжает выпускать релизы: в сентябре 2026 вышла версия 3.90. Отозвать лицензию MIT на уже выпущенный код нельзя, так что даже в худшем случае проект остаётся у вас.

Стоит ли переезжать со Strapi 4 на Payload вместо обновления до Strapi 5?

Если фронт уже на Next.js и в проекте много своей логики, а не только контент, переезд на Payload может стоить примерно столько же, сколько обновление до Strapi 5, и даст одну кодовую базу. Если у вас типовой контентный сайт и редакторам нравится админка Strapi, дешевле обновиться.

Обсудим ваш проект

Нажимая кнопку, вы соглашаетесь на обработку персональных данных для ответа на заявку.