Skip to main content
Назад к блогу
3 мин чтения

Выбор CMS для Next.js-сайта: Sanity, Payload или чистый MDX?

Я шипил Next.js-проекты со всеми тремя. Когда каждый из них — правильный выбор, что ломается на масштабе, и почему я по умолчанию беру чистый MDX для большинства solo-dev сайтов.

next.js

Каждый Next.js-проект достигает момента «где хранить контент?». Ответ зависит от того, кто редактирует, как часто, и сколько контроля нужно разработчику.

Я шипил продакшн-проекты с Sanity, Payload CMS и чистыми MDX-файлами. Вот честная таблица трейдофов.

Три варианта

Чистый MDX (то, что использует этот сайт)

Контент живёт как .mdx файлы в репозитории. Разработчики редактируют напрямую. Нет CMS-дашборда, нет API, нет базы данных.

Когда работает:

Когда ломается:

Реальная стоимость: Ноль. Без хостинга, без API-вызовов, без подписки.

Sanity

Хостинг-headless CMS. Контент живёт в облаке Sanity. Запрашиваешь через GROQ или GraphQL.

Когда работает:

Когда ломается:

Реальная стоимость: Бесплатный тир покрывает большинство маленьких проектов. Платный от $99/месяц. Реальная стоимость — изучение GROQ и схемной DSL Sanity: 4–8 часов на начальный сетап.

Payload CMS

Селф-хостинг, опенсорс headless CMS. Контент в твоей базе данных. Админ-UI автогенерируется из конфига.

Когда работает:

Когда ломается:

Реальная стоимость: Бесплатно (опенсорс). Но платишь за хостинг — VPS ($5–20/месяц). Время сетапа: 6–12 часов.

Таблица сравнения

Чистый MDXSanityPayload
РедакторТолько разработчикКто угодноКто угодно
ХостингНет (файлы в репо)Облако SanityСелф-хостинг
СтоимостьБесплатноБесплатно → $99+/месБесплатно + хостинг
Деплой для контента?ДаНетНет
Git-версионированиеДаНетНет
Владение даннымиПолноеОблако SanityПолное
Время сетапа1 час4–8 часов6–12 часов
Лучше всего дляДев-блоги, доки, портфолиоМаркетинговые сайты, командыData-heavy приложения, GDPR

Моё дерево решений

  1. Я единственный редактор контента? → Чистый MDX.
  2. Клиенту нужно редактировать контент без разработчика? → CMS нужна. Переход к 3.
  3. Нужна резидентность данных (GDPR)? → Payload.
  4. Клиент хочет ноль ops-работы? → Sanity.
  5. Модель контента сложная (50+ типов контента)? → Payload.
  6. Бюджет ограничен, контент простой? → Sanity бесплатный тир.

Гибридный паттерн

Для E7 Platform мы использовали гибрид: данные мероприятий в Postgres (управляются приложением), маркетинговые страницы в MDX (управляются разработчиком). Никакого CMS вообще.

Этот паттерн «приложение-как-CMS» работает, когда контент, нуждающийся в редактировании — это одновременно бизнес-данные.

Что бы я выбрал для типичных сценариев

Персональное портфолио/блог: Чистый MDX. Ты разработчик. Редактируй в VS Code.

Агентский маркетинговый сайт: Sanity бесплатный тир. Клиент может редактировать заголовки и отзывы без звонка тебе.

SaaS с блогом и документацией: Payload, если уже есть сервер. Sanity, если хочешь managed.

E-commerce каталог: Ни один из них — используй встроенные инструменты контента e-commerce платформы.


Строишь Next.js-проект и не уверен, где хранить контент? Напиши — я шипил все три подхода и могу порекомендовать правильный для твоего проекта за один звонок.