Real-World Scenario — When a Content Fragment Beats a Page (and When It's Overkill)
AEMWhere Content Fragments are genuinely the right content model in real AEM projects, the recurring model-migration and publication-dependency problems that show up once fragments are in production, and honest criteria for when a plain page or component dialog is simpler.
13 min read•2026-07-22
Real-World Scenarios: Dead Hidden Fields After a Multifield Migration
AEMA field an author fills in that visibly does nothing — tracing a dialog's hidden, dead flat fields back to a multifield migration that never cleaned up after itself, and a template-contract test that would have caught it.
9 min read•2026-08-28
Real-World Scenarios: The Carousel With No Slides to Navigate
AEMA hero carousel that renders navigation arrows and indicators but no slides — tracing it back to an inherited Core Component dialog tab that got hidden without anything replacing what it authored, and the contract test that would have caught it pre-launch.
8 min read•2026-08-28
Real-World Scenarios: Flipping a Feature Toggle's Default Changed More Pages Than Expected
AEMA one-line change to an inherited page property's default value quietly changed behavior on hundreds of pages that had never explicitly set it — how it was traced, and the audit query that should have run before the change shipped.
8 min read•2026-08-28
Real-World Scenarios: A Shared Icon Picker's New Required Field Blocked Saves on Three Unrelated Components
AEMA compliance-driven field added to one shared dialog subtree quietly became a required field on three components that reused it via node-level sling:resourceSuperType — tracing the save-blocking bug back to an invisible dialog dependency, and the CI check that finds every consumer before a change ships.
8 min read•2026-08-28
Real-World Scenarios: An SEO Audit Found Every noindex Page Still Listed in the Sitemap
AEMA quarterly SEO audit found that a noindex exclusion feature in a custom sitemap generator had never worked in production — traced to an untyped multi-value property read and a Java array's default toString(), plus two related fixes for vanity-path alternates and template-mismatched hreflang links.
9 min read•2026-08-28
Real-World Scenarios: A Rebrand Silently Broke Every Experience Fragment Created Before It
AEMA site-wide theme consolidation changed a handful of page properties and left dozens of previously-created Experience Fragments visually mismatched — with no errors anywhere, because a ResourceChangeListener had copied those properties at creation time instead of inheriting them live.
8 min read•2026-08-28