Git-based Headless CMS: 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. Наш досвід: 50+ впроваджень headless CMS, 5 років на ринку — гарантуємо якість.
Які типи сайтів підходять для 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: uk
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('uk-UA')}</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. Отримайте консультацію по вашому проєкту. Вартість робіт від 15 000 грн — економія до 70% порівняно з традиційними CMS.







