| Build a form (settings, input, confirmation, multi-step) |
Forms |
| Create SDC components |
SDC Development |
| Write JavaScript for Drupal |
JS Development |
| Create a content or config entity |
Entities |
| Create a plugin type or service architecture |
Plugins |
| Set up routes and access control |
Routing |
| Build configuration forms and admin interfaces |
Config Forms |
| Use the Icon API for unified icon management |
Icon API |
| Generate AI-powered content |
AI Content |
| Configure media types, view modes, and display |
Media System |
| Create custom media source plugins |
Media Types |
| Migrate from Drupal 7 to 11 |
Migration |
| Build ECA custom actions, events, conditions |
ECA Development |
| Configure cookie consent with Klaro |
Klaro |
| Set up CI/CD with GitHub Actions |
GitHub Actions |
| Add testing frameworks to modules |
Testing |
| Create and manage Drupal recipes |
Recipes |
| Build a JSON:API for Drupal content |
JSON:API |
| Create and configure blocks |
Blocks |
| Organize content with taxonomy |
Taxonomy |
| Configure image styles and responsive images |
Image Styles |
| Build layouts with Layout Builder |
Layout Builder |
| Create and customize Views |
Views |
| Manage configuration and schema |
Config Management |
| Build render arrays and templates |
Render API |
| Define or use services |
Services & DI |
| Handle security correctly |
Security |
| Configure caching |
Caching |
| Create multi-column compound fields |
Custom Field |
| Apply DRY principles in Drupal |
DRY in Drupal |
| Apply SOLID principles in Drupal |
SOLID in Drupal |
| Practice TDD with PHPUnit in Drupal |
TDD in Drupal |
| Build a multilingual site with translations |
Multilingual |
| Write and debug Twig templates |
Twig Theming |
| Use SDC components in Drupal's site-builder UI |
UI Patterns 2.x |
| Use DaisyUI 5 components in Drupal with UI Patterns |
UI Suite DaisyUI |
| Customize Views exposed filter widgets |
Better Exposed Filters |
| Add faceted search navigation |
Facets |
| Configure site search with backends and processors |
Search API |
| Build pages with drag-and-drop, inline editing, nested layouts |
Plus Suite |
| Contribute to Drupal using AI responsibly |
Contributing with AI |
| Build an AI-powered module with Drupal AI |
AI Module |
| Build AJAX forms and callbacks |
AJAX |
| Migrate from AJAX to HTMX |
AJAX-HTMX Migration |
| Configure breadcrumbs and navigation paths |
Breadcrumbs |
| Use Drupal Canvas (Experience Builder) |
Canvas |
| Manage group-based content access |
Group |
| Use HTMX for progressive enhancement |
HTMX |
| Integrate Salesforce with Drupal |
Salesforce |
| Optimize SEO and GEO for Drupal sites |
SEO & GEO |
| Build component stories with Storybook |
Storybook |
| Send transactional email via Mailgun |
Mailgun |
| Apply opinionated project rules (Bootstrap, LB, responsive images, SDC, config) |
Best Practices — camoa |