@ChildResource
The @ChildResource annotation is a Sling Models injector that maps child JCR nodes to Java objects. It is the
The @ChildResource annotation is a Sling Models injector that maps child JCR nodes to Java objects. It is the
@ExternalizedValueMapValue is a custom Sling Models injector annotation that reads a JCR property (like
AEM's permission model is built on Jackrabbit Oak's access control layer. Every read,
Adobe Edge Delivery Services (EDS) -- formerly known as Project Helix / Franklin -- is far
Adobe I/O App Builder (formerly Project Firefly) is a serverless extensibility framework
AEM as a Cloud Service (AEMaaCS) is Adobe's cloud-native, fully managed version of
Adobe Experience Manager is built on three open-source foundations:
Using Core Components, the responsive grid, navigation, header and footer, building a homepage and article page, and page properties.
CSS and JS management in AEM -- clientlib structure, categories, dependencies, embedding, proxy serving, and the ui.frontend module.
Client libraries (clientlibs) are AEM's mechanism for managing CSS and JavaScript delivery. They provide
This post describes how to setup a Cloud Sandbox development environment.
Touch UI dialogs with Granite/Coral -- field types, tabs, multifields, image upload, validation, and conditional visibility.
An AEM component is a self-contained building block that authors drag onto a page, configure via a dialog,
Content Fragments are channel-neutral, structured content in AEM. Unlike page components that mix
Content Fragment Models, creating and managing fragments, the AEM GraphQL API, persisted queries, and headless content delivery.
Sling Context-Aware Configuration (CA Config) lets you store configuration values
Coral UI is Adobe's web component library that powers the entire AEM Touch UI -- dialogs, the
1. Merging Dialogs
This guide walks through creating a custom AEM component from start to finish. Every artifact is covered:
AEM's Granite UI provides a rich set of dialog fields, but multi-site and multi-tenant projects often
Deploying AEM projects varies significantly depending on the hosting model. AEM as a Cloud Service (AEMaaCS) relies on Cloud Manager pipelines with strict immutability rules. Adobe Managed Services (AMS) provides a middle ground with managed infrastructure but more flexibility. On-premises installations give full control but require manual orchestration and operational discipline.
Git repo structure, Cloud Manager pipelines, environments, Rapid Development Environments, content transfer, and going to production.
AEM's Touch UI dialog framework includes a client-side validation system that lets you enforce business
Dispatcher architecture, cache rules, filters, rewrites, vanity URLs, cache invalidation, and local Dispatcher SDK testing.
Introduction
AEM provides a built-in e-mail infrastructure based on the Day CQ Mail Service
AEM provides two event systems for reacting to changes in the repository and the platform. Understanding
Experience Fragments (XFs) are reusable, self-contained content experiences that can be
AEM's responsive grid (also called Layout Container or the modern replacement for the classic
Introduction
The AEM Groovy Console provides a web-based interface for running
AEM provides a built-in GraphQL API that exposes Content Fragments as a
The HTML Template Language in depth -- expressions, block statements, global objects, the Use API, and best practices.
HTL (HTML Template Language), formerly known as Sightly, is AEM's server-side template language. It is the
AEM distinguishes between two types of multilingual content:
What AEM is, the technology stack (Sling, JCR, OSGi), AEMaaCS vs on-premise, installing the SDK, generating a project with the Maven archetype, and a project structure walkthrough.
This page collects practical Java guidelines for AEM projects. The goal is consistent, safe code that is easy to test and maintain.
Introduction
This post describes the steps and software requirements you need to create and set up a working local AEM instance.
JCR Queries
The Multi-Site Manager (MSM) lets you maintain multiple websites that share common content. You create
Blueprints, Live Copies, rollout configurations, language copies, the translation framework, and i18n dictionaries.
When an AEM project serves multiple brands, sites, or tenants from a single codebase, each tenant typically
OSGi configuration is the primary mechanism for controlling the behavior of AEM services at runtime.
OSGi bundles, services, the component lifecycle, the Web Console, and configuration management in AEM.
Overlays (powered by the Sling Resource Merger) are AEM's mechanism for customising or extending
Performance in AEM spans multiple layers: content queries against the Oak repository, server-side rendering through Sling Models and HTL, caching at the Dispatcher level, and frontend delivery to the browser. Optimising only one layer while ignoring the others will leave bottlenecks on the table. This page walks through each layer with concrete techniques, code examples, and the most common pitfalls.
Render Conditions control whether a Granite UI element (dialog field, tab, toolbar button, or any
Replication is the mechanism AEM uses to move content from the author environment to one or more publish instances. When an author clicks "Publish" (or "Activate") in the Sites console, the underlying replication framework serializes the affected content, transports it over HTTP/HTTPS, and deserializes it on the target publish instance. Understanding this pipeline is essential for debugging publish delays, configuring Dispatcher cache invalidation, and building custom publishing workflows.
Security in AEM is a multi-layered concern that spans user management, access control, request filtering,
Sling Servlets are Java classes that handle HTTP requests in AEM. They are the standard way to build
AEM's background processing is built on two complementary mechanisms:
This page is a comprehensive reference for all commonly used Sling Model annotations. Each annotation is explained
Injecting JCR content into Java models -- annotations, adaptables, child resources, OSGi services, exporters, and best practices.
Sling Models are annotation-driven Java classes that automatically map AEM content (JCR properties,
The AEM SPA Editor enables authors to visually edit Single Page Applications (React or
AEM's tagging framework provides a structured way to classify and organise content.
Editable templates, template types, structure vs initial content, component policies, allowed components, and page structure.
Editable Templates are AEM's modern template system. They let template authors define
Testing in AEM usually combines unit tests for backend logic, integration tests for content and services, and UI tests for authoring behavior.
The Java Content Repository, node types and properties, resource resolution, CRXDE Lite, and how Apache Sling maps URLs to content.
Being called TouchUI previously, the official name for the 'modern' / post classic Ui is 'AuthorUI'.️
The following chapters each present a Coral XML snippet which can be copied into any /components/mycomponent/cqdialog/.content.xml file.
AEM Workflows are automated, multi-step processes that model real-world business operations inside Adobe
Component anatomy in AEM -- the cq:Component node, HTL template, dialog, and Sling Model. Creating, deploying, and using a simple component.