Конфігурація колекцій Decap CMS: folder, files, віджети

Коли CMS після налаштування перетворюється на «чорну скриньку», редактори плутаються в полях, а контент зберігається не там, — це ознака неправильної конфігурації колекцій. Ми налаштовуємо Decap CMS під ключ: продумуємо архітектуру контенту, налаштовуємо folder та files колекції, віджети і сортування, щоб робота з сайтом була інтуїтивною та без помилок. Наша команда бере на себе весь цикл — від аудиту до впровадження та подальшої підтримки.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Конфігурація колекцій Decap CMS: folder, files, віджети
Простий
від 1 дня до 3 днів
Часті запитання

Ми часто стикаємося з ситуацією, коли CMS після налаштування перетворюється на «чорну скриньку»: редактори плутаються в полях, контент зберігається не там, slug-и конфліктують. Все впирається в один YAML-файл — config.yml. Правильна конфігурація колекцій Decap CMS — це не просто список полів, а архітектура контенту. Якщо її продумати заздалегідь, ви заощадите години правок та нервів. За 6 років роботи над проєктами з Decap CMS (більше 50 успішних проєктів) ми виробили підходи, які допоможуть уникнути типових помилок. Наприклад, налаштування колекцій для інтернет-магазину з каталогом товарів, категорій та брендів зайняло 6 годин. Після впровадження редактори створюють товари в 2 рази швидше, а кількість помилок при публікації скоротилася на 40%. Базове налаштування (до 5 колекцій) коштує від 200$, а складний проєкт з i18n — від 500$, що в 2 рази дешевше, ніж аналогічне налаштування на Strapi.

Два типи колекцій: folder vs files

Параметр Folder collection Files collection
Призначення Множина однотипних записів (статті, товари) Фіксовані сторінки (головна, контакти)
Створення нових записів Так (create: true) Ні, лише редагування
Slug Генерується з шаблону Не потрібен
Приклад Блог, каталог, відгуки Головна, про нас, 404
---
collections: # Folder collection
  - name: blog
    label: Блог
    folder: content/blog
    create: true
    delete: true
    slug: "{{slug}}"
    fields:
      - { label: Заголовок, name: title, widget: string }
      - { label: Контент, name: body, widget: markdown }

  # Files collection
  - name: pages
    label: Сторінки
    files:
      - label: Головна сторінка
        name: home
        file: content/home.yaml
        fields:
          - { label: Заголовок hero, name: hero_title, widget: string }
          - { label: Підзаголовок, name: hero_subtitle, widget: text }
      - label: Про компанію
        name: about
        file: content/about.md
        fields:
          - { label: Заголовок, name: title, widget: string }
          - { label: Контент, name: body, widget: markdown }
---

Налаштування колекцій для різних типів контенту

Для інформаційного сайту достатньо двох колекцій: статті (folder) та сторінки (files). Для інтернет-магазину знадобиться каталог товарів, категорії, бренди. Правило: один тип контенту — одна колекція. Не намагайтеся вмістити товари та статті в одну folder, інакше захарастите інтерфейс. Folder collection краще за Files collection для блогу, оскільки дозволяє створювати нові записи без правки конфігу.

Віджети: повний набір для реальних проєктів

---
fields:
  # Базові
  - { label: Рядок, name: title, widget: string, required: true }
  - { label: Текст, name: description, widget: text }
  - { label: Число, name: order, widget: number, value_type: int, default: 0 }
  - { label: Булево, name: featured, widget: boolean, default: false }
  - { label: Дата, name: date, widget: datetime, format: "YYYY-MM-DD" }
  # Вибір зі списку
  - label: Категорія
    name: category
    widget: select
    options:
      - { label: Новини, value: news }
      - { label: Кейси, value: cases }
      - { label: Аналітика, value: analytics }
  # Медіафайл
  - { label: Обкладинка, name: cover, widget: image, required: false }
  # Markdown-редактор
  - label: Контент
    name: body
    widget: markdown
    modes: [rich_text, raw]
  # Список рядків
  - { label: Теги, name: tags, widget: list, required: false }
  # Вкладений об'єкт (SEO)
  - label: SEO
    name: seo
    widget: object
    collapsed: true
    fields:
      - { label: Meta title, name: title, widget: string, required: false }
      - { label: Meta description, name: description, widget: text, required: false }
      - { label: OG Image, name: og_image, widget: image, required: false }
  # Список об'єктів (переваги)
  - label: Переваги
    name: features
    widget: list
    fields:
      - { label: Іконка, name: icon, widget: string }
      - { label: Заголовок, name: title, widget: string }
      - { label: Опис, name: description, widget: text }

Важливість правильної конфігурації віджетів

Неправильний вибір віджета веде до проблем з редагуванням. Наприклад, для довгих текстів використовуйте markdown, а не text — інакше редактор не зможе форматувати. Для числових значень обов'язково вказуйте value_type та default, щоб не було порожніх полів. Ми гарантуємо, що після нашого налаштування редактори не зіткнуться з такими проблемами.

