Наличие динамического контента в приложении дает множество преимуществ, поскольку это помогает составлять персональные предложения клиентам и выделять актуальную информацию. Следовательно, организации необходимо иметь комплексную систему управления контентом (CMS) или панель администратора, которая поможет им централизованно управлять данными приложения.
На рынке веб-разработки самыми популярными решениями считаются классические CMS, вроде WordPress, 1C-Bitrix, Joomla и др. Они предоставляют полностью готовый к работе сайт с готовой административной панелью и набором базовых функций. И они отлично подходят для тех, кому достаточно шаблонного решения. Но есть немало организаций, которых по тем или иным причинам не устраивает штатный функционал классических CMS. Чаще всего это отсутствие возможности создать индивидуальный дизайн. В таких ситуациях на помощь приходят headless или безголовые CMS. Подробнее в нашем материале вы можете ознакомиться с возможностями классических и headless CMS.
Что такое headless CMS
Логически, термин «безголовый» означает отсутствие передней части. Точно так же Headless CMS не имеет внешнего интерфейса. У него есть API, серверная часть и база данных, которая используется для отображения контента в реальном времени.
При использовании безголовой CMS мы в первую очередь занимаемся хранением и поиском контента, а не его представлением. Другими словами, безголовая CMS дает вам возможность управлять данными с помощью внутренних инструментов и извлекать их с помощью API.
Headless CMS сравнима с репозиторием контента, к которому можно получить доступ через REST API или GraphQL API. В результате контент в CMS больше не привязан к определенному шаблону или уровню доставки. Вместо этого его можно свободно передавать через API на любой канал или гаджет.
Архитектура Headless CMS позволяет легко передавать данные в любую часть сети по запросу, сделанному в репозиторий через API. Таким образом, компаниям становится проще публиковать свой контент по разным каналам, поскольку он в основном сосредоточен на хранении и поиске контента.
В данной статье мы сравним 2 популярные headless CMS: Strapi и Sanity.
Strapi
Strapi — это headless CMS с открытым исходным кодом, написанная на Node.js. Вся её кодовая база доступна на GitHub, поэтому во многом её развитие происходит за счет поддержки сообщества. Основная цель Strapi CMS — создать надежный API и предоставить простую панель администратора.
В течение нескольких минут после установки Strapi предоставляет GraphQL или RESTful API для разработчиков. Важно помнить, что классическая Strapi — это самодостаточная система управления контентом, а не SaaS. Хостинговая версия Strapi Cloud официально вышла 1 марта 2023г, поэтому она пока ещё достаточно сырая.
Пользователи иногда сталкивались с проблемами интерфейса перетаскивания и типов данных массива, несмотря на то, что Strapi CMS может упростить управление сеансами пользователей и приложениями.
Разработка на Strapi открывает широкие возможности для настройки системы под конкретные нужды проекта. Движок позволяет определить нужный тип контента благодаря функции указания категории такой, как текст, дата, мультимедиа или пароль. Кроме того, вы можете изменить код API, чтобы сделать его еще более уникальным.
Strapi также имеет интеграцию с фреймворком Node.js, документацию и довольно обширную экосистему плагинов.
Моделирование контента в Strapi CMS
Strapi CMS предлагает различные конструкции для моделирования объектов системы. Существуют две категории моделей:
- Типы контента: обычные представления объектов в системе, такие как сообщения, теги и т. д. Они могут быть как одиночные (например, простая страница), так и коллекциями, то есть включают в себя несколько экземпляров одного типа (например, статьи блога).
- Компоненты: движок представляет уникальный набор данных. Например, компонент карты, содержащий изображение, заголовок и дополнительные поля.
Преимущества Strapi
- Интегрированная поддержка API GraphQL и RESTful.
- CMS с открытым исходным кодом и интерфейс полностью основаны на JavaScript.
- Хорошая, полностью настраиваемая админ-панель для редакторов контента
- Отличная экосистема плагинов
Недостатки Strapi
- В настоящее время поддерживаются только рабочие процессы «Черновик» и «Публикация».
- Не все виды контента можно легко удалить. Файлы моделей приходится удалять вручную, а сервер перезапускать.
- Не поддерживает глубокую вложенность компонентов.
Sanity
Еще одна популярная headless CMS — Sanity. Это проприетарное SaaS-приложение для управления контентом. Sanity контролирует уровень хранения и предлагает настраиваемый язык запросов GROQ для поиска. Работа с контентом осуществляется через платформу Sanity Studio.
У Sanity есть бесплатная версия, но она содержит в себе ограничения. Например, в ней нет возможности хранения истории версий и записей событий, а также доступно только 3 пользователя. Платные тарифы начинаются от $99/мес. за проект.
Коробочная версия содержит в себе все необходимое для работы: подключаемые плагины, предварительный просмотр в реальном времени, функционал совместной работы в режиме реального времени и редактор с открытым исходным кодом, созданный с помощью JavaScript и React, который разработчики могут изменять под необходимые задачи.
Моделирование контента в Sanity CMS
Процедура создания модели в Sanity требует ручного создания файлов JavaScript, описывающих модели в вашей системе. Движок поддерживает различные типы схем.
Два основных типа, которые используются чаще всего:
Документ : стандартная парадигма для представления системных вещей, таких как сообщения, теги и т. д.
Объект : представляет уникальный набор информации (например, компонент карты с изображением, заголовком и другими данными).
Преимущества Sanity
- Широкие возможности настройки;
- Поддержка React для возможности кастомизации интерфейса;
- Функционал предварительного просмотра;
- Возможность многопользовательского редактирования контента в режиме реального времени;
- Персонализированный документооборот;
- В корпоративном плане доступен настраиваемый контроль доступа;
Недостатки Sanity
- Стоимость лицензии довольно дорогая: для организации с 20 пользователями она стоит почти $1000 в месяц;
- Чтобы использовать Sanity в полной мере, необходимы технические знания для первоначальной настройки продукта;
- Ограниченные возможности для настройки бэкенда.
Strapi vs Sanity: краткий обзор
Sanity | Strapi |
---|---|
Облачное приложение | Приложение размещается на собственных серверах |
Бесплатная версия очень сильно ограничена. Для полноценной работы с контентом придется приобретать платные тарифы | Бесплатная версия не имеет ограничений. Платные тарифы дают только некоторые дополнительные функции, например, официальную поддержку разработчиков или доступ к журналам аудита |
Имеет возможность предварительного просмотра и совместного редактирования контента | Такие возможности доступны только при доработке системы с помощью плагинов |
Менее гибкий, так как практически не позволяет редактировать бэкенд-часть | Более гибкий, так как может дорабатываться с помощью Node.js и Koa.js |
Подходит для крупных и сложных проектов, требующих гибкой и структурированной модели данных и функций совместной работы в реальном времени
| Больше подходит для приложений, требующих быстрой установки и легкой настройки |
Заключение
Прежде чем сделать выбор между Strapi и Sanity, организациям крайне важно понять свои потребности. Любой инструмент подбирается исходя из поставленных задач. В процессе аналитики важно изучить, есть ли нужные функции в базовой версии платформы или в плагинах, а также проверить, имеются ли ограничения для вашего проекта и типа данных. Команда Work Solutions имеет богатый опыт работы с headless CMS и поможет вам подобрать оптимальный стек.