Contentful — headless CMS, разделяющая хранение контента и его представление. Редакторы работают с контентом в браузерном интерфейсе, разработчики получают его через REST API или GraphQL и отображают на любой платформе: веб, мобильные приложения, умные устройства.
Архитектура headless CMS
- Content Model — типы контента с типизированными полями (Text, Number, Date, Link, JSON, Asset).
- Content Delivery API (CDA) — публичный REST API для чтения опубликованного контента (read-only).
- Content Management API (CMA) — API для полного управления контентом (CRUD) и автоматизации.
- GraphQL API — гибкие запросы с точным выбором нужных полей.
- Webhooks — уведомления при изменении контента для инвалидации кэша и пересборки SSG.
Применение в Jamstack
Contentful хорошо подходит для Jamstack-архитектур: фреймворк (Next.js, Astro) получает контент через CDA при сборке, генерирует статические страницы, деплоит на CDN. При обновлении контента редактором — webhook запускает пересборку в CI/CD. Результат: скорость статического сайта + редактируемость CMS.
// Next.js: получение контента из Contentful
const entries = await client.getEntries({
content_type: 'blogPost',
limit: 10
});
История
Contentful основана Сашей Ловринсевичем (Sascha Lohrincz) и Паоло Негри в 2011 году в Берлине. В 2017 году привлечена серия B $28 млн. В 2021 году — серия E $175 млн при оценке $3 млрд. К 2023 году Contentful используется в 30% компаний списка Fortune 500.
Сравнение с традиционными CMS
| Параметр | Contentful | WordPress | Drupal |
|---|---|---|---|
| Хранение контента | Облако Contentful | Своя БД | Своя БД |
| Фронтенд | Любой (decoupled) | Тема или headless | Twig или headless |
| Масштабирование контента | CDN Contentful | Нужна настройка | Нужна настройка |
| Стоимость | От $0 до $489+/мес. | Бесплатно (ПО) | Бесплатно (ПО) |
Contentful в хостинге
Contentful — SaaS: не требует сервера для CMS. Фронтенд-сайт (Next.js) деплоится на VPS или PaaS (Vercel, Netlify) и обращается к Contentful API. Бесплатный план: 2 локали, 48 типов контента, 25 000 API-запросов в месяц. Альтернативы: Strapi (self-hosted), Sanity, Prismic, Directus.
Contentful vs конкуренты
| CMS | Тип | Self-hosted | GraphQL |
|---|---|---|---|
| Contentful | SaaS | Нет | Да |
| Strapi | Open source | Да | Плагин |
| Sanity | SaaS | Нет | Да (GROQ) |
| Directus | Open source | Да | Да |
| WordPress (headless) | Open source | Да | WPGraphQL |
Интеграция с CI/CD
При обновлении контента в Contentful webhook отправляет POST-запрос на URL, который запускает пересборку сайта. Пример с GitHub Actions:
# В Contentful: Webhook URL = https://api.github.com/repos/user/repo/dispatches
# Payload: {"event_type": "contentful_update"}
# GitHub Actions workflow:
on:
repository_dispatch:
types: [contentful_update]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm run build
Для CI/CD-интеграции с VPS: webhook запускает деплой скрипта через Nginx + PHP webhook receiver. Contentful SDK доступен для Node.js, PHP, Python, Ruby, Java — не привязывает к конкретному стеку.