Что такое Headless CMS?

Впервые такой термин я встретил в 2016 году в блоге Дрис Бёйтарта The future of decoupled Drupal.

future-decoupled-drupal-traditional-vs-decoupled.jpg Традиционная («монолитная») и headless архитектуры.

Headless означает, что CMS отдаёт не готовый HTML, а только данные, обычно в JSON формате по средствам REST (или GraphQL). В упомянутой статье приводится синоним headless («безголовая») - decoupled («отделенная»).

Тренды

Тенденция генерации HTML на сервере идёт на спад. Современный тренд заключается в построении пользовательского интерфейса полностью на стороне клиента (в браузере). В этом случае HTML создаётся с помощью JavaScript из JSON данных, полученных с сервера. Такие приложения называются одностраничными. Вторым трендом можно назвать развитие конструкторов сайтов и таких площадок как medium.

how-to-decouple-in-2019-spectrum-diagram.png

Традиционные CMS, такие как Drupal или WordPress, имеют функции ядра для организации headless архитектуры. JSON данные постов lifehacker (работающего на wordpress) выглядят так в сравнении с обычной версией. Существуют специализированные headless cms такие как strapi или ghost.

Причины появления и преимущества:

  • Желание отделить данные от представления так, чтобы команды frontend'a и backend'a могли работать независимо друг от друга.
  • Редакторы и маркетологи ищут решения, которые могут предоставлять контент для растущего списка каналов, включая веб-сайты, одностраничные приложения, нативные приложения для телефонов, сервисные системы, чат-боты, а также носимые устройства (часы, фитнес-браслеты, пульсометры), IoT, устройства с голосовым управлением.

Вместо заключения

На мой взгляд headless cms не заменят традиционные cms. Их роль останется в создании источника данных для различных каналов. Значительная часть рынка традиционных cms будут заменена тильдой, медиумом и соцсетями.


Другие записи из подборки «Исследования CMS»

Похожие записи

Про SOLID во фронтенде

  • принцип единственной ответственности;
  • открытости и закрытости;
  • подстановки Барбары Лисков;
  • разделения интерфейса;
  • инверсии зависимостей.