Skills for building AEM Edge Delivery Services sites — block development, content modeling, code review, testing, and page import.
82
76%
Does it follow best practices?
Impact
88%
1.04xAverage score across 6 eval scenarios
Advisory
Suggest reviewing before use
AEM Edge Delivery Services has 4 canonical patterns for structuring block content. These proven patterns can inform your design and help you create effective, author-friendly content structures.
| Model | When to Use | Examples |
|---|---|---|
| Standalone | Distinct visual or narrative elements | Hero, Blockquote |
| Collection | Repeating semi-structured content | Cards, Carousel |
| Configuration | API-driven or dynamic content where config controls display | Blog Listing, Search Results |
| Auto-Blocked | Simplifying authoring of complex structures and block nesting | Tabs, YouTube Embed |
Self-contained blocks using rows or columns as needed for their unique structure. Best for elements that appear once or a few times on a page with a distinct purpose.
| Hero |
|------|
|  |
| # Welcome to Our Site |
| Discover amazing content and start your journey today. [Get Started](cta-link) |Why this works:
Note on flexibility: These variations would also work with proper decoration code:
|  | # Heading<p>Description text [CTA](link)</p> || <h1>Heading</h1><p>Description text [CTA](link)</p> || Hero |
|------|
|  | Welcome | Discover content | Get Started | /cta-link | dark |Why this fails:
How to fix:
| Hero (Dark) | instead of config cellEach row represents an item, with columns defining the parts of that item. Ideal for repeating, semi-structured content where each instance follows the same pattern.
| Cards |
|-------|
|  | ## Product Name<p>High-quality product description goes here.</p><p>[Learn More](link1)</p> |
|  | ## Another Product<p>Different product with its own description.</p><p>[Learn More](link2)</p> |
|  | ## Third Product<p>More details about this product offering.</p><p>[Learn More](link3)</p> |Why this works:
Resulting structure:
| Cards |
|-------|
| config | style | grid |
|  |
| Product Name |
| High-quality product description |
| [Learn More](link1) |
|  |
| Another Product |
| Different product description |
| [Learn More](link2) |Why this fails:
How to fix:
| Cards (Grid) || Cards |
|-------|
| Image | Content |
|  | ## Product Name<p>High-quality product description.</p> |
|  | ## Another Product<p>Different description.</p> |Why this fails:
| Image | Content |) is not actual content - it's just labelsHow to fix:
Two-column key/value pairs for settings or parameters. Use ONLY for API-driven or dynamic content where configuration actually controls behavior or data fetching.
Do NOT use Configuration model when:
Configuration models are often overused. Always ask: "Does this truly need dynamic configuration, or am I just making authoring harder?"
| Blog Listing |
|--------------|
| limit | 10 |
| sort | date-desc |
| tags | technology,news |Why this works:
Resulting behavior:
| Blockquote |
|------------|
| text | The best way to predict the future is to invent it. |
| author | Alan Kay |
| style | bordered |
| background | light-gray |Why this fails:
How to fix: Use Standalone model with semantic formatting:
| Blockquote (Bordered, Light) |
|-------------------------------|
| The best way to predict the future is to invent it. |
| *Alan Kay* |Content authored as default content that gets automatically converted into blocks based on pattern detection. Simplifies authoring of complex structures by hiding the "block-ness" from authors.
What authors write - three separate sections, each with section metadata:
| Section Metadata |
|------------------|
| style | tabs |
## Getting Started
Follow these steps to set up your account and configure your preferences.
| Hero |
|------|
|  | # Welcome<p>Start your journey here.</p> |
---
| Section Metadata |
|------------------|
| style | tabs |
## Advanced Features
Learn about advanced capabilities once you're comfortable with the basics.
- Feature 1: Real-time collaboration
- Feature 2: Advanced analytics
- Feature 3: Custom integrations
---
| Section Metadata |
|------------------|
| style | tabs |
## Troubleshooting
Common issues and how to resolve them quickly.
| Cards |
|-------|
|  | ## Login Problems<p>How to reset your password.</p> |
|  | ## Performance Issues<p>Tips for optimizing performance.</p> |
---What gets created - auto-blocked into one tabs block:
<div class="tabs">
<div>
<div><h2>Getting Started</h2></div>
<div>
<p>Follow these steps to set up your account and configure your preferences.</p>
<div class="hero"><!-- Hero block content --></div>
</div>
</div>
<div>
<div><h2>Advanced Features</h2></div>
<div>
<p>Learn about advanced capabilities once you're comfortable with the basics.</p>
<ul>
<li>Feature 1: Real-time collaboration</li>
<li>Feature 2: Advanced analytics</li>
<li>Feature 3: Custom integrations</li>
</ul>
</div>
</div>
<div>
<div><h2>Troubleshooting</h2></div>
<div>
<p>Common issues and how to resolve them quickly.</p>
<div class="cards"><!-- Cards block content --></div>
</div>
</div>
</div>Why this works:
---) with H2 headings and contentstyle | tabs) signals intent to auto-blockstyle | tabs metadata get merged into one tabs blockWhat authors write:

https://www.youtube.com/watch?v=dQw4w9WgXcQWhat gets created:
<div class="embed embed-youtube">
<div>
<div>
<picture>
<img src="video-preview.jpg" alt="Video preview image">
</picture>
</div>
<div>
<a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ">https://www.youtube.com/watch?v=dQw4w9WgXcQ</a>
</div>
</div>
</div>Why this works:
Auto-blocking requires:
scripts.jsDon't create auto-blocking for:
Content modeling is an art, not a science. There are often multiple valid approaches, and the "right" model depends on context, authoring needs, and implementation constraints.
Review the detailed examples above for each canonical model to understand their characteristics, strengths, and when they're most appropriate. Pay special attention to the "Why this works" and "Why this fails" explanations.
Key considerations:
When in doubt, start with Standalone or Collection - they're simpler and more author-friendly than Configuration or Auto-Blocked.
Using Configuration when Standalone/Collection would work:
❌ BAD (unnecessary config)
| Card |
|------|
| image | hero.jpg |
| title | Welcome |
✅ GOOD (Standalone)
| Card |
|------|
|  |
| **Welcome** |Using Standalone when Collection would work:
❌ BAD (repeating standalone pattern)
Multiple separate blocks for each card
✅ GOOD (Collection)
| Cards |
|-------|
|  | **Title 1** |
|  | **Title 2** |Over-engineering Auto-Blocked:
❌ BAD (complex pattern for rare use case)
Auto-detecting "testimonial quotes" by looking for:
- Italic paragraphs
- Followed by bold text
- In specific section types
Only appears 2-3 times on entire site, not worth the complexity
✅ GOOD (explicit block for clarity)
| Blockquote |
|------------|
| This product changed how we work. Absolutely essential. |
| *Sarah Johnson, CEO* |
Simple, clear, and easy for authors to create when neededWhen in doubt, prefer simpler models (Standalone or Collection) over complex ones (Configuration or Auto-Blocked).
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
skills
analyze-and-plan
block-collection-and-party
block-inventory
building-blocks
code-review
content-driven-development
content-modeling
docs-search
find-test-content
generate-import-html
identify-page-structure
page-decomposition
page-import
preview-import
scrape-webpage
testing-blocks