The fixed frame — header and footer, locked on every page. Plus one container left open for the page's own content.
The starting content of a new page — what is already there before an author does anything.
The rules. Which components are allowed inside which container. The guest list.
/apps/aeminsider/components/page ← the page component (code) /conf/aeminsider/settings/wcm ├── template-types/page ← the template type (blank form) ├── templates/page-content ← the template (structure · initial · policies) └── policies ← the policies (the actual rules) /content/aeminsider/us/en/... ← the pages (what authors create) // the whole episode is one page's trail through these three folders
page ← the shipped type ├── jcr:content ← jcr:title = "Page" ├── initial/jcr:content ← our page component ├── structure ← empty starting layout └── policies ← default rules
Same three parts a template has — initial, structure, policies — plus the title the Create Template wizard shows.
Its resourceType carries the page component. Every template stamped from the type inherits it — every page renders through it.
Templates copy from it at creation, then never look back. Delete the type — no template notices.
Copy the shipped page type in CRXDE, paste it right next to the original.
Node → aeminsider-page · jcr:title → AEM Insider Page. It appears in the Create Template wizard immediately.
The resourceType inside — change it only if your type should render through a different page component.
Structure components show a padlock on every page. Authors cannot edit, move, or delete them.
One source: the template. Edit the structure and every existing page changes. Instantly.
The hole in the frame — the one place page authors are allowed to work.
The frame — structure components, locked, one copy for all pages.
The middle — whatever the author put into the unlocked container.
One ticked group covers every component in it — that checkbox is why the Card and the Teaser were allowed on the page.
container cq:policy = "aeminsider/components/container/policy_..." // resolved under /conf/.../policies
The master copy, in /conf.
The author's copy, in /content. No locks.
STRUCTURE is live — edit it, and EVERY existing page changes.
INITIAL CONTENT is a copy — it only shapes NEW pages.
Every container sits on a hidden grid. Drag a component's handles to set how many columns it takes. Side by side — no CSS.
The emulator bar switches desktop / tablet / phone — each keeps its own layout. One content, per-device widths.
On the page for page edits, in the template for structure defaults. Grid settings come from the container's policy.
How a URL becomes a resource becomes a script — resource types, super types, selectors, and the search paths. The engine under everything we've built. In detail.