Headless CMS на Git: Decap CMS без бэкенда и БД
Вы получили задачу: сайт-блог или документация, но хостинг БД не предусмотрен, бюджет на бэкенд нулевой. Решение — Decap CMS (бывший Netlify CMS). Это git-based headless CMS: контент хранится в репозитории как Markdown и YAML-файлы. Нет базы данных, нет отдельного бэкенда — только Git. Редактор работает в браузерном интерфейсе, нажимает «Сохранить», и за кулисами происходит коммит в репозиторий, а CI/CD собирает обновлённый сайт. Мы используем этот подход на десятках проектов — от небольших визиток до корпоративных порталов. Часто клиенты приходят с жалобами: сложность WordPress, дорогие хостинги БД, отсутствие версионирования контента. Decap CMS решает эти проблемы.
Почему выбирают Decap CMS, а не другие headless CMS?
Decap CMS подходит для небольших сайтов, где команда разработки готова к ограничениям git-модели: контент-менеджер не может обновить страницу в 2 часа ночи и увидеть изменения через 10 секунд — сначала пройдёт билд (1–3 минуты на Netlify/Vercel). Зато нет хостинга БД, нет бэкенда, ноль операционных расходов на инфраструктуру. Типичный стек: Next.js / Astro / Hugo + Decap CMS + Netlify/GitHub Pages.
| Критерий | Decap CMS | Strapi | Contentful |
|---|---|---|---|
| Хостинг | Статика (GitHub Pages, Netlify) | VPS или облако | SaaS |
| База данных | Нет (Git) | PostgreSQL / SQLite | Собственная |
| Цена | Бесплатно | Бесплатно для self-hosted | Платная подписка |
| Версионирование | Git-коммиты | Через плагины | Встроенное |
| Редакторы | До 30-50 человек | Любое число | По лицензии |
Decap CMS выигрывает в простоте и нулевой стоимости инфраструктуры. Если нужны сложные права доступа или API-first подход — лучше Strapi.
Какие типы сайтов подходят для Decap CMS?
Это отличный выбор для:
- Блогов и новостных сайтов с частотой публикации до 10 статей в день.
- Сайтов-визиток и лендингов с минимальным контентом.
- Документации (например, на Docusaurus или GitBook).
- Корпоративных порталов для внутреннего использования, где важна безопасность и аудит изменений.
Не рекомендуется для: интернет-магазинов с частым обновлением цен, медиа-сайтов с высокой нагрузкой, проектов с десятками редакторов.
Как начать: пошаговая инструкция для старта
- Выберите генератор статики. Astro, Hugo или Next.js — любой поддерживает Markdown-контент.
- Создайте admin-директорию в публичной папке вашего сайта с файлами
index.htmlиconfig.yml. - Настройте backend (GitHub, GitLab или Git Gateway) и коллекции контента.
- Запустите CI/CD на Netlify или GitHub Actions, чтобы сайт автоматически пересобирался после коммита.
- Добавьте редакторов через OAuth и обучите их работе с интерфейсом.
Весь процесс занимает от 3 до 7 дней для простого блога.
Настройка OAuth для корпоративного GitHub
Decap CMS поддерживает несколько бэкендов аутентификации:
- GitHub OAuth — через Netlify Identity или сторонний OAuth-прокси.
- GitLab — аналогично.
- Git Gateway — Netlify-специфичный прокси, не требует прямого доступа к репозиторию.
Для не-Netlify хостинга — отдельный OAuth-сервер:
backend: name: github repo: username/my-site base_url: https://your-oauth-server.com Минималистичный OAuth-прокси на Express разворачивается на Railway или Fly.io за 30 минут.
Структура проекта
my-site/ ├── public/ │ └── admin/ │ ├── index.html # Интерфейс CMS │ └── config.yml # Конфигурация коллекций ├── content/ │ ├── posts/ │ │ ├── first-post.md │ │ └── second-post.md │ └── pages/ │ └── about.md ├── src/ │ └── ... # Код фронтенда └── astro.config.mjs Точка входа CMS — CDN-скрипт в public/admin/index.html. Никаких npm-пакетов для интерфейса — просто загружаем [email protected] из CDN.
Конфигурация коллекций
# public/admin/config.yml backend: name: github repo: username/my-site branch: main media_folder: public/images/uploads public_folder: /images/uploads locale: ru collections: - name: posts label: Статьи folder: content/posts create: true slug: "{{year}}-{{month}}-{{day}}-{{slug}}" fields: - { label: Заголовок, name: title, widget: string } - { label: Дата публикации, name: date, widget: datetime } - { label: Обложка, name: cover, widget: image, required: false } - { label: Описание, name: description, widget: text, required: false } - { label: Теги, name: tags, widget: list, required: false } - { label: Контент, name: body, widget: markdown } - name: pages label: Страницы files: - label: О нас name: about file: content/pages/about.md fields: - { label: Заголовок, name: title, widget: string } - { label: Контент, name: body, widget: markdown } Чтение контента в Astro
// src/pages/blog/[slug].astro --- import { getCollection } from 'astro:content' export async function getStaticPaths() { const posts = await getCollection('posts') return posts.map(post => ({ params: { slug: post.slug }, props: { post }, })) } const { post } = Astro.props const { Content } = await post.render() --- <article> <h1>{post.data.title}</h1> <time>{post.data.date.toLocaleDateString('ru-RU')}</time> <Content /> </article> Процесс работы
| Этап | Что делаем | Результат |
|---|---|---|
| Аналитика | Изучаем требования, контент, дизайн | Техническое задание |
| Проектирование | Выбираем стек, проектируем коллекции | Архитектура проекта |
| Реализация | Настраиваем CMS, разрабатываем компоненты | Рабочая среда |
| Тест | Проверяем сборку, аутентификацию, редактор | Отчёт тестирования |
| Деплой | Настраиваем CI/CD, подключаем домен | Готовый сайт |
Что входит в работу и сроки
- Разработка бэкенда: конфигурация Decap CMS, настройка OAuth.
- Интеграция с генератором статики (Astro, Next.js, Hugo).
- Настройка CI/CD для автоматической сборки и деплоя.
- Обучение редакторов работе с CMS.
- Документация по структуре контента и развертыванию.
- Поддержка в течение 1 месяца после запуска.
Сроки: сайт-визитка или блог — 3–7 дней; корпоративный сайт с 5–8 типами страниц, кастомными виджетами и настроенным CI/CD — 2–3 недели.
Закажите консультацию
Свяжитесь с нами — расскажем, подходит ли Decap CMS для ваших задач, прикинем сроки и стоимость. Мы занимаемся веб-разработкой более 5 лет и реализовали свыше 50 проектов на headless CMS. Получите консультацию по вашему проекту.







