DrupalCon 2025

Below are my notes from DrupalCon sessions. These notes are for my own consumption and review. I have no intention to fill in the gaps, clarify jargon, or to create a narrative from these sessions notes. If these notes are useful to you, “you’re welcome 😀”.

Derek Zoladz & Laura Solomon at DrupalCon 2025

Drupal CMS

DriesNote

Keynote presentation from Dries Buytaert


Workspaces

The Workspaces module is required for Experience Builder. Workspaces in moving into drop-in replacement for Content Moderation.

Conceptual diagram for workspaces
Workflow diagram for workspaces

Install Drupal CMS with SQLlite

composer create-project drupal/cms

Here’s what comes with CMS 1.1 out-of-the-box

Package operations: 231 installs, 0 updates, 0 removals
asm89/stack-cors (v2.2.0)
carbonphp/carbon-doctrine-types (3.2.0)
chi-teck/drupal-code-generator (4.1.0)
clue/stream-filter (v1.7.0)
commerceguys/addressing (v2.2.4)
composer/installers (v2.3.0)
composer/semver (3.4.3)
consolidation/annotated-command (4.10.1)
consolidation/config (3.1.0)
consolidation/filter-via-dot-access-data (2.0.2)
consolidation/log (3.1.0)
consolidation/output-formatters (4.6.0)
consolidation/robo (5.1.0)
consolidation/site-alias (4.1.1)
consolidation/site-process (5.4.2)
davedevelopment/stiphle (0.9.4)
dflydev/dot-access-data (v3.0.3)
doctrine/annotations (2.0.2)
doctrine/collections (2.3.0)
doctrine/deprecations (1.1.4)
doctrine/inflector (2.0.10)
doctrine/lexer (2.1.1)
dragonmantank/cron-expression (v3.4.0)
drupal/add_content_by_bundle (1.2.2)
drupal/address (2.0.3)
drupal/addtocal_augment (1.2.4)
drupal/ai (1.0.5)
drupal/ai_agents (1.0.2)
drupal/ai_image_alt_text (1.0.1)
drupal/ai_provider_anthropic (1.0.0)
drupal/ai_provider_openai (1.0.2)
drupal/automatic_updates (3.1.7)
drupal/autosave_form (1.10.0)
drupal/better_exposed_filters (7.0.5)
drupal/bpmn_io (2.0.7)
drupal/captcha (2.0.7)
drupal/checklistapi (2.1.6)
drupal/coffee (2.0.1)
drupal/core (11.1.5)
drupal/core-composer-scaffold (11.1.5)
drupal/core-project-message (11.1.5)
drupal/crop (2.4.0)
drupal/ctools (4.1.0)
drupal/dashboard (2.0.0)
drupal/date_augmenter (1.1.1)
drupal/drupal_cms_accessibility_tools (1.1.0)
drupal/drupal_cms_admin_ui (1.1.0)
drupal/drupal_cms_ai (1.1.0)
drupal/drupal_cms_anti_spam (1.1.0)
drupal/drupal_cms_authentication (1.1.0)
drupal/drupal_cms_blog (1.1.0)
drupal/drupal_cms_case_study (1.1.0)
drupal/drupal_cms_content_type_base (1.1.0)
drupal/drupal_cms_events (1.1.0)
drupal/drupal_cms_forms (1.1.0)
drupal/drupal_cms_google_analytics (1.1.0)
drupal/drupal_cms_image (1.1.0)
drupal/drupal_cms_news (1.1.0)
drupal/drupal_cms_olivero (1.1.0)
drupal/drupal_cms_page (1.1.0)
drupal/drupal_cms_person (1.1.0)
drupal/drupal_cms_privacy_basic (1.1.0)
drupal/drupal_cms_project (1.1.0)
drupal/drupal_cms_remote_video (1.1.0)
drupal/drupal_cms_search (1.1.0)
drupal/drupal_cms_seo_basic (1.1.0)
drupal/drupal_cms_seo_tools (1.1.0)
drupal/drupal_cms_starter (1.1.0)
drupal/easy_breadcrumb (2.0.9)
drupal/easy_email (3.0.4)
drupal/easy_email_express (1.0.3)
drupal/easy_email_standard (1.0.2)
drupal/easy_email_text_format (1.0.2)
drupal/easy_email_theme (1.0.0)
drupal/easy_email_types_core (1.0.3)
drupal/easy_email_types_default (1.0.1)
drupal/eca (2.1.6)
drupal/editoria11y (2.2.4)
drupal/field_group (3.6.0)
drupal/focal_point (2.1.2)
drupal/friendly_captcha_challenge (0.9.18)
drupal/friendlycaptcha (1.1.3)
drupal/geocoder (4.28.0)
drupal/geofield (1.64.0)
drupal/gin (4.0.6)
drupal/gin_toolbar (2.0.0)
drupal/google_tag (2.0.8)
drupal/honeypot (2.2.2)
drupal/jquery_ui (1.7.0)
drupal/jquery_ui_resizable (2.1.0)
drupal/key (1.19.0)
drupal/klaro (3.0.3)
drupal/klaro_js (3.0.1)
drupal/leaflet (10.2.43)
drupal/linkit (7.0.3)
drupal/login_emailusername (3.0.1)
drupal/mailsystem (4.5.0)
drupal/menu_link_attributes (1.5.0)
drupal/metatag (2.1.0)
drupal/nouislider_js (15.8.1)
drupal/pathauto (1.13.0)
drupal/project_browser (2.0.0-beta1)
drupal/recipe_installer_kit (1.0.0-alpha3)
drupal/redirect (1.11.0)
drupal/robotstxt (1.6.0)
drupal/sam (1.3.2)
drupal/scheduler (2.2.1)
drupal/scheduler_content_moderation_integration (3.0.4)
drupal/search_api (1.38.0)
drupal/search_api_autocomplete (1.10.0)
drupal/search_api_exclude (2.0.3)
drupal/selective_better_exposed_filters (3.0.3)
drupal/seo_checklist (5.2.4)
drupal/simple_search_form (1.6.0)
drupal/simple_sitemap (4.2.2)
drupal/sitemap (2.0.0)
drupal/smart_date (4.2.3)
drupal/svg_image (3.2.1)
drupal/symfony_mailer_lite (2.0.2)
drupal/tagify (1.2.37)
drupal/token (1.15.0)
drupal/token_or (2.3.0)
drupal/trash (3.0.15)
drupal/webform (6.3.0-beta2)
drupal/yoast_seo (2.1.0)
drush/drush (13.4.0)
egulias/email-validator (4.0.4)
enshrined/svg-sanitize (0.21.0)
geocoder-php/common-http (4.6.0)
geocoder-php/nominatim-provider (5.7.0)
goalgorilla/rtseo.js (2.1.0)
grasmash/expander (3.0.1)
grasmash/yaml-cli (3.2.1)
guzzlehttp/guzzle (7.9.2)
guzzlehttp/promises (2.0.4)
guzzlehttp/psr7 (2.7.0)
html2text/html2text (4.3.2)
illuminate/collections (v11.44.2)
illuminate/conditionable (v11.44.2)
illuminate/contracts (v11.44.2)
illuminate/macroable (v11.44.2)
illuminate/support (v11.44.2)
itamair/geophp (1.6)
laravel/prompts (v0.1.25)
league/commonmark (2.6.1)
league/config (v1.2.0)
league/container (4.2.4)
league/html-to-markdown (5.1.1)
masterminds/html5 (2.9.0)
mck89/peast (v1.16.3)
mtownsend/xml-to-array (2.0.0)
nesbot/carbon (3.8.6)
nette/schema (v1.3.2)
nette/utils (v4.0.5)
nikic/php-parser (v5.4.0)
openai-php/client (v0.10.3)
pear/archive_tar (1.5.0)
pear/console_getopt (v1.4.3)
pear/pear_exception (v1.0.2)
pear/pear-core-minimal (v1.10.16)
phootwork/collection (v3.2.3)
phootwork/lang (v3.2.3)
php-http/discovery (1.20.0)
php-http/guzzle7-adapter (1.1.0)
php-http/httplug (2.4.1)
php-http/message (1.16.2)
php-http/multipart-stream-builder (1.4.2)
php-http/promise (1.3.1)
php-tuf/composer-stager (v2.0.0)
phpowermove/docblock (v4.0)
psr/cache (3.0.0)
psr/clock (1.0.0)
psr/container (2.0.2)
psr/event-dispatcher (1.0.0)
psr/http-client (1.0.3)
psr/http-factory (1.1.0)
psr/http-message (2.0)
psr/log (3.0.2)
psr/simple-cache (3.0.0)
psy/psysh (v0.12.8)
ralouphie/getallheaders (3.0.3)
revolt/event-loop (v1.0.7)
sebastian/diff (5.1.1)
simshaun/recurr (v5.0.3)
symfony/clock (v7.2.0)
symfony/console (v7.2.1)
symfony/css-selector (v7.2.0)
symfony/dependency-injection (v7.2.4)
symfony/deprecation-contracts (v3.5.1)
symfony/error-handler (v7.2.4)
symfony/event-dispatcher (v7.2.0)
symfony/event-dispatcher-contracts (v3.5.1)
symfony/filesystem (v7.2.0)
symfony/finder (v7.2.2)
symfony/http-foundation (v7.2.3)
symfony/http-kernel (v7.2.4)
symfony/mailer (v7.2.3)
symfony/mime (v7.2.4)
symfony/polyfill-ctype (v1.31.0)
symfony/polyfill-iconv (v1.31.0)
symfony/polyfill-intl-grapheme (v1.31.0)
symfony/polyfill-intl-idn (v1.31.0)
symfony/polyfill-intl-normalizer (v1.31.0)
symfony/polyfill-mbstring (v1.31.0)
symfony/polyfill-php80 (v1.31.0)
symfony/polyfill-php81 (v1.31.0)
symfony/polyfill-php83 (v1.31.0)
symfony/polyfill-php84 (v1.31.0)
symfony/process (v7.2.4)
symfony/psr-http-message-bridge (v7.2.0)
symfony/routing (v7.2.3)
symfony/serializer (v7.2.4)
symfony/service-contracts (v3.5.1)
symfony/string (v7.2.0)
symfony/translation (v7.2.4)
symfony/translation-contracts (v3.5.1)
symfony/validator (v7.2.4)
symfony/var-dumper (v7.2.3)
symfony/var-exporter (v7.2.4)
symfony/yaml (v7.2.3)
tijsverkoyen/css-to-inline-styles (v2.3.0)
twig/twig (v3.19.0)
voku/portable-ascii (2.0.3)
webmozart/assert (1.11.0)
willdurand/geocoder (4.6.0)
wpai-inc/anthropic-sdk-php (0.2.1)
yethee/tiktoken (0.5.1)