Сортування та фільтрація

Для зручності редакторів додайте sortable_fields та view_filters. Це дозволить сортувати записи за датою, заголовком або кастомним полем, а також фільтрувати за статусом.

---
- name: team
  label: Команда
  folder: content/team
  create: true
  sortable_fields: ['name', 'position', 'order']
  view_filters:
    - label: Тільки активні
      field: active
      pattern: true
    - label: Менеджери
      field: department
      pattern: management
  view_groups:
    - label: По відділу
      field: department

Пов'язані колекції через relation

Поле relation приймає параметри: collection — ім'я колекції-джерела, search_fields — поля для пошуку, value_field — що збережеться у файлі. Наприклад: widget: relation, collection: team, search_fields: ['name'], value_field: name. У Markdown-файлі збережеться ім'я автора як рядок. Якщо потрібен ID — змінюємо value_field: "{{slug}}".

Продвинуті налаштування: nested та conditional

---
- name: docs
  label: Документація
  folder: content/docs
  create: true
  nested:
    depth: 3
    summary: "{{title}}"
    meta:
      path:
        label: Шлях
        widget: parent-path
  fields:
    - label: Тип блоку
      name: type
      widget: select
      options: [text, video, gallery]
    - label: Текст
      name: text
      widget: markdown
      condition:
        field: type
        value: text
    - label: URL відео
      name: video_url
      widget: string
      condition:
        field: type
        value: video

i18n колекцій

---
i18n:
  structure: multiple_files
  locales: [ru, en]
  default_locale: ru
collections:
  - name: services
    label: Послуги
    folder: content/services
    create: true
    i18n: true
    fields:
      - { label: Заголовок, name: title, widget: string, i18n: true }
      - { label: Слаг, name: slug, widget: string, i18n: duplicate }
      - { label: Контент, name: body, widget: markdown, i18n: true }

Поширені помилки та як їх уникнути

Помилка Наслідки Рішення
Не вказана папка для folder collection Файли створюються в корені GitHub Завжди вказуйте folder
Забагато обов'язкових полів Редактори втомлюються та пропускають важливе Залиште обов'язковими лише ключові поля
Relation без search_fields Випадаючий список стає нескінченним Додайте хоча б search_fields: ['name']
Відсутність default_locale при i18n Збірка падає, CMS не визначає мову Вкажіть default_locale

Що входить у налаштування колекцій Decap CMS

  • Розробка схеми контенту під ваш проєкт (5–8 типів контенту).
  • Налаштування віджетів, relation, nested, i18n.
  • Перевірка на реальних даних (до 50 записів).
  • Документація для редакторів (опис кожного поля).
  • Підтримка 2 тижні після здачі — правимо недоліки.

Як заощадити 30% часу редакторів за допомогою правильної конфігурації?

Використовуйте view_filters та sortable_fields для швидкого пошуку. Налаштуйте шаблони slug, щоб уникнути дублів. Це скорочує час на редагування на 30%.

Як відлагоджувати конфігурацію Decap CMS?

Найчастіші причини непрацюючої CMS після правки config.yml:

  • YAML-синтаксис — один зайвий або пропущений пробіл порушує структуру файлу, CMS не завантажується. Перевіряйте через онлайн-валідатор перед комітом.
  • Неправильний шлях backend — переконайтеся, що name: git-gateway збігається з вашим провайдером, а branch вказує на потрібну гілку репозиторію.
  • Порожні обов'язкові поля — якщо редактор не може зберегти запис, перевірте, що всі поля з required: true мають default.
  • Relation не знаходить колекцію — поле collection у relation-віджеті повинно збігатися з name цільової колекції, не з label.
  • i18n-файли не створюються — при structure: multiple_files потрібна окрема директорія для кожної мови.

Як ми впроваджуємо конфігурацію колекцій Decap CMS?

  1. Проводимо інтерв'ю з редакторами — з'ясовуємо, які поля використовуються найчастіше і що викликає труднощі.
  2. Проектуємо схему колекцій: визначаємо типи, віджети та зв'язки між колекціями.
  3. Пишемо config.yml, тестуємо на staging-оточенні — створення, редагування, видалення записів.
  4. Документуємо кожне поле, пояснюємо призначення віджетів команді редакторів.
  5. Передаємо в роботу з підтримкою 2 тижні — оперативно правимо за зауваженнями.

Офіційна документація Decap CMS

Строки та вартість

Базове налаштування (до 5 колекцій, без i18n): 4–8 годин, від 200$. Середній проєкт (6–10 колекцій, relation): 1 день, від 350$. Складний проєкт (з i18n, умовними полями, 10–15 колекцій): 1–2 дні, від 500$. Вартість визначається після аналізу вашого проєкту. Зв'яжіться з нами, щоб обговорити вашу конфігурацію Decap CMS. Отримайте консультацію інженера з 6-річним досвідом роботи з цією CMS (5 років на ринку). Гарантуємо якість та дотримання термінів — налаштування Decap CMS в 2 рази швидше, ніж аналогічне в Strapi.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060