Editable Template Governance Across 40 Brand Sites
A media company maintains 40 brand sites on AEM 6.5 (soon migrating to Cloud Service). Each site was built by a different agency using its own editable templates. Content authors now report: (1) the same 'Hero' component behaves differently across sites because each template defines its own policy; (2) authors can delete structural components like header/footer because policies allow it; (3) a brand refresh requires touching 40 templates by hand. The platform team wants a shared component library with centrally governed policies, but brands insist on layout freedom. There are 120 authors across brands, and the platform team is 4 people. Migration to Cloud Service is in 9 months.
1. Design a template and policy architecture that balances central governance with brand layout freedom.
Read the worked answer
Layered model:
- Core component library owned by the platform team: components (Hero, Header, Footer, etc.) with well-defined dialogs and sensible defaults baked into the component, not into per-template policies.
- Base template type (e.g.,
brand/base/page) that defines the structural skeleton and locks structural components (header, footer, breadcrumb) usingcq:actions/ locked layout so authors cannot delete them. All brand templates inherit from this base. - Brand template types that extend the base and add brand-specific allowed components and policy overrides only where the brand genuinely differs. Policies for shared components (Hero behavior, image renditions) live in a shared policy container referenced by all brands, so a behavior change is one edit.
- Layout freedom is granted through the responsive grid and allowed-component lists per brand, not by forking component behavior.
Rule of thumb: behavior is centralized (component + shared policy), composition is delegated (allowed components, layout). This directly fixes symptoms 1 and 3; symptom 2 is fixed by locking structural containers in the base template.
2. How would you migrate 40 divergent template sets to this model without a big-bang rewrite, given a 4-person team and a 9-month Cloud Service deadline?
Read the worked answer
Inventory → classify → converge in waves.
- Inventory (weeks 1–3): script an export of every template's policies and allowed components. Cluster the 40 sites into 3–5 archetypes (e.g., 'editorial', 'campaign', 'corporate'). Most divergence is cosmetic; the clustering reveals the true variation surface.
- Build the base (weeks 3–8): platform team builds the base template type and shared policy container; validate against the two most complex brands first.
- Wave migration (months 2–7): migrate one archetype at a time. Each brand's templates are re-pointed to inherit from the base; brand-specific deltas become explicit policy overrides. Automate policy diffing so reviewers see exactly what changed per brand.
- Freeze + guardrails: new templates must extend the base; CI check rejects templates that don't inherit or that redefine shared policies.
- Cloud Service alignment: do the convergence before migration so you migrate one architecture, not 40. Use the Cloud Service refactoring tools and the migration window to retire legacy templates.
Sequencing matters: converging templates first halves the migration surface and prevents migrating technical debt.
3. What governance controls keep this from drifting back to 40 divergent template sets?
Read the worked answer
- Ownership model: platform team owns base template + shared policies; brand teams own only their allowed-component lists and layout. Documented RACI.
- Template creation gate: a lightweight review (not a committee) before a new brand template type is approved; reject if it can be expressed as a policy override on the base.
- Automated conformance check in CI: fail builds where a template doesn't inherit from base or where a shared policy is redefined locally.
- Policy change log: every shared-policy change is versioned and announced; brands can pin temporarily but must re-adopt.
- Quarterly drift audit: sample templates, report divergence, and retire unused templates (40 sites accumulate dead templates fast).
- Author guardrails: locked structural components plus author training so 'I can't delete the header' is expected behavior, not a bug report.