Type to SearchView Tags

Understanding How Adobe AEM Delivers Headless Content
Digvijay Singh Tomar AEM Technical Architect, Digital & Analytics | March 5, 2019

Headless content allows content managers to manage and reuse content from single repository, where it can be Adobe AEM CRX or OAK repository. Headless content can be delivered to multiple channels including website, mobile, tablet, internet of things devices or smart watches etc. Headless content which can be called in form JSON using APIs to consume in different type of application listed below:

  • Single page application
  • Mobile applications
  • Custom applications

Headless content provides following benefits when used in Adobe AEM.

  • Content created as headless within Adobe Experience Manager (AEM) can be delivered independent of presentation layer to different channels.
  • Content can be pushed easily to any medium based on defined category for ex. /content/experience-fragments/facebook/mobile-content or /content/experience-fragments/watches/mobile-content.
  • Content elements can be added, removed or modified independent of having impact on final content rendering to any channel.

Content created as headless within AEM can be delivered independent of presentation layer to different channels.

Adobe Experience Manager (AEM) comes with powerful API known as DefaultGetServlet which lies under Apache Sling web framework to use Adobe Experience Manager (AEM) as headless content management system. This servlet allow content administrators or content authors to call this API passing number 1,2 or 3 and so on to call multiple level content or .infinity or .-1 to get all content in recursive manner.

Adobe AEM provides different powerful tool to create headless content management system listed below:

  • Experience Fragments
  • Fluid Experiences
  • Content fragment models

Adobe AEM introduced content fragment models with service pack which provides ability to structure multiple content types in fragment models; including text, numerical data, date and time, Boolean, enumerated lists, and content references. Models can be exposed in form of JSON to consumed in different channel as headless content.

Here are steps to create content fragment models.

Enable Content Fragment Models Configuration

This is required to have mapping enabled on folder under which custom created content fragment models templates will be available to create content fragments.

  1. Navigate to Tools > General > Configuration Browser
  2. Use Create button to create configuration
  3. Provide Title and select Content Fragment Models and then click on Create button in popup window.

    Click here for Image.

Create Content Fragment Model Structure

This will create content fragments models or template which will be base for creating different content fragment models for headless content.

  1. Navigate to Tool > Assets > Content Fragment Models
  2. Open HCL-CFM-Configuration created in configuration step
  3. Use create button to create model
  4. Provide Model Title and description and click on Create button. This will create empty models.

    Click here for Image.

    Click here for Image.

Define Content Fragment Model Structure

  1. Navigate to Tool > Assets > Content Fragment Models
  2. Navigate to HCL-CFM-Configuration holding empty content fragment models created in previous step
  3. Open Articles model to configure, add required fields within it.

    Click here for Image.

  4. Drag & Drop required fields from right side to panel appearing on left side.

    Click here for Image.

  5. Publish content fragment model to make it available with assets folder to create different content fragments to deliver headless content.

    Click here for Image.

Create Articles Content Fragments

In this step, we will create content fragments which can be access as JSON to deliver as headless content management systems to different channels.

  1. Navigate to Assets
  2. Use Create button to create folder which will hold all your content fragment
  3. Open folder properties and go to Cloud Services tab
  4. Select cloud configuration to make all content fragment structure template available under this folder to create different Article or News content fragments.

    Click here for Image.

    Click here for Image.

  5. Save configuration using Save & Close button
  6. Open folder created in previous step.
  7. Use Create button to create content fragments within this folder. You will have content fragments template (Article, News) along with OOTB Simple Fragments template.

    Click here for Image.

  8. Select Articles template and provide Title and Name to your fragment.
  9. Open created fragment to fill content and then use Save button to save this in repository.

    Click here for Image.

  10. Once done creating all content fragments; all will appear within folder created by you.

    Click here for Image.


As described in this blog using DefaultGetServlet content can be exposed in form of json to consume it within different channel. This is how it can be accessed. Custom JSON exporter or Sling Servlet can also be created to have content fragments model’s data in required JSON format.