Кожен Next.js-проєкт досягає моменту «де зберігати контент?». Відповідь залежить від того, хто редагує, як часто, і скільки контролю потрібно розробнику.
Я шипив продакшн-проєкти з Sanity, Payload CMS і чистими MDX-файлами. Ось чесна таблиця трейдофів.
Три варіанти
Чистий MDX (те, що використовує цей сайт)
Контент живе як .mdx файли в репозиторії. Розробники редагують напряму. Немає CMS-дашборду, немає API, немає бази даних.
Коли працює:
- Розробник — єдиний редактор контенту
- Зміни контенту шиплються з кодом (версіонуються в git)
- Хочеш нуль рантайм-залежностей для контенту
- Блог-пости, документація, портфоліо
Коли ламається:
- Нетехнічні редактори мають публікувати контент
- Оновлення контенту мають відбуватися без деплою
- Потрібен реалтайм-прев'ю для редакторів
Реальна вартість: Нуль. Без хостингу, без API-викликів, без підписки.
Sanity
Хостинг-headless CMS. Контент живе в хмарі Sanity. Запитуєш через GROQ або GraphQL.
Коли працює:
- Нетехнічні редактори потребують візуального редактора
- Оновлення контенту мають бути миттєвими (без деплою)
- Потрібна реалтайм-колаборація між редакторами
- Маркетингові сайти, де контент змінюється щотижня
Коли ламається:
- Ти єдиний редактор (оверхед без користі)
- Хочеш контент версіонований у git
- Бюджет обмежений
Реальна вартість: Безкоштовний тір покриває більшість маленьких проєктів. Платний від $99/місяць. Реальна вартість — вивчення GROQ та схемної DSL Sanity: 4–8 годин на початковий сетап.
Payload CMS
Селф-хостинг, опенсорс headless CMS. Контент у твоїй базі даних. Адмін-UI автогенерується з конфігу.
Коли працює:
- Хочеш CMS, але потрібен повний контроль над даними
- GDPR вимагає резидентності даних (твій сервер, твій регіон)
- Потрібні кастомні воркфлоу, контроль доступу, хуки
Коли ламається:
- Немає інфраструктури для хостингу (Payload потрібен Node.js-сервер)
- Проєкт — простий блог або портфоліо (оверкіл)
Реальна вартість: Безкоштовно (опенсорс). Але платиш за хостинг — VPS ($5–20/місяць). Час сетапу: 6–12 годин.
Таблиця порівняння
| Чистий MDX | Sanity | Payload | |
|---|---|---|---|
| Редактор | Тільки розробник | Хто завгодно | Хто завгодно |
| Хостинг | Немає (файли в репо) | Хмара Sanity | Селф-хостинг |
| Вартість | Безкоштовно | Безкоштовно → $99+/міс | Безкоштовно + хостинг |
| Деплой для контенту? | Так | Ні | Ні |
| Git-версіонування | Так | Ні | Ні |
| Володіння даними | Повне | Хмара Sanity | Повне |
| Час сетапу | 1 година | 4–8 годин | 6–12 годин |
| Найкраще для | Дев-блоги, доки, портфоліо | Маркетингові сайти, команди | Data-heavy застосунки, GDPR |
Моє дерево рішень
- Я єдиний редактор контенту? → Чистий MDX.
- Клієнту потрібно редагувати контент без розробника? → CMS потрібна. Перехід до 3.
- Потрібна резидентність даних (GDPR)? → Payload.
- Клієнт хоче нуль ops-роботи? → Sanity.
- Модель контенту складна (50+ типів контенту)? → Payload.
- Бюджет обмежений, контент простий? → Sanity безкоштовний тір.
Гібридний патерн
Для E7 Platform ми використали гібрид: дані заходів у Postgres (керуються застосунком), маркетингові сторінки в MDX (керуються розробником). Жодного CMS взагалі.
Цей патерн «застосунок-як-CMS» працює, коли контент, що потребує редагування — це водночас бізнес-дані.
Що б я обрав для типових сценаріїв
Персональне портфоліо/блог: Чистий MDX. Ти розробник. Редагуй у VS Code.
Агентський маркетинговий сайт: Sanity безкоштовний тір. Клієнт може редагувати заголовки та відгуки без дзвінка тобі.
SaaS з блогом і документацією: Payload, якщо вже є сервер. Sanity, якщо хочеш managed.
E-commerce каталог: Жоден з них — використовуй вбудовані інструменти контенту e-commerce платформи.
Будуєш Next.js-проєкт і не впевнений, де зберігати контент? Напиши — я шипив усі три підходи і можу порекомендувати правильний для твого проєкту за один дзвінок.