Вирішили відмовитися від бази даних? Типова проблема: MySQL жере пам'ять, міграції гальмують розробку, а бекапи важать тонни. У WordPress кожен запит до БД може породити N+1 проблему, особливо на сайтах з великою кількістю Custom Post Types. Kirby CMS вирішує це кардинально — контент у файлах, адмінка вбудована, а шаблони на чистому PHP. Жодних SQL-запитів, жодної міграції схем, жодних складних експортів. Ми використовуємо Kirby для корпоративних сайтів, портфоліо та блогів: клієнти отримують сайт без щомісячних турбот про БД, з простим резервним копіюванням — просто скопіювати папку. Це знижує total cost of ownership у довгостроковій перспективі. Всього один раз налаштовуєте файлову структуру — і контент готовий до публікації.
Наш досвід включає понад 20 успішних проєктів на Kirby — від лендінгів до каталогів з фільтрацією та headless-режимом для React. Сертифіковані партнери Kirby, ми гарантуємо продуктивність і простоту підтримки.
Чому обирають Kirby CMS?
- Відсутність бази даних — контент у текстових файлах, кеш сторінок у директорії media/. Резервне копіювання зводиться до копіювання папки. Міграції не потрібні.
- Гнучка Panel — редактор бачить лише ті поля, які ви задали в Blueprints. Нічого зайвого.
- Продуктивність — Kirby генерує статичний кеш, віддає сторінки без звернення до PHP. LCP та TTFB мінімальні (середній час відповіді з кешем — менше 5 мс).
- Кастомізація — плагіни, моделі, контролери. Можна розширити будь-який функціонал без хаків.
- Headless за замовчуванням — додайте .json до URL і отримайте готове API для фронтенду.
Якщо вам потрібен сайт, який не вимагає щомісячної підтримки бази даних, зв'яжіться з нами — обговоримо деталі.
Як ми реалізуємо проєкти на Kirby?
Розберемо на прикладі проєкту медіаблогу з кастомними полями, тегами та списком читання.
Структура проєкту строга: blueprints/, templates/, controllers/, models/. Файли контенту — Markdown з YAML-шапкою.
site/ ├── blueprints/pages/article.yml ├── controllers/blog.php ├── models/article.php ├── templates/article.php └── snippets/ content/ ├── home/home.txt └── blog/ ├── blog.txt └── 2024-01-15_first-post/article.txt Blueprint описує поля в Panel — тільки те, що потрібно редактору:
# site/blueprints/pages/article.yml title: Стаття columns: main: width: 2/3 sections: content: type: fields fields: title: { type: text, label: Заголовок, required: true } text: { type: writer, label: Текст, marks: [bold, italic, link, code] } cover: { type: files, label: Обкладинка, max: 1, query: page.images } sidebar: width: 1/3 sections: meta: type: fields fields: date: { type: date, label: Дата публікації, default: today } tags: { type: tags, label: Теги } seo_description: { type: textarea, label: SEO-опис, maxlength: 160 } Контролер виносить логіку — сортування, фільтрацію, пагінацію — з шаблону:
<?php // site/controllers/blog.php return function ($page, $site) { $tag = param('tag'); $articles = $page->children()->listed() ->when($tag, fn($pages) => $pages->filterBy('tags', $tag, ',')) ->sortBy('date', 'desc') ->paginate(12); return [ 'articles' => $articles, 'pagination' => $articles->pagination(), 'activeTag' => $tag, 'allTags' => $page->children()->listed()->pluck('tags', ',', true), ]; }; Шаблон отримує готові дані — мінімум логіки:
<?php snippet('header') ?> <article class="post"> <h1><?= $page->title()->html() ?></h1> <time datetime="<?= $page->date()->toDate('Y-m-d') ?>"><?= $page->date()->toDate('d.m.Y') ?></time> <div class="content"><?= $page->text()->kirbytext() ?></div> <?php if ($page->tags()->isNotEmpty()): ?> <footer class="tags"> <?php foreach ($page->tags()->split() as $tag): ?> <a href="<?= $site->url() ?>/blog/tag:<?= $tag ?>"><?= html($tag) ?></a> <?php endforeach ?> </footer> <?php endif ?> </article> <?php snippet('footer') ?> Модель додає методи — readingTime(), relatedArticles() — прямо в об'єкт сторінки.
Які задачі вирішує Kirby краще за інші CMS?
| Критерій | Kirby | WordPress | Drupal |
|---|---|---|---|
| Залежність від БД | Немає | MySQL | MySQL/PostgreSQL |
| Час генерації сторінки | ~2 мс (кеш) | ~200–500 мс | ~300–800 мс |
| Кастомізація полів | YAML-схеми | Плагіни + ACF | Сутності |
| Headless з коробки | Так | Через плагін | Через модуль |
| Складність підтримки | Низька (файли) | Середня (БД + плагіни) | Висока |
Для проєктів, де важливі простота хостингу, швидкість завантаження та повний контроль над даними, Kirby виграє.
Як налаштувати кастомні поля в Panel?
У панелі Kirby кожне поле визначається в YAML-файлі blueprint. Наприклад, для додавання тегів достатньо вказати тип tags. Поля можна групувати в колонки, задавати валідацію та залежності. Це дає повний контроль без зайвого коду.
Чому Kirby швидший за традиційні CMS?
Відсутність бази даних виключає затримки на запити та блокування. Кеш сторінок зберігається у файлах, і при повторному запиті PHP не запускається. Це дає стабільний час відповіді навіть при пікових навантаженнях. Наприклад, на проєкті з 30+ сторінками середній час генерації сторінки в кеші — менше 2 мс.
Міграція на Kirby не вимагає спеціальних дій: всі дані зберігаються у файлах. Достатньо скопіювати вміст папки content/ на новий сервер або в репозиторій. Жодних дампів SQL чи схем.
Процес розробки
- Аналітика — вивчаємо контент, структуру, user flow. Фіксуємо типи сторінок та їх поля.
- Проектування — створюємо Blackprint: blueprints, маршрути, моделі. Визначаємо зв'язки сторінок.
- Дизайн і верстка — адаптивна, з урахуванням продуктивності (LCP < 2.5 с).
- Розробка шаблонів — пишемо PHP-шаблони, контролери, власні плагіни.
- Наповнення та тестування — редактор наповнює контент, перевіряємо відображення на всіх пристроях.
- Деплой та оптимізація — налаштовуємо кеш, CDN (Cloudflare), включаємо стиснення Brotli.
Що входить в роботу
- Архітектура blueprints та структура контенту.
- Розробка кастомних шаблонів і плагінів.
- Інтеграція із зовнішніми сервісами (API, форми, пошук).
- Налаштування продуктивності та кешування.
- Передача доступу до Panel та документація з управління.
- Гарантія 3 місяці на код.
Терміни та вартість
| Тип проєкту | Термін |
|---|---|
| Лендінг / портфоліо (до 5 сторінок) | 1–2 тижні |
| Корпоративний сайт (5–10 сторінок) | 2–3 тижні |
| Блог з кастомними полями | 2–4 тижні |
| Каталог з фільтрацією + search | 3–5 тижнів |
| Headless + React frontend | 4–8 тижнів |
Вартість розраховується індивідуально після брифу.
Готові до старту? Зв'яжіться з нами — обговоримо ваш проєкт і підберемо оптимальне рішення на Kirby. Отримайте консультацію вже сьогодні.







