N
Naveenr.dev
Ch. 10312 min read

Inherited Page Properties and Site-Wide Feature Toggles

How Sling's HierarchyNodeInheritanceValueMap lets a page property cascade down from a site root unless a descendant page overrides it, why "not set" and "set to false" produce the same visible result, and why that makes changing a toggle's default a much bigger change than it looks.

2026-08-28
Read
Ch. 10414 min read

Policy-Driven Field Visibility and Node-Level Dialog Subtree Reuse

Two dialog-authoring techniques beyond dropdown show/hide: tying a field's visibility to a component's design/policy properties with Granite Expression Language, and reusing a specific tab or field from an unrelated component's dialog via a node-level sling:resourceSuperType or a foundation/include — with full, working examples of each.

2026-08-28
Read
Ch. 10511 min read

Sitemap Generation Edge Cases: Multi-Value Properties, Vanity URLs, and Template-Aware Alternates

Three real edge cases that break a custom Sling sitemap generator in ways code review rarely catches — an untyped multi-value property read that silently defeats a noindex check, alternate-language links that point at vanity paths instead of real content paths, and hreflang links added between pages that don't actually share a template family.

2026-08-28
Read
Ch. 10611 min read

Experience Fragment Property Propagation: When a ResourceChangeListener Copies Instead of Inherits

A ResourceChangeListener that stamps theme and config properties onto a newly created Experience Fragment by copying them from the nearest matching site page — a write-once-at-creation pattern that looks like inheritance but is actually a snapshot, and silently diverges from its source the moment that source page changes.

2026-08-28
Read
Ch. rw-0813 min read

Real-World Scenario — When a Content Fragment Beats a Page (and When It's Overkill)

Where 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.

2026-07-22
Read
Ch. rw-399 min read

Real-World Scenarios: Dead Hidden Fields After a Multifield Migration

A 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.

2026-08-28
Read