Aem headless. AEM Headless Client for JavaScript Installation Usage Create AEMHeadless client Use AEMHeadless client Promise syntax: Within async/await: Pagination: Authorization API Reference Contributing LicensingFrom the command line navigate into the aem-guides-wknd-spa. Aem headless

 
AEM Headless Client for JavaScript Installation Usage Create AEMHeadless client Use AEMHeadless client Promise syntax: Within async/await: Pagination: Authorization API Reference Contributing LicensingFrom the command line navigate into the aem-guides-wknd-spaAem headless  Learn how the Universal Editor enables what-you-see-is-what-you-get (WYSIWYG) editing of any headless and headful experience

Headless Developer Journey. The main characteristics of a traditional CMS are: Authors generate content with WYSIWYG editors and use predefined templates. Or in a more generic sense, decoupling the front end from the back end of your service stack. JavaScript Object Notation ( JSON ) is strictly a text-based format used to represent structured data and is based on JavaScript object syntax. Once we have the Content Fragment data, we’ll integrate it into your React app. Get to know how to organize your headless content and how AEM's translation tools work. A Content author uses the AEM Author service to create, edit, and manage content. AEM is a cloud-native solution, providing automated product updates to ensure teams always have the latest features and enhancements. js (JavaScript) AEM Headless SDK for Java™. References to other content, such as images or other Content Fragments can be dynamically inserted in-line within the flow of the text. We’ll cover retrieving Content Fragment data from AEM’s GraphQL APIs and displaying it in the React app. “Adobe pushes the boundaries of content management and headless innovations. AEM, as a headless CMS, has become popular among enterprises. . Dynamic Media is now part of AEM Assets and works the same way. How to organize and AEM Headless project. This persisted query drives the initial view’s adventure list. An end. Architecture of Headless AEM. One of the major goals for AEM as a Cloud Service is to allow experienced customers (having used AEM either on-premise or in the context of the Adobe Managed Services) to migrate to AEM as a Cloud Service as. This end-to-end tutorial continues the basic tutorial that covered the fundamentals of Adobe Experience Manager (AEM) Headless and GraphQL. A Mappings Object is a JavaScript map that maps the field types defined in the Specification to its respective React Component. To explore how to use the. The AEM SDK is used to build and deploy custom code. React environment file React uses custom environment files , or . js application is as follows: The Node. The build will take around a minute and should end with the following message:With Adobe Experience Manager (AEM) as a Cloud Service, Content Fragments lets you design, create, curate, and publish page-independent content. Content Models serve as a basis for Content. AEM Component Development: This stage involves creating dialogs in XML and developing client libraries. The app uses two persisted queries: wknd/adventures-all persisted query, which returns all adventures in AEM with an abridged set of properties. First, we’re going to navigate to Tools, then. The preview experience links the AEM Author’s Content Fragment editor with your custom app (addressable via HTTP), allowing for a deep link into the app that renders the Content Fragment being previewed. This decoupling allows for more dynamic and flexible content delivery, enabling organizations to adapt quickly to changing technologies and user demands. Content created is exposed as JSON response through the CaaS feature. Session SchedulingDate Speakers Build your first React app with Headless Experience Manager 9th November, 2022 | 10:00-10:45 PST OR 18:00-18:45 UTC OR 19:00-19:45 CET Stephan R. You really don't invest much in the FE design in AEM , as the content is delivered only as JSON to be consumed by your services. The multi-line text field is a data type of Content Fragments that enables authors to create rich text content. This persisted query drives the initial view’s adventure list. Building a React JS app in a pure Headless scenario. js (JavaScript) AEM Headless SDK for. They allow you to prepare content ready for use in multiple locations/over multiple channels, ideal for headless delivery. Get ready for Adobe Summit. GraphQL API View more on this topic. Once we have the Content Fragment data, we’ll integrate it into your React app. Get to know how to organize your headless content and how AEM’s translation tools work. FTS - Forest Technology Systems, Victoria, British Columbia. From the command line navigate into the aem-guides-wknd-spa. AEM exposes a variety of HTTP endpoints that can be interacted with in a headless manner, from GraphQL, AEM Content Services to Assets HTTP API. Prerequisites. AEM Headless tutorials - If you prefer to learn by doing and have existing knowledge of AEM, take our hands-on tutorials organized by API and framework, that explore creating and using applications built on AEM Headless. AEM Headless supports management of image assets and their optimized delivery. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. Tutorials by framework. The application uses two persisted queries: wknd/adventures-all persisted query, which returns all adventures in AEM with an abridged set of properties. Created for: Intermediate. The AEM translation management system uses these folders to define the. Learn the Content Modeling Basics for Headless with AEM; Learn about Creating Content Fragment Models in AEM; Headless Translation Journey. AEM’s SPA Editor provides authors the ability to edit content for a Single Page Application or SPA. . It is helpful for scalability, usability, and permission management of your content. See full list on experienceleague. Contribute to adobe/aem-headless-client-nodejs development by creating an account on GitHub. The application uses two persisted queries: wknd/adventures-all persisted query, which returns all adventures in AEM with an abridged set of properties. The benefit of this approach is cacheability. From the AEM Start screen, navigate to Tools > General > GraphQL Query Editor. This video series covers the delivery options for using Content Fragments. The two only interact through API calls. March 25–28, 2024 — Las Vegas and online. Navigate to the folder you created previously. The tutorial covers the end to end creation of the SPA and the. Understand headless translation in AEM; Get started with AEM headless translation; Learn about headless content and how to translate in AEM; Configure translation connector;. Tap or click Create -> Content Fragment. In the previous document of the AEM headless journey, Path to Your First Experience Using AEM Headless, you then learned the steps needed to implement your first project. For publishing from AEM Sites using Edge Delivery Services, click here. Here, the AEM will act as a mere repository, exposing content as a service in REST/ GraphQL endpoints. 5. Regardless of which model you choose to implement for SSR,, you need to specify to AEM how to access this remote rendering service. AEM Headless Client for Node. AEM Headless deployments. Launches in AEM Sites provide a way to create, author, and review web site content for future release. Accelerates project development with AEM Core Components, AEM Venia reference storefront, AEM Project Archetype, and integration patterns for PWAs (Headless content & commerce). The AEM Headless SDK is available for various platforms: AEM Headless SDK for client-side browsers (JavaScript) AEM Headless SDK for server-side/Node. The most common deployment pattern with AEM headless applications is to have the production version of the application connect to an AEM Publish service. We set up headless content delivery and headless content management by using AEM’s GraphQL to deliver and Assets API to manage content (via Content Fragments). Adobe first introduced its headless capabilities in Adobe Experience Manager at the Adobe Developers Live conference for digital experience developers in 2021 and customers have been able to leverage GraphQL and other API connectivity ever. These are defined by information architects in the AEM Content Fragment Model editor. 3 and has been continuously improved since then, it mainly consists of the following components: Content Services: Provides the functionality to expose user-defined content through a HTTP API in JSON format. Contribute to adobe/aem-headless-client-java development by creating an account on GitHub. The following configurations are examples. Developer. Following AEM Headless best practices, the React application uses AEM GraphQL persisted queries to query adventure data. This pattern can be used in any SPA and Widget approach but. . Let's discuss some of the headless CMS capabilities AEM offers: #1. This guide focuses on the full headless implementation model of AEM. This approach enables the CMS to live up to the promise of managing content in place and publishing anywhere. Using a REST API introduce challenges: Design Model Advantages Disadvantages; AEM is used as a headless CMS without using the SPA Editor SDK framework. AEM’s GraphQL queries can be written to provide URLs to images based on where the image is referenced from. As an AEM Solution Consultant, you will lead engagements with our largest and most innovative customers. Developer. ) that is curated by the WKND team. adobe. Slider and richtext are two sample custom components available in the starter app. Understand how it can help content authors deliver exceptional experiences, increase their content velocity, and how. AEM is considered a Hybrid CMS. Let’s explore. In this part of the AEM Headless Developer Journey, you can learn how to use GraphQL queries to access the content of your Content Fragments and feed it to your app (headless delivery). Scenario 2: Hybrid headless commerce AEM. This tutorial explores how AEM Content Services can be used to power the experience of an Mobile App that displays Event information (music, performance, art, etc. Each environment contains different personas and with. supports headless CMS scenarios where external client applications render experiences using content managed in AEM. You will also learn how to use out of the box AEM React Core. This means you can realize headless delivery of structured. react project directory. This approach enables the CMS to live up to the promise of managing content in place and publishing anywhere. The examples below use small subsets of results (four records per request) to demonstrate the techniques. This guide uses the AEM as a Cloud Service SDK. Next, navigate to AEM to verify the updates and allow the OpenWeather component to be added to the SPA. 5 is a flexible tool for the headless implementation model by offering three powerful services: Content Models. Adobe Experience Manager (AEM) Content Translation - Deep Dive (Part1) The website translation is the process of taking your website content in its original language (e. Learn how AEM can go beyond a pure headless use case, with options for in-context authoring and experience management. Content Fragments used in AEM Headless content modeling, often reference image assets intended for display in the headless experience. When using the AEM React Editable Components with a SPA Editor-based React app, the AEM ModelManager SDK, as the SDK: Retrieves content from AEM. Understand how the source code for a Single Page Application (SPA) written in React can be integrated with an Adobe Experience Manager (AEM) Project. The AEM Headless quick setup gets you hands-on with AEM Headless using content from the WKND Site sample project, and a React App that consumes the content over AEM Headless GraphQL APIs. The full code can be found on GitHub. Start here for a guided journey through the powerful and flexible headless features of AEM, their capabilities, and. Headful and Headless in AEM; Headless Experience Management. AEM Headless Developer Portal; Overview; Quick setup. Often, these headless consumers may. Adobe Experience Manager Sites is the industry-leading content management system that empowers any marketer or developer to create high-performance pages across any digital property — from web to mobile to apps. A CORS configuration is needed to enable access to the GraphQL endpoint. Experience Fragments are fully laid out. html extension for . By utilizing the AEM Headless SDK, you can easily query and fetch Content Fragment data using GraphQL. A well-defined content structure is key to the success of AEM headless implementation. env files, stored in the root of the project to define build-specific values. There is a partner connector available on the marketplace. Command line parameters define: The AEM as a Cloud Service Author service host. 5 and Headless. The Content author and other. Contribute to adobe/aem-headless-client-java development by creating an account on GitHub. Content Models are structured representation of content. React - Headless. Last update: 2023-06-27. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. Checkout Getting Started with AEM Headless - GraphQL. Headless implementations enable delivery of experiences across platforms and channels at scale. AEM. Next, explore the power of AEM’s GraphQL API using the built-in GraphiQL IDE. This allows developers to place SPA Editor-compatible components into the SPA views, and allow users to author the components’ content in AEM SPA Editor. Abstract. Next page. Looking for a hands-on tutorial? Check out Getting Started with AEM Headless and GraphQL end-to-end tutorial illustrating how to build-out and expose content using AEM’s GraphQL APIs and consumed by an external app, in a headless CMS scenario. The AEM translation management system uses these folders to define the. An individual journey is defined for a specific persona or audience, but also defines additional personas with which the reader interacts. The current implementation of the Assets HTTP API is based on the REST architectural style and enables you to access content (stored in AEM) via CRUD operations (Create, Read, Update, Delete). js (JavaScript) AEM Headless SDK for. This journey is designed for the translation specialist persona, often referred to as the Translation Project Manager or TPM. Maybe there are attributes available in cookies, session storage, or local storage (or any number of other places). Content authors cannot use AEM's content authoring experience. - AEM Headless CMS integrates easily with other tools and platforms giving exceptional customer experiences throughout the execution cycle. Option 1: Centralize the logic and broadcast to the necessary components for example, by using a util class as a pure object-oriented solution. Filtering Persisted queries. Merging CF Models objects/requests to make single API. Tap the Technical Accounts tab. Topics: Content Fragments View more on this topic. How to create. Authorization requirements. The latest version of AEM and AEM WCM Core Components is always recommended. 1. AEM as a Cloud Service lets you capitalize on the AEM applications in a cloud-native way, so that you can: Scale your DevOps efforts with Cloud Manager: CI/CD framework, autoscaling, API connectivity, flexible deployment modes, code quality gates, service delivery transparency, and guided updates. This journey lays out the requirements, steps, and approach to translate headless content in AEM. During the creation of the launch the production web site can continue to evolve and change day to day as it normally would. supports headless CMS scenarios where external client applications render experiences using content managed in AEM. TIP. AEM Headless Client for JavaScript Installation Usage Create AEMHeadless client Use AEMHeadless client Promise syntax: Within async/await: Pagination: Authorization API Reference Contributing LicensingAEM GraphQL API provides a powerful query language to expose data of Content Fragments to JavaScript clients in Headless CMS implementations. Instead, you control the presentation completely with your own code in any programming language. An end-to-end tutorial illustrating how to build-out and expose content using AEM and consumed by a native mobile app, in a headless CMS scenario. Using the AEM JSON exporter, you can deliver the contents of any AEM page in JSON data model format. A well-defined content structure is key to the success of AEM headless implementation. Understand how the source code for a Single Page Application (SPA) written in Angular can be integrated with an Adobe Experience Manager (AEM) Project. Watch Adobe’s story. AEM’s GraphQL queries can be written to provide URLs to images based on where the image is referenced from. In a headless setup, the presentation system (the head) is decoupled from the content management (the tail). The multi-line text field is a data type of Content Fragments that enables authors to create rich text content. The following are required to follow this quick setup: AEM as a Cloud Service Sandbox environment. react project directory. Once uploaded, it appears in the list of available templates. To tag content and use the AEM Tagging infrastructure : The tag must exist as a node of type cq:Tag under the taxonomy root node. AEM Headless Translation Journey - This documentation journey gives you a broad understanding of headless technology, how AEM. Headless AEM addresses these limitations by embracing a decoupled and API-driven approach, empowering organizations to adapt quickly to changing customer needs and technological advancements. Wrap the React app with an initialized ModelManager, and render the React app. This endpoint can use all Content Fragment Models from all Sites configurations (defined in the Configuration Browser ). This persisted query drives the initial view’s adventure list. They can also be used together with Multi-Site Management to. Last update: 2023-06-27. Following AEM Headless best practices, the iOS application uses AEM GraphQL persisted queries to query adventure data. Run the following command to build and deploy the entire project to AEM: $ mvn clean install -PautoInstallSinglePackage. In this part of the AEM Headless Developer Journey, learn how to model your content for AEM Headless delivery using Content Modeling with Content Fragment Models and Content Fragments. Headless Journeys are designed for varying personas, laying out the requirements, steps, and approach to implementing headless solutions from different perspectives. AEM delivers content via API and HTML, and. Navigate to Tools -> Assets -> Content Fragment Models. X) the GraphiQL Explorer (aka GraphiQL IDE) tool needs to be manually installed, follow instruction from here. Headless implementations enable delivery of experiences across platforms and channels at scale. Content Fragments Support in AEM Assets HTTP API feature helped us to solve the multiple challenges and. Log into AEM as a Cloud Service and from the main menu select Navigation -> Content Fragments. The Create new GraphQL Endpoint dialog box opens. Persisted queries. Building a React JS app in a pure Headless scenario. 5. Configure the Translation Connector. The AEM translation management system uses these folders to define the. $ cd aem-guides-wknd-spa. AEM as a Cloud Service GraphQL API used with Content Fragments is heavily based on the standard, open source GraphQL API. Headless Developer Journey. An implementation of the standard GraphiQL IDE is available for use with the GraphQL API of Adobe Experience Manager (AEM) as a Cloud Service. The AEM Headless client, provided by the AEM Headless Client for JavaScript, must be initialized with the AEM Service host it connects to. Learn how to bootstrap the SPA for AEM SPA Editor. AEM Headless is a CMS solution from Experience Manager that allows structured content (Content Fragments) in AEM to be consumed by any app over HTTP using GraphQL. js (JavaScript) AEM Headless SDK for Java™. Topics: Content Fragments View more on this topic. Head:-Head is known as frontend and headless means the frontend is missing. Learn how easy it is to build exceptional experiences using headless capabilities with this guided, hands-on trial of Adobe Experience Manager Sites CMS. This guide provides important information about the latest release of Experience Manager as a Cloud Service, including what’s new deprecated and removed features, and known issues. This article builds on these so you understand how to create your own Content Fragment Models for your AEM headless. Using a REST API introduce challenges: In a headless model, the content is managed in the AEM repository, but delivered via APIs such as REST and GraphQL to another system to render the content for the user experience. As AEM offers the (very) best of both worlds, it supports the traditional approach and the headless way. Permissions and personas can broadly be considered based on the AEM environment Author or Publish. A Content author uses the AEM Author service to create, edit, and manage content. The application uses two persisted queries: wknd/adventures-all persisted query, which returns all adventures in AEM with an abridged set of properties. Now that we’ve seen the WKND Site, let’s take a closer look at content modeling in Adobe Experience Manager. Welcome to this tutorial chapter where we will explore configuring a React app to connect with Adobe Experience Manager (AEM) Headless APIs using the AEM Headless SDK. At this point, you should have completed the entire AEM Headless Developer Journey and understand the basics of headless delivery in AEM including an understanding of: The difference between headless and headful content delivery. Following AEM Headless best practices, the React application uses AEM GraphQL persisted queries to query adventure data. The React app should contain one instance of the <Page. All in AEM. AEM Preview is the service that mimics AEM Publish in behavior, but has content published to it for preview or review purposes. The AEM Headless SDK is set of libraries that can be used by clients to quickly and easily interact with AEM Headless APIs over HTTP. Locate the Layout Container editable area beneath the Title. Learn how multiple views in the SPA can be supported by mapping to AEM Pages with the SPA Editor SDK. AEM 6. AEM Headless supports management of image assets and their optimized delivery. The latest version of AEM and AEM WCM Core Components is always recommended. Tap in the Integrations tab. 3 and has improved since then, it mainly consists of. Following AEM Headless best practices, the Next. The AEM Headless client, provided by the AEM Headless Client for JavaScript, must be initialized with the AEM Service host it connects to. Learn the Content Modeling Basics for Headless with AEM; Learn about Creating Content Fragment Models in AEM; Headless Translation Journey. 2. The headless CMS extension for AEM was introduced with version 6. An AEM project is required to setup-supporting configuration and content requirements to allow AEM SPA Editor to author a Remote SPA. Content Fragments used in AEM Headless content modeling, often reference image assets intended for display in the headless experience. A single-page application is a web application or website that interacts with the user by dynamically rewriting the current web page with new data from the webserver, instead of the default method of a web browser loading entire new pages. Typical AEM as a Cloud Service headless deployment. The AEM SDK is used to build and deploy custom code. Previous page. React environment file React uses custom environment files , or . AEM Headless applications support integrated authoring preview. 3, Adobe has fully delivered its content-as-a. The AEM Headless quick setup gets you hands-on with AEM Headless using content from the WKND Site sample project, and a sample React App (a SPA) that consumes the content over AEM Headless GraphQL APIs. The Single-line text field is another data type of Content. Prerequisites. Content Translation allows you to create an initial. You have complete control over how the content is displayed on several platforms, including desktop, mobile, IoT, and PIM systems. 3. AEM’s GraphQL queries can be written to provide URLs to images based on where the image is referenced from. Learn how to deep link to other Content Fragments within a. To facilitate this, AEM supports token-based authentication of HTTP requests. React environment file React uses custom environment files , or . Rather than delivering HTML or formatted content directly, a headless CMS decouples content from presentation, enabling content to be used by a variety of front-end technologies. Security User. Stay Resilient and Secure. At this point, you should have completed the entire AEM Headless Developer Journey and understand the basics of headless delivery in AEM including an understanding of: The difference between headless and headful content delivery. By. Select Create. 1 - Modeling Basics; 2 - Advanced Modeling; 3 - Creating GraphQL Queries; 4 - Content Fragment Variations; 5 -. Tap or click the folder that was made by creating your configuration. When using the AEM React Editable Components with a SPA Editor-based React app, the AEM ModelManager SDK, as the SDK: Retrieves content from AEM. This persisted query drives the initial view’s adventure list. js (JavaScript) AEM Headless SDK for. Since the SPA renders the component, no HTL script is needed. Headless-cms-in-aem Headless CMS in AEM 6. React environment file React uses custom environment files , or . js: Execute SSR/ISR from AEM GraphQL API on a separate server that is not AEM. AEM as a Cloud Service is made up of high-level solutions such as AEM Sites, AEM Assets, and AEM Forms. Deploy all of the updates to a local AEM environment from the root of the project directory, using your Maven skills: $ cd aem-guides-wknd-spa. Client type. Learn how multiple views in the SPA can be supported by mapping to AEM Pages with the SPA Editor SDK. When authorizing requests to AEM as a Cloud Service, use. This allows developers to place SPA Editor-compatible components into the SPA views, and allow users to author the components’ content in AEM SPA Editor. The architecture of Headless AEM forms the foundation for its decoupled and flexible nature. In this part of the AEM Headless Developer Journey, learn how to model your content for AEM Headless delivery using Content Modeling with Content Fragment Models and Content Fragments. AEM Headless Developer Portal; Overview; Quick setup. Learn about the various data types used to build out the Content Fragment Model. By integrating with personalization platforms or. X. Provide a Model Title, Tags, and Description. AEM Headless APIs allow accessing AEM content from any client app. The AEM Headless Client for JavaScript is used to execute the GraphQL persisted queries that power the app. js. Now free for 30 days. In, some versions of AEM (6. Learn to use modern front-end tools, like the Angular's CLI tool, to rapidly develop the SPA against the AEM JSON model API. Remote Renderer Configuration. Understand how the Content Fragment Model. Last update: 2023-10-04. It is helpful for scalability, usability, and permission management of your content. AEM as a Cloud Service lets you capitalize on the AEM applications in a cloud-native way, so that you can: Scale your DevOps efforts with Cloud Manager: CI/CD framework, autoscaling, API connectivity, flexible deployment modes, code quality gates, service delivery transparency, and guided updates. Populates the React Edible components with AEM’s content. AEM’s GraphQL queries can be written to provide URLs to images based on where the image is referenced from. This video series explains Headless concepts in AEM, which includes-Content Fragment Models Basics and Advanced features such as different Data types and respective usages. Headless and AEM; Headless Journeys. The AEM Headless SDK is available for various platforms: AEM Headless SDK for client-side browsers (JavaScript) AEM Headless SDK for server-side/Node. During the initial phase of the project, Adobe recommends using the development environments to try variations of content models and see which provide the intended. It is helpful for scalability, usability, and permission management of your content. Open the react-starter-kit-aem-headless-forms directory in a code editor and navigate to eact-starter-kit-aem-headless-formssrccomponents. Along with the configrations and list of dependencies required to render the form, the directory includes the following important content:Persisted queries are queries that are stored on the Adobe Experience Manager (AEM) server. References to other content, such as images. 4. Learn how to create relationships between Content Fragment Models in Adobe Experience Manager (AEM) and how to leverage these relationships in GraphQL queries. To understand the headless concept we have to understand the given diagram. How to organize and AEM Headless project. Often, these headless consumers may need to authenticate to AEM in order to access protected content or actions. Problem: Headless implementation The discussion around headless vs. Create Content Fragments based on the. 211 likes · 2 were here. This class provides methods to call AEM GraphQL APIs. Tap Home and select Edit from the top action bar. The multi-line text field is a data type of Content Fragments that enables authors to create rich text content. When using the AEM React Editable Components with a SPA Editor-based React app, the AEM ModelManager SDK, as the SDK: Retrieves content from AEM. 3 and has improved since then, it mainly consists of the following components: 1. With Headless Adaptive Forms, you can streamline the process of. This journey lays out the requirements, steps, and approach to translate headless content in AEM. Adobe Experience Manager's Cross-Origin Resource Sharing (CORS) allows headless web applications to make client-side calls to AEM. The multi-line text field is a data type of Content Fragments that enables authors to create rich text content. Experience Manager tutorials. Overview. What is often forgotten is that the. The main idea behind a headless CMS is to decouple the frontend from the backend and. The multi-line text field is a data type of Content Fragments that enables authors to create rich text content. Building a React JS app in a pure Headless scenario. With a traditional AEM component, an HTL script is typically required. AEM 6. Learn how to connect AEM to a translation service. Mappings Object. Created for: Intermediate. env files, stored in the root of the project to define build-specific values. js (JavaScript) AEM Headless SDK for. Last update: 2023-04-03 Topics: Content Fragments APIs Created for: Beginner Developer AEM’s Content Services leverages traditional AEM Pages to compose headless REST. An AEM project is required to setup-supporting configuration and content requirements to allow AEM SPA Editor to author a Remote SPA. 5 is a flexible tool for the headless implementation model by offering three powerful services: Content Models. This means that instead of being limited to web publishing like a traditional CMS, content can be pushed to any end experience like a mobile app, SPA, or voice device. This tutorial uses a simple native Android Mobile App to consume and display Event content exposed by AEM Content Services. Following AEM Headless best practices, the React application uses AEM GraphQL persisted queries to query adventure data. Slider and richtext are two sample custom components available in the starter app.