null

Strapi в эпоху AI-coding: почему dev-first CMS выигрывает

 

Состояние рынка

Headless CMS перестал быть нишевой темой. Рынок оценивается в $3,94 млрд в 2026 году и прогнозируется к росту до $22 млрд к 2034-му (CAGR >21%). Для большинства команд это уже инфраструктурное, а не инструментальное решение.

Рынок сложился в два лагеря:

Enterprise-Grade Orchestrators — Contentful, Sanity, Kontent.ai. Проприетарные SaaS-платформы с высоким ценовым порогом, позиционирующие себя как «Composable DXP» или «Content Operating System». Высокий уровень managed-сервисов, global CDN из коробки, но данные живут у провайдера.

Developer-Owned Backends — Strapi, Payload CMS. Open-source, self-hosted, максимальный контроль над инфраструктурой. Strapi — самый популярный headless CMS с открытым исходным кодом по числу GitHub-звёзд и задокументированных enterprise-деплойментов.

Что такое Strapi

Strapi — headless CMS на Node.js с MIT-лицензией. Self-hosted Community Edition полностью бесплатен. 

What is Strapi? Why Should You Use It?

Ключевые параметры платформы:

  • API: REST и GraphQL генерируются автоматически для каждого content type. OpenAPI v3 spec с v5.20
  • База данных: PostgreSQL (рекомендован для production), MySQL/MariaDB, SQLite. Только SQL — намеренный выбор под реляционную enterprise-инфраструктуру
  • TypeScript: 100% кодовая база с Strapi 5, сборка через Vite
  • i18n, Draft/Publish, версионирование контента — из коробки

Архитектура: схема как код

Главное архитектурное решение Strapi — content type как файл в репозитории. Каждый тип — это schema.json, который версионируется в git, открыт для диффа в PR и читаем любым инструментом.

// src/api/article/content-types/article/schema.json
{
  "kind": "collectionType",
  "options": { "draftAndPublish": true },
  "attributes": {
    "title":   { "type": "string", "required": true },
    "slug":    { "type": "uid", "targetField": "title" },
    "content": { "type": "richtext" },
    "author":  { "type": "relation", "relation": "manyToOne", "target": "plugin::users-permissions.user" }
  }
}

Из этой схемы Strapi автоматически генерирует полный CRUD-слой. REST-эндпоинт поддерживает фильтрацию, сортировку, пагинацию и populate для связей:

GET /api/articles?filters[author][username][$eq]=john&populate[author][fields][0]=username&sort=createdAt:desc&pagination[pageSize]=10

Тот же запрос через GraphQL — через /graphql, который подключается одним плагином.

Кастомная бизнес-логика

Lifecycle hooks перехватывают события без написания отдельных эндпоинтов:

// src/api/article/content-types/article/lifecycles.ts
export default {
  async beforeCreate(event) {
    const { data } = event.params;
    if (!data.slug && data.title) {
      data.slug = slugify(data.title, { lower: true });
    }
  },
};

Кастомные роуты добавляются декларативно:

// src/api/article/routes/custom-article.ts
export default {
  routes: [
    { method: 'GET', path: '/articles/trending', handler: 'article.findTrending',
      config: { policies: ['global::is-authenticated'] } },
  ],
};

Официальный @strapi/sdk-js генерирует типизированные клиентские методы из OpenAPI-спецификации инстанса — IntelliSense и type narrowing без ручных деклараций.

Почему dev-first архитектура выигрывает у AI-агентов

Это принципиальный момент для современного рабочего процесса.

AI-агенты (Claude Code, Cursor, Copilot Workspace) работают с файловой системой и документацией. Когда схема контента существует как JSON-файл в репозитории, агент может прочитать её, добавить поле, написать lifecycle hook и сгенерировать seed-скрипт — всё в рамках одного PR без выхода в браузер.

В CMS с UI-first архитектурой (Contentful и подобных) схема живёт только в базе данных провайдера. Агент вынужден делать аутентифицированные API-вызовы к Management API, не имея статического контекста. Это не техническое ограничение — это архитектурное.

Задача Strapi UI-first SaaS
Прочитать схему JSON из репозитория API-вызов к провайдеру
Добавить поле Редактирование файла POST к Management API
Добавить логику Lifecycle hook в TS Отдельная Lambda/Function
Ревью изменений git diff в PR Только в UI провайдера

Strapi AI и MCP

В 2025 году Strapi выпустил Strapi AI — генерацию content models из текстового промпта или Figma-дизайна. Параллельно разрабатывается нативный MCP-сервер, который позволяет AI-ассистентам управлять схемой через Model Context Protocol. Пока он в разработке, доступен community-плагин @sensinum/strapi-plugin-mcp.

Документация публикует специальные файлы: llms.txt, llms-full.txt, llms-code.txt — структурированный, токен-экономный контекст для RAG-систем и IDE-агентов.

Сравнение с конкурентами

  Strapi Contentful Sanity Payload
Лицензия MIT Проприетарный Проприетарный MIT
Self-hosting  Да Нет Да Да
Schema as code JSON в git API-only TypeScript TypeScript
MCP-поддержка plugin + roadmap Нет Нативный Да
DB freedom SQL (PG/MySQL) Vendor Vendor PG/MongoDB/SQLite
Цена (managed) Бесплатно / $18+ $300+/мес $15+/мес Бесплатно
Admin UI зрелость Высокая Высокая Высокая (Studio) Базовая

Payload CMS — ближайший конкурент в open-source нише. Устанавливается прямо в Next.js-приложение и работает внутри App Router. Figma приобрела Payload в июне 2025 года, MIT-лицензия сохранена. Если проект Next.js-first и минимальный network overhead важен — Payload стоит рассматривать наравне со Strapi.

Contentful — правильный выбор для global enterprise с требованиями к SLA, managed CDN и zero-ops. Ценовой порог отражает реальную стоимость этих гарантий.

Sanity выигрывает на real-time collaboration и кастомизации редактора через Portable Text.

Self-hosting: что нужно учесть

Strapi в production стандартно деплоится за reverse proxy (Cloudflare, nginx) с frontend на Vercel/Netlify. Для медиа нужен отдельный CDN (S3 + CloudFront или аналог) — Strapi не предоставляет его из коробки.

Для multi-region деплоймента придётся самостоятельно проектировать топологию репликации и кэширования. Именно это managed-платформы берут на себя за деньги.

Честно про миграции: upgrade между major-версиями Strapi исторически требует значительных усилий. Переход v4 → v5 не исключение. Это нужно учитывать при оценке long-term стоимости ownership.

Когда выбирать Strapi

Сценарий Вывод
Data sovereignty, GDPR/HIPAA compliance, self-hosted Strapi
Code-first команда, схема в git, CI/CD пайплайн Strapi
AI-агенты работают с кодовой базой Strapi
Ограниченный бюджет, нужен production-ready CMS Strapi (MIT)
Next.js-monorepo, минимальный инфраструктурный overhead → Payload
Global CDN, 99.99% SLA, zero-ops → Contentful
Real-time collaboration редакторов → Sanity

Dev-first архитектура была преимуществом удобства. В мире, где AI-агенты читают, пишут и изменяют кодовую базу напрямую, она стала архитектурным преимуществом: инструменты работают с кодом, а не с UI провайдера.

Вперед