*это всего лишь мое скромное мнение, но у меня есть аргументы.



Сейчас, как и всегда, бизнес стремится охватить, как можно большую аудиторию. В годы нашей жестокой диджитал эры любой девайс является каналом взаимодействия между бизнесом и клиентом. И т.к. типов девайсов великое множество, то бизнесу приходится разрабатывать и поддерживать солянку клиент-серверных приложений. Для каждого такого приложения требуется персонифицированный контент, которым нужно управлять. Эта ситуация и привела к рождению Headless CMS.


Headless CMS — это система управления контентом, которая отделяет слой данных от слоя отображения. При помощи такой системы можно управлять содержимым любых клиентов в клиент-сервер архитектуре: веб-сайт, мобильное приложение, устройство Internet of Things. Централизируя и распространяя содержимое в универсальном формате, система дает возможность управлять всеми платформами из одного интерфейса и гибко персонифицировать контент для каждой из них.



Существует множество реализаций этой концепции, полный список здесь.


Скорее всего, вам понравится идея Headless CMS. Почему?


  • Headless CMS отвечает только за управление «чистым» контентом, а ответственность за представление и frontend логику несут разработчики, которые используют контент, подгоняя его под тип площадки. Контент публикуется с помощью Headless CMS и становится доступным для любого приложения через API. Такая архитектура стремительно набирает популярность. Разработчикам она дает большое пространство для творчества, а владельцам позволяет управлять контентом, обновлять дизайн, расширять функциональность и изменять логику приложений.
  • Главная ценность Headless CMS — возможность работы над контентом для разных платформ в одном интерфейсе. Сайт, мобильные приложения, IoT и т.д. — контент для любой из площадок распространяется в универсальном формате, это и дает свободу разработчикам в выборе технологий и удобство управления для владельцев.
  • Разработчикам не требуется обладать специальными знаниями для работы с конкретной Headless CMS. Конечно, нужно вникнуть в API и разобраться с интерфейсом, но не в масштабе традиционной CMS.
  • В отличие от традиционной CMS, в headless архитектуре клиент-серверное приложение не связано с кастомным кодом CMS. Это дает возможность мигрировать с одной конкретной Headless CMS на другую с минимальными издержками.
  • Headless CMS защищена с точки зрения безопасности. Ее можно скрыть архитектурно так, что клиент в клиент-серверном приложении не сможет обращаться к ней напрямую. Поэтому атака на систему извне будет невозможна.


Но, как и во всем, при использовании Headless CMS возникают свои сложности.


  • Организовывать контент в удобные структуры данных для разных платформ может быть сложной задачей. И разработчики должны этому научиться.
  • Поскольку Headless CMS не работает со слоем отображения, разработчикам придется самостоятельно реализовывать frontend логику.
  • Нельзя редактировать контент в режиме предпросмотра. Т.е. сначала нужно внести изменения в «чистый» контент, а затем проверить, как он отобразилися на всех платформах.

Headless CMS отлично подходит, если вы создаете:


  • Single-Page Applications (SPA): React, Angular, Ember или Vue;
  • Динамичные приложения: JavaScript, HTML и CSS;
  • Мобильные приложения: Android, iOS, React Native, Flutter, NativeScript;
  • Приложения для IoT;
  • Статичные сайты на основе сайт генераторов: Jekyll, Hexo, Hugo;


UPDATE: как справедливо заметили в комментариях, это не пиар какой-либо конкретной CMS. Это определение концепции. Конкретные реализации можно посмотреть здесь.

Комментарии (15)


  1. Temmokan
    11.02.2019 08:50

    Так и не понял, «о чём это». Прочитал "Headless CMS" — так там хоть ссылки на дальнейшие ресурсы по теме есть. Что у вас, кроме формального определения?


    1. iit
      11.02.2019 09:05

      Например вот тот же ghost.


      Мы тоже задумывались над тем чтобы прикрутить этот движок и этот подход.


      Пока остановились на том что на то чтобы запилить кросс-авторизацию с основным сайтом и целую кучу других фичей это достаточно много работы 2,5 человека с опытом в js это не вытянут, а если и вытянут то встанут другие проекты которые не менее важны.


      А так подход прикольный — один backend и новости будут и в SPA и Приложении и в телеграм канале и в facebook старнице


      1. Temmokan
        11.02.2019 09:13

        Насколько понимаю тему, это всё новости даже не вчерашние, а без конкретики (как в исходной статье) — так и вовсе ни о чём.


  1. AlexTest
    11.02.2019 09:18

    А как там дело обстоит с локализациями?
    Есть возможность отдавть переводы и другие, меняющиеся в зависимости от локали, данные для одного и того же контента (даты, цены и т.п.) на основе языковых (или гео) параметров запроса API?


    1. mishast
      11.02.2019 10:39

      Так же как и в обычных CMS.
      Зависит от конкретной модели.


      1. AlexTest
        11.02.2019 10:55

        Как и zikkuratvk только сейчас понял, что это не о чем-то конкретном пост, а про вообще все «Headless CMS».


  1. UnnamedUA
    11.02.2019 09:43

    Нашел вот такой продукт, на мой взгляд самая полная Headless CMS: directus.io
    Но все сейчас движется в сторону GraphQL, и тут «выигрывает» hasura.io
    Но к ней нужно описывать админку все равно.


    1. UnnamedUA
      11.02.2019 09:47

      Кстати, интересная идея, генерация react-admin приложения по схемам, вычитанным из точки.


      1. anttoshka
        11.02.2019 11:41

        Такая идея используется у api platform — api-platform.com/docs/client-generator


        1. UnnamedUA
          11.02.2019 12:00

          Да, знаю, но там это мало функционально по сравнению с github.com/marmelab/react-admin


          1. anttoshka
            11.02.2019 12:04

            Так там есть генерация компонент и для github.com/marmelab/react-admin


  1. zikkuratvk
    11.02.2019 10:04

    Только в комментариях понял, что это не пиар какой либо cms. А просто одно гигантское определение. По сути традиционные cms по большей части уже давно эти функции предлагают. А современные поделки не менее громоздкие и тормозные.


  1. mishast
    11.02.2019 10:50

    Недавно тоже узнал и пощупал Headless CMS, был приятно удивлен.
    Приятность состояла в том, что Headless CMS это «сел и поехал», т.е уже все сделано, и сделано лучше, чем если бы вы писали сами. Если же использовать готовую CMS, то вы привязываетесь к стеку технологий и, как правило, они довольно жирные, и в них полно legacy-запутанного кода.
    Сейчас еще модно использовать static site generator типа Gatsby и Headless CMS. В результате у вас получается lightweight сайт, который состоит только из шаблончиков, без всякой кучи кода. И статические сайты, очевидно, не требовательны к ресурсам.
    Но поводу будущего, есть сомнения.
    Headless CMS по сути ничем не отличается от обычных CMS, кроме того, что она «отдельная».
    А по поводу того, что контент можно править не только для сайтов, но и для модильных устройств и IOT: в 99% CMS используется для веб-сайта.


  1. catanfa
    11.02.2019 15:22

    Многие "не headless" CMS имеют богатый API, которым могут пользоваться любые приложения. Там чем же тогда headless CMS отличается от Wordpress + Wordpress REST API ?


  1. szelga
    11.02.2019 15:44

    идея-то нравится. на практике же, по сути, без WYSIWYG (как я понимаю), оно не взлетит.