AEM Sites Developer Professional study plan
AEM Sites Developer Professional · Give each week a clear focus.
8 weeks · About 7 hours per week
Sling, OSGi, and JCR
Map the Sling request pipeline from URL to rendered output by tracing a resource path through the resource resolver, servlet/servlet-resolution rules, and the selected rendering script
Configure three OSGi components using Declarative Services annotations (@Component, @Activate, @Reference) and change one configuration value at runtime through the Web Console
Define a custom JCR node type with at least four properties and one mandatory property, register it in a CND file, and create a node of that type in CRXDE
Explain and demonstrate the difference between a hard reference and a weak reference when deleting an OSGi service consumer
Your checkpoint
A one-page written cheat sheet of Sling resource resolution order plus a working local AEM SDK bundle containing the three tuned OSGi components
Sling, OSGi, and JCR & Templates and component development
Build two Sling Models: one adapted from Resource and one adapted from SlingHttpServletRequest, and inject values with @ValueMapValue, @ChildResource, and @OSGiService
Write a servlet registered by resource type and verify its output with a curl request in the browser against a local instance
Author a proxy component over a core component and override one HTL block without copying the whole script
Document the JCR namespaces, mixin types, and index rules needed for a custom query you write with the QueryBuilder API
Your checkpoint
A submitted repository containing the two Sling Models, one resource-type servlet, and one proxy component, each with a short README explaining its binding
Templates and component development
Create an editable template with at least three policy-driven component restrictions and two responsive layout configurations
Implement an HTL component using data-sly-use, data-sly-list, data-sly-resource, and the contextual resource parameter, with no scriptlets or JSP
Build a dialog with a multifield, a nested composite field, and a validation rule, then verify the persisted JSON in the JCR
Register a client library with categories, dependencies, and embed rules, and confirm the generated CSS/JS bundle through the HTML clientlib include
Your checkpoint
One custom page template plus two custom components committed as a content package that installs cleanly on a fresh local instance
Templates and component development & AEM Sites architecture and administration
Configure MSM on a blueprint-to-live-copy relationship, roll out one page edit, and break the inheritance on a single component to observe the detached state
Create a language copy and link it to a translation project to show the copy structure
Add two custom workflow steps or launchers that trigger on page activation and log the payload
Map how template policies, content policies, and the design configuration differ between static and editable templates
Your checkpoint
A sandbox site with one blueprint, two live copies, and one language copy, documented with screenshots replaced by written step-by-step reproduction notes
AEM Sites architecture and administration
Configure replication agents for author and publish, including one custom agent transport handler, and verify with a test connection
Build a user group structure with three groups, assign ACLs at /content and /apps at differing privilege levels, and prove the effect with a test user
Set up two distinct maintenance tasks such as workflow purge and version purge and record their default configuration
Explain the difference between an author-only and publish-only service and list the bundles you would verify after a package install
Your checkpoint
A written runbook of eight administration tasks with exact UI paths and the expected result for each
Client-side development and asset handling
Implement a client-side component that lazy-loads its JavaScript from a categorized clientlib and measures render impact in the browser performance panel
Serve three image renditions through the image component with a defined smart-crop configuration and compare delivered asset dimensions
Configure a dynamic media or asset metadata schema with custom fields, then upload an asset and verify the extracted metadata
Write a component that consumes the model JSON endpoint (model.json) and renders a list client-side
Your checkpoint
A single demo page combining the client library, rendition gallery, custom metadata schema, and JSON-driven list, with a one-page performance note
Caching, Dispatcher, and deployment
Write a Dispatcher farm file including a cache rule set, a filter allowlist, statfileslevel, and an invalidate section
Simulate author activation triggering a POST to /dispatcher/invalidate.cache and confirm the correct paths are flushed
Set cache headers and TTL behavior for HTML versus clientlibs and document which one you would not raise and why
Stand up a local Dispatcher with Docker in front of a local publish instance and verify a cached versus uncached response via response headers
Your checkpoint
A working local Dispatcher configuration, committed with a written verification log showing one cached hit and one successful invalidation
AEM Sites architecture and administration & Templates and component development & Sling, OSGi, and JCR & Client-side development and asset handling & Caching, Dispatcher, and deployment
Retake a timed 60-question practice set across all five domains and log the reasoning for every missed item
Re-derive from memory the Sling resolution order, editable template to policy relationship, and Dispatcher invalidation flow
Review every flagged weak area from weeks 1 through 7 and rewrite the corresponding cheat sheet section
Practice explaining three architecture trade-offs out loud in under two minutes each
Your checkpoint
A final one-page condensed reference sheet plus a scored practice log with each missed question mapped to its domain
Milestones
Week 2: Can trace a URL to a rendering script and name the three OSGi component states without notes
Week 4: Two custom components install and render on a clean instance from your own content package, with no console errors
Week 6: Delivery of a page whose client-side assets and image renditions are served correctly, with measured load behavior documented
Week 8: Score at or above 80 percent on a timed 60-question mixed-domain set and have zero unresolved flagged items