There have been numerous discussions around headless capabilities supported by the Sitecore platform.

  • What does that even mean?
  • What product offerings from Sitecore support headless capabilities?
  • How are each of the headless features different?
up vote 16 down vote accepted

What is a Headless CMS?

A headless CMS is a back-end only content management system (usually built from the ground up as a content repository) that makes content accessible via an API for display on any device. A Headless CMS focuses entirely on the administrative interface, workflows, collaboration and the organization and delivery of content. It doesn’t concern itself with presentation layers, templates, site structure, or design.

Lars Nielsen wrote more about Sitecore and Headless back in January 2017 here: https://www.sitecore.com/company/blog/356/sitecore-as-a-true-headless-cms-4418

There are 3 headless offerings out of the box in Sitecore 9+:

1) The REST API for the ItemService - This has been available for quite some time (Sitecore 7.5). However it isn't always seen as true Headless due to it not including presentation details or personalisation in the response. Other APIs such as the Item Web API were available in older versions of Sitecore also.

https://doc.sitecore.net/sitecore_experience_platform/developing/developing_with_sitecore/sitecoreservicesclient/the_restful_api_for_the_itemservice

2) JSS - This uses the Layout service (It has it's own individual JSON structure and named configurations) to support Front-end Apps (e.g React, Angular, Vue) whilst maintaining full Sitecore Experience Editor and personalisation features (page-level content composition, multi-variate testing etc). This is seen as a true Headless offering as it returns serialized presentation details as well as support for tracking and analytics. JSS requires a consumption based licence (at time of writing).

What is JSS and how do I get started with building a JSS app?

https://jss.sitecore.net/

3) SXA - SXA also uses the Layout Service (again with it's own individual JSON structure and named configurations). This powers the SXA Components. SXA is available with a perpetual licence (at cost) as well as included in an consumption based licence (at time of writing).

https://doc.sitecore.net/sitecore_experience_accelerator/getting_started_with_sxa

At this point in time if you want true Headless support you must therefore have the JSS or SXA modules included in your Licence in order to have access to the Layout Service.

Sitecore Omni

In Sitecore 9.1 JSS, SXA, Sitecore Services Client API and other services come together in what is being referred to as Sitecore Omni. The idea is that Sitecore Omni Delivers individual experiences connected and disconnected to any platform with the full power of the Sitecore Experience Cloud.

So in 9.1 and beyond JSS and SXA are just part of the headless architecture and there are other elements that play important roles too.

The images below from Mark van Aalst's Symposium 2018 presentation (Sitecore Headless Revolution) describe this in more detail and the architecture.

enter image description here

enter image description here

Other Useful links:

https://www.sitecore.com/en-gb/products/sitecore-experience-platform/wcm/headless-cms

https://jss.sitecore.net/docs/fundamentals/services/layout-service

https://doc.sitecore.net/sitecore_experience_accelerator/data_modeling/json/use_sxa_layout_service_to_model_your_pages_in_json

  • Oops, your update and my answer are right on same time. Though I leave my answer as it is for Laymen reading this question in future. :-) – Amitabh Vyas Oct 25 at 15:43
  • No worries, always good to have more answers. – Adam Seabridge Oct 25 at 15:44
  • 3
    Slight nitpick: The server-side API doesn't need to be RESTful. As an example, one could choose to use GraphQL to access Sitecore data and still be using a "headless" architecture. – zzzzBov Oct 25 at 19:19
  • @zzzzBov I've updated my answer now to remove this reference – Adam Seabridge Oct 25 at 23:46

Extra $0.02:

At its core, headless CMS is the decoupling of rendering from content repository. Turning the CMS into a part of a more general overarching architecture where many other sources can also have input into the rendering of a site (i.e. PIMs, CRMs, REST services, etc).

This decoupling frees implementers from having to worry as much about the technology choices of the CMS, as well as provides greater flexibility compared to a CMS that tightly couples rendering and content data - the implementer truly owns the architecture of the rendering environment, with much less influence from the CMS.

Headless is more or less the CMS response to modern architecture trends where systems are becoming much more distributed and scaled.

To extend further Adam's answers and shedding more light on your first question:

What headless even mean in Sitecore Context?

In a very layman's term Headless CMS means decoupling the back-end (The Content Repository) and front-end (The Website) of a Content Management System.

To extent the usability of a CMS its not always mandatory to use both aspects of it. Rather there are many scenarios where just exposing the Backend to be utilized by multiple channels to achieve Ominchannel Rediness and reduce the Time to Market. This can be done using RESTful APIs, Microservice Architecture etc.

This Wiki explains the difference between Coupled / Decoupled / Headless CMS precisely.

Like every other CMS, Sitecore is also built with a back end (Databases, Services) and front end (Sitecore IDE). Hence in Sitecore there are 3 possible ways to go Headless and expose just the back end as described by Adam in his excellent answer i.e. REST APIs, JSS and SXA.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.