Drupal Entropy

Product Roadmaps (Kerry Greer, Forum One)

  • Product Roadmap
    • A strategic visual document outlining product evolution
    • Defines milestones and dependencies
    • Product vs project roadmaps
  • Why?
    • Aligns expectations of all stakeholders in the product
    • Human buy-in;
  • Prioritization
    • Models/Tools/Techniques
      • Impact/Effort Matrix (Value=Y, Effort=X; plot on grid)
      • MosCoW Framework (Must, Should, Could, Won’t)
      • Kano Model
      • Rice Scoring Model
    • Estimation
      • Everyone wants one; they’re always wrong
      • Take time estimate; + add 30%
  • Setting Realistic Timelines (Considerations)
    • Development Complexity Factors
    • Content migration
    • Refinement cycles
    • “A things we don’t know yet category”
  • Resource Management and Allocation
    • Team Allocation (developer skills matrix for Drupal)
    • External Resources (3rd party integrations)
    • Workload Balancing (critical path management)
    • Time Budgeting (buffer time for unknowns 20% rule)

Paragraphs and Single Directory Components

  • Paragraphs - https://www.drupal.org/project/paragraphs
    • Paragraphs provide an intuitive way to enter and manage content using structured data.
  • Single Directory Components - https://www.drupal.org/project/sdc
    • Single Directory Components (SDC) bring modular design, encapsulating styles, functionality, and structure within a single directory. Everything you need for your component is held together in a single, known location on the file system.
  • Why?
    • Reducing maintenance costs (Drupal itself, along with site customizations)
    • Simplified documentation (standard application of styles across sites)
    • Multisite organizations; some paragraphs had styles, others did not.
  • Technical Details
    • SDC (props and slots)
      • Required files (.twig and .yml)
        • Props
          • Props are openings within a component.
          • Filled with structured data
          • Data from another (parent) component or from the view within which it is imported
        • Slots
          • Slots are openings within a component.
          • Can take other markup or even other components.
  • Presentation Slides

Key Takeaways for Drupal 11 Release

  • Drupal 11
    • Added to Core
      • Workspaces
      • Recipes
      • Single Directory Components
      • New Navigation
    • Removed from Core
      • Actions UI
      • Book
      • Tracker
      • Forum
      • Statistics
      • Tour
    • Expectations, with minor release updates
      • Improved Recipes
      • Project Browser
      • Automatic Updates
      • Experience Builder v1.0
  • 2025 Goals
    • Migrate to Gin admin theme
    • Soft step towards “New Navigation” and “Experience Builder”
New Navigation Mock-up
  • October 2025
    • Target release date for Experience Builder
      • Influenced by Radix UI primitives: https://www.radix-ui.com/primitives
      • Tailwind CSS: https://tailwindcss.com/
  • December 2025
    • Drupal 11.3.0 and 10.6.0 released. End of security support for 10.4.
    • Books module becomes a contrib module with Drupal 11.

TRL Pile

The Update Framework (TUF) Metadata