Dynamic Page Publishing in AEM Edge Delivery with BYOM and App Builder | Community
Skip to main content
Adobe Employee
July 28, 2025

Dynamic Page Publishing in AEM Edge Delivery with BYOM and App Builder

  • July 28, 2025
  • 4 replies
  • 646 views

Introduction

Bring Your Own Markup (BYOM) is a powerful feature of Adobe Experience Manager (AEM) Edge Delivery Services that allows you to programmatically generate HTML pages from a dynamic HTTP endpoint. Rather than relying on authored content or documents, BYOM enables automated page rendering from APIs, product databases, or other backend systems - while still using the same semantic blocks and styling shared across your AEM site.

In this post, we’ll explain how BYOM works, how it fits into the AEM Edge Delivery Services rendering pipeline, and how to integrate it cleanly using Adobe App Builder.


Key Points

BYOM is ideal for building dynamic, API-driven pages in AEM Edge Delivery Services - without sacrificing performance or consistency.

In this post, we’ll walk through:

  • What BYOM is and how to think of it as an “HTML API”
  • How BYOM fits into the Edge Delivery Services publication flow
  • Key configuration steps using SiteConfig and Adobe App Builder
  • Why semantic HTML blocks matter and how to structure them
  • Benefits of sharing markup between authored, document-based, and BYOM pages

Full Article

Read the full article here: https://medium.com/@lars.auffarth/dynamic-page-publishing-in-aem-edge-delivery-with-byom-and-app-builder-a2da50d9de84

Demo repository: https://github.com/larsauffarth/byom-demo


Q&A

Please use this thread to ask any questions related to the article or share your BYOM use cases with the community.

4 replies

daniel-strmecki
Community Advisor and Adobe Champion
Community Advisor and Adobe Champion
August 9, 2025

Great article, @larsauffarth. Thanks for sharing. Server-side HTML generation was something I was very much missing in the EDS approach. It is great to see that we now have an option for such common use cases like PIM and commerce integrations.

 

Daniel

kautuk_sahni
Community Manager
Community Manager
August 20, 2025

@larsauffarth Great write-up, Lars! The BYOM approach seems especially powerful for scenarios where content needs to stay in sync with external APIs or product catalogs. One thing I’m curious about, when using BYOM with App Builder, what are some best practices you recommend for handling caching at the edge so that pages stay performant while still reflecting near real-time data?

Kautuk Sahni
Adobe Employee
August 25, 2025

Thanks @kautuk_sahni,  

Great question! In our setup, static product data (like name, description, etc.) stays in sync via webhook-triggered updates - as soon as the backend changes, the edge content is refreshed automatically and served directly from the CDN.

For dynamic data (e.g., price, reviews, CTA links), we use a split rendering approach:

  • The static page is delivered from the CDN as mentioned above, and dynamic data is then injected client-side after being fetched via an edge worker.
  • The edge worker caches the response with a 5-minute TTL and runs on demand when a request comes in and no cached result exists, then serves cached responses for subsequent requests.

This pattern works well for our use case and the product family we serve, but the exact TTL and caching strategy will vary depending on the nature of the data and business requirements.

Level 1
January 24, 2026

Great article, ​@LarsAuffarth .
Could you please verify my approach to rendering fragment blocks (/blocks/fragment) using BYOM?
We have a requirement where the same component (e.g., testimonials) is used across multiple pages. We’re currently using fragment blocks for this, but since they aren’t server-side, we’re considering BYOM. Is this the right approach?