Experience Manager Guides and Edge Delivery Services
Adobe Experience Manager Guides allows you to publish your DITA content directly to Edge Delivery Services (EDS) through a dedicated GitHub-based publish profile. This capability enables organizations to deliver high-performance, responsive documentation experiences while maintaining DITA-based authoring workflows in Experience Manager Guides.
For more details on using EDS in Adobe Experience Manager, view Edge Delivery Services Overview.
To enable publishing from Experience Manager Guides to EDS, you must complete a series of configuration steps across GitHub and Experience Manager Guides. The sections below outline each step in sequence and explain how they work together in the overall publishing workflow.
For a quick video walkthrough, view Publishing in AEM Guides.
Set up and configure GitHub for EDS
This section describes how to set up and configure GitHub for use with EDS. It covers creating a repository using the Adobe boilerplate, connecting GitHub to Adobe Experience Manager through AEM Code Sync, configuring the required GitHub and OAuth applications, and defining the repository mountpoint used for publishing content.
Create a GitHub Repository for EDS
EDS requires a GitHub repository with a predefined structure. Adobe provides an official boilerplate repository specifically designed for Experience Manager Guides users.
Perform the following steps to create your repository:
-
Open the Experience Manager Guides boilerplate template repository aem-guides-boilerplate.
-
Create a new repository using this template. Learn about Creating a repository from a template. Ensure that the repository visibility is set to Public so it can be accessed by EDS.
The repository is now created and aligns with the boilerplate template structure.
Create a new OAuth App
An OAuth App is required to authenticate users while creating an EDS publish profile in Experience Manager Guides. It enables a secure login flow using a Client ID and Client Secret.
Perform the following steps to create a new OAuth App:
-
On GitHub, navigate to the left sidebar and select Developer settings.
-
In the left sidebar, select OAuth Apps.
-
Select New OAuth App.
{width="650"}
-
Register your application by providing the following mandatory details:
- Application name: Enter the name of your EDS repository
- Homepage URL: Enter the URL to the Experience Manager Guides instance. (For sample URL format, refer to step 4 of Create a new GitHub App section).
- Authorization callback URL: Same as Homepage URL
-
Select the Enable Device Flow option and then select Register application to complete the registration.
{width="650"}
Your app is now ready. Note down the Client ID. You can generate up to five Client Secrets now or later while configuring the publish profile in Experience Manager Guides.
Configure the mountpoint URL in EDS repository
EDS reads content from a mountpoint URL defined in the fstab.yaml file at the root of your repository. This URL points EDS to the location where Experience Manager Guides publishes the generated content.
To configure the mountpoint URL in the fstab.yaml file:
-
In your GitHub repository, open the
fstab.yamlfile. -
Update the
urlvalue using the following format:code language-text https://guides.adobe.com/eds-workers/<account type>/<git acc domain>/<git username>/<git repo>/<branch>/<root folder>The following table describes each field in the URL:
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 Field Description https://guides.adobe.com/eds-workersWorker URL used by Experience Manager Guides to publish content to EDS. Do not change this value. <account type>Type of Git account. Set to github.<git acc domain>Domain of your Git account. Set to github.com.<git username>Your GitHub user name. <git repo>Name of the GitHub repository you created for EDS. <branch>Branch on which you want to publish the content. The default value is main. If you change the branch name on GitHub, update it here and in the EDS publish profile in Experience Manager Guides.<root folder>Root folder of the repository where the published files are committed. The default value is docs. If you change the folder name on GitHub, update it here and in the EDS publish profile in Experience Manager Guides.For example, if your GitHub user name is
my-usernameand your repository name ismy-eds-repo, thefstab.yamlfile appears as follows:code language-yaml mountpoints: /: url: https://guides.adobe.com/eds-workers/github/github.com/my-username/my-eds-repo/main/docs type: markup {width="650"}
note NOTE If you continue to use the earlier URL format ( https://guides.adobe.com/eds-workers/<git username>/<git repo>/<branch>/<root folder>), the account type and domain default togithubandgithub.com. -
Repeat steps 2 and 3 from the Connect GitHub to Adobe via AEM Code Sync section to authorize the repository.
Connect GitHub to Adobe via AEM Code Sync
Adobe Experience Manager uses a GitHub application called AEM Code Sync to push content from Experience Manager Guides to GitHub.
Perform following steps to install and configure the AEM Code Sync application:
-
Navigate to the AEM Code Sync page and select Install.
AEM Code Sync monitors repository changes and ensures that updates are correctly pushed to GitHub.
note NOTE While installing the application, ensure that you use the same GitHub account that owns the repository.
-
On next page, grant access to the repository you created. Select Only select repositories, and then select your repository from the dropdown.
{width="350"}
-
Select Install and Authorize.
You are redirected to the GitHub setup page.
-
Review the source code details and select Next.
-
On the Content source page, configure the following settings:
- Content source type: Select Other (bring your own markup).
- Content source URL: Review the URL configured as the mountpoint URL in the
fstab.yamlfile. If you have not updated the URL in the file, you can update it here. - File extension: Change the default
.htmlsuffix to.htm.
Ensure that Use a different content source is selected.
-
On the Users page, add users if required, and select Next.
-
Review the configuration summary and select Save.
After successful registration, a confirmation page appears. You can copy and save the Preview and Live URLs for your website from this page.
Set up and configure GitLab for EDS
For instructions on configuring GitLab as the publishing repository for Edge Delivery Services, view Set up and configure GitLab for EDS.
Create and configure a publish profile for EDS in Experience Manager
The sections below outline each step in sequence and explain how to set up EDS publish profile, configure an output preset, and generate output using EDS in Experience Manager Guides.
Create the EDS publish profile for GitHub or GitLab
-
Go to Workspace settings > Publish profiles.
-
Select the + icon to create a new publish profile and provide the following details:
-
Server type*: Select Git (Edge Delivery Service) from the dropdown.
-
Name*: Enter a name for the publish profile.
-
Git account type*: Select GitHub or GitLab from the dropdown, depending on your Git repository provider.
-
Instance URL*: Enter the URL of your GitHub or GitLab instance, for example,
https://github.comorhttps://gitlab.com. -
Repository name*: Enter the name of your GitHub or GitLab repository.
-
User name*: Enter your GitHub or GitLab username.
-
Branch name: Set to
main(default). -
Root folder*: Set to
docs(default). -
Site owner (GitLab only): Enter the owner of the Edge Delivery Services site.
-
Site repo (GitLab only): Enter the repository name associated with the Edge Delivery Services site.
-
HLX API key: Enter the HLX API key for your EDS configuration. This key is required to support the Unpublished feature introduced in the 2026.11.0 release of Experience Manager Guides as a Cloud Service. Also, the key is required for publishing the content to EDS if the content size is more than 100 files.
-
Authentication credentials: Provide the credentials based on the selected Git account type:
- GitHub: Enter the Client ID* and Client secret* obtained from your GitHub OAuth App. Refer to Create a new OAuth App for details.
- GitLab: Enter the Access token* generated for your GitLab account.
-
-
(GitHub only) Select Login to authenticate. For GitLab, no login is required because the access token is used for authentication.
{width="650"}
-
Select Save. For GitHub, the Save option is available after successful authentication.
Your EDS publish profile is now configured.
Create an Output preset for EDS and generate output
-
Open your map in Map console.
-
In the Output presets tab, select + to create a new output preset.
-
In the New output preset dialog, provide the following details:
- Type: Select Edge Delivery Service
- Name: Provide a name for this preset
-
Select Add.
{width="650"}
-
Open the newly created EDS output preset and configure the following fields:
-
Conditional filtering: Select None to generate output without filtering or Using DITAVAL to apply conditional filtering.
-
Publish subfolder: Enter the name of the subfolder in which the output is published. The subfolder is created in your repository under the root folder, and its name appears in the EDS links to the published content. For example, if the root folder is
docsand the publish subfolder isproduct-guide, the content is published todocs/contents/product-guide. -
Publish profile: Select the GitHub or GitLab publish profile configured in the previous section.
{width="650"}
-
-
Select Save, and then Generate output.
<root folder>/contents/<publish subfolder> folder of the EDS repository.The EDS output is now generated. The content is presented in a clean, responsive layout. It includes regular elements such as the page title, breadcrumbs, body content, and any blocks used in the topic. The TOC on the left (generated from the map) helps you to navigate across topics, while a mini-TOC on the right highlights the sections within the current page. The entire output is fully responsive, ensuring an optimized, consistent reading experience across devices.
Customize output using EDS blocks
EDS uses blocks to control how different parts of your content are styled and displayed. You can modify existing blocks or create custom ones.
The examples outlined below walk you through customizing an existing block and creating a new block to style the final EDS output in Experience Manager Guides.
Customize a breadcrumb block to update its text color
Breadcrumbs are used across pages to help users understand where they are in the documentation. Since this block appears consistently throughout the website, updating its styling allows a unified design update.
Perform the following steps to customize a breadcrumb block to update its text color:
-
Go to your GitHub repository and open the
blocksfolder. -
Select the breadcrumbs block.
{width="650"}
-
Open the
cssfile and update the text color. -
Commit the changes to GitHub.
-
Refresh the live website to view the updates.
Update EDS scripts to create custom element in the published output
In some cases, you may want to style only a specific part of your content. Peform the following steps to achieve this using a custom block.
-
Open the topic file and select the text inside a tag element.
In the following screenshot, the content inside the
exampletag is selected.
{width="650"}
-
To configure the text inside the
exampletag:- Navigate to Content properties.
- Add the
outputclassattribute. - Set its value to
example eds-force-block. - Select Add.
{width="650"}
-
Save and regenerate the output.
-
Create a new folder with the same name as the
outputclassinside theblocksdirectory. Learn about adding files to a repository. {width="650"}
-
Add the required
cssand optionaljsfiles. {width="650"}
-
Commit changes and regenerate output.
The selected content now displays the custom styling defined in your block.