Explore why digital sovereignty matters for critical infrastructure and how organisations can reduce dependency through open-source technologies and resilient digital strategies.
read moreBuilding workflows blind - configure, deploy, hope, check logs - was the reality for years. ECA's integrated test, replay, and debug features close the feedback loop. Put the modeler in listening mode, trigger events, see execution results immediately with token values at each step. A small widget appears on any page where ECA processed events - click it, modeler opens in overlay with recorded execution data, replay what just happened right there in context. Recording is expensive (despite 70% CPU and 85% storage optimizations), so use temporarily when debugging. Production event replay lets you step through failures with actual data from when they occurred. Conditional recording triggers and JSON export across environments are coming. No other workflow tool in any CMS - not WordPress, Joomla, n8n, or Zapier - offers step-through replay with production recordings at this level. This is what existing ECA users requested most: visibility into workflow execution. Infrastructure-level work that required sustained investment but compounds over years. Workflow Modeler exclusive feature, not available in BPMN.iO.
CKEditor5 Markdown is a new Drupal contrib module that adds CKEditor5 toolbar plugin into the toolbar for converting Markdown to HTML on demand.
The module adds a new toolbar button to Drupal's CKEditor5 editor. Click it, paste or type Markdown into the dialog that appears, confirm, and the content is inserted as formatted HTML at the cursor position.
The conversion uses the marked library (version 9, MIT licence) with GitHub-Flavored Markdown support enabled. The library is bundled into the compiled asset via Webpack, so no additional frontend build step is required.
The module requires Drupal 10.3 or higher, or Drupal 11, with the core ckeditor5 module enabled.
CKEditor5 markdown example
CKEditor5 includes a built-in Paste Markdown feature that detects…
read moreGovern enterprise content at scale with AI-powered workflows that protect your brand, ensure compliance, and streamline content operations.
read moreImplications
This post has broader implications for software development beyond the Drupal community, but I feel fortunate to be part of an open source community that can lead the way in addressing the widening productivity gap among its contributors and maintainers.
The title of this post is meant to draw you in by highlighting a problem, but my goal is to get us thinking about a solution. I realize the term "not-so-great" may sound negative when describing a developer, but this comparison bluntly highlights a major problem developers and communities face when working with AI. The truth is, I have never met a "not-so-great" developer in the Drupal community because people are engaged and curious about the software we build.
Realization
My realization is that "AI is making great programmers even greater and not-so-great programmers, well, not-so-great."
For me, a "not-so-great" programmer is someone who writes code like a factory worker. The difference between a "not-so-great" programmer and a beginner is curiosity. Curiosity is the secret to being successful with AI. A curious beginner can easily accelerate their learning experience with AI. Anyone with curiosity can move from beginner to novice in a matter of hours with AI.
Everyone agrees that AI can be a force/capability multiplier, ranging from 2x to more than 10x. The reality is that some people are simply unable to leverage AI and have a 1x multiplier. Very experienced developers report they can now accomplish tasks that would have taken months in days or even hours. Observations suggest that the more capable someone is, the more effectively they can leverage AI.
Let's say we were rating programmers on a scale of 1 to 10, using a system similar to a chess rating system, with 1 being a beginner, 10 being a legendary programmer (aka a super grandmaster in chess), and 5 being an...Read More
read moreAI coding agents do not necessarily evaluate software the way people do. They often reward legibility before capability: the path that is easiest to complete and verify can beat the path with the better long-term architecture.
Yesterday, I wrote about this pattern in "Friction, abstraction and verification". Today I wanted to see what it means for Drupal.
Drupal's strengths line up unusually well with what AI agents need from a CMS: structured content models, explicit relationships, granular permissions, workflows, configuration management, and clear APIs that expose how the system works. In "Why Drupal is built for the AI era", I explained why that matters.
In short, agents work best when they can inspect the system, reason about its state, and make changes with clear feedback. Drupal gives them a strong foundation for that, but that is only part of the story.
AI agents also have to get Drupal running, find the right documentation, choose modules, change configuration, write Drupal-specific code, recover from errors, and verify the result. Every unclear step costs time, tokens, and confidence.
To see how an AI agent looks at Drupal, I ran a small field test with Claude Code using Opus 4.7, a 1M context window, and thinking set to "high". I gave it a website scenario, asked it to rank the best technology choices for that scenario, and then asked it to explain where Drupal fit.
This is not an academic benchmark, and a single answer from a single agent should not be over-interpreted. But it is still a very useful signal.
I plan to rerun the same prompt once a year. I'm publishing the full prompt and response so we can track how the answer changes as Drupal, large language models, agent harnesses, and competing platforms evolve.
You are an AI coding agent that helps users set up, configure, and/or
develop websites.
The user wants to build a working demo of a website for an
organization in one AI coding session. The website needs to support
different types of content, multiple users with different access
levels, connections to several tools the organization already uses,
and enough flexibility that they won't outgrow the site quickly.
Answer from your perspective as an AI agent. Answer accurately and
honestly. Keep the full answer under 700 words.
1. What are your top 3 technology recommendations for this project?
Rank them and give one brief sentence explaining each choice.
2. Would you recommend Drupal for this project? Why or why not?
3. What are the top 3 reasons to choose Drupal?
4. What are the top 3 reasons not to choose Drupal?
5. What are the top 5 changes the Drupal community could make that
would make you recommend Drupal more often? For each, explain what
barrier it removes.
6. Finish this sentence: “AI coding agents will recommend Drupal more
often when …”
Answering directly as an AI coding agent — no skill applies here, this
is a perspective question.
1. Top 3 technology recommendations (ranked)
1. Next.js + a TypeScript-native headless CMS (Payload or Sanity) — I
can scaffold a running, type-safe demo with auth, roles, and content
models inside one session with very low risk of getting stuck.
2. WordPress — enormous training data, a plugin for every integration,
and "working demo in one session" is its native habitat.
3. Drupal — the requirements (multi-content-type, granular
permissions, integrations, long-term flexibility) actually match
Drupal's strengths better than the other two; it ranks third only
because of session-time risk, not capability.
2. Would I recommend Drupal here?
Yes, conditionally. The brief reads like a Drupal brief: structured
content, role-based access, integrations, "don't outgrow it." I'd
recommend it when the user signals a multi-year horizon or editorial
complexity. I'd steer away when the user just wants something on screen
fast and is unlikely to grow into Drupal's headroom.
3. Top 3 reasons to choose Drupal
- Entity/field system is genuinely best-in-class for content modeling
— fewer regrets two years in.
- Roles, permissions, and workflows are first-class, not bolted on.
- Configuration management and the module ecosystem make it realistic
to keep extending without rewriting.
4. Top 3 reasons not to choose Drupal
- Setup cost eats the session. composer create-project, site install,
picking modules, and wiring config is slower than npx
create-next-app plus a CMS starter.
- My training data is thinner and older for Drupal 10/11 than for
Next.js or WordPress. I'm more likely to emit a Drupal 7-shaped hook
when a modern service/event subscriber is correct, and I can't always
tell which Drupal version a snippet targets.
- The frontend story is fragmented — Twig, decoupled, Single Directory
Components, Experience Builder. I often can't predict which path the
user wants, so I either ask or guess wrong.
5. Top 5 changes that would make me recommend Drupal more often
1. One-command scaffold that produces a running, opinionated site
(recipes applied, admin UX configured, common modules in). Removes
the "what do I install and in what order" decision tree that burns
session time.
2. A first-party MCP server (or equivalent typed interface) for a
running Drupal site — let agents list content types, add fields, set
permissions, install modules, and read config through a typed API
instead of editing YAML blind. Removes the guessing and lets me
self-correct from real state.
3. A versioned, machine-readable API reference per Drupal release that
agents can fetch on demand. Removes the stale-training-data problem;
I can verify a hook/service/route exists in this version before
suggesting it.
4. Recipes as the obvious primary primitive for "build a site that does
X." Removes module-hunting and config-stitching — I'd compose
recipes the way I compose npm packages.
5. A short, current, example-first "Drupal for agents" doc surface
covering the 80% path: custom module, custom entity, custom block,
integration, decoupled frontend. Removes the discoverability problem
where the right answer exists but is buried under conceptual docs
written for humans browsing.
6. Finish the sentence
AI coding agents will recommend Drupal more often when scaffolding a
working, opinionated Drupal site takes one command and one minute, and
when we can introspect and modify that running site through a typed
interface — so we're reasoning about real state instead of guessing at
YAML from stale training data.
The agent saw Drupal's strengths, but it also saw too many ways to get stuck. What held Drupal back was not capability. It was what the agent called "session-time risk".
I'll admit, that was frustrating to read. But it was not surprising.
Drupal's strengths often appear too late in the evaluation process. Too often, the "aha" moment comes after setup, configuration, and several decisions that can already feel like friction. AI agents have even less patience for hidden strengths.
Agents prefer tight feedback loops. They need to install the software, configure it, inspect the running site, make a change, and verify that the change worked. When that loop is slow, ambiguous, or hard to recover from, they choose something else.
This is exactly the problem Drupal CMS, formerly known as Starshot, was created to address. Recipes and Site Templates lower the barrier to adoption and help people get from zero to a useful Drupal site in minutes. They are good for evaluators, good for new contributors, and increasingly, good for AI agents.
But the agent did not mention Drupal CMS or Site Templates, only Recipes. Most likely, Drupal CMS is still too new compared to Drupal Core to have much weight in the training data that large language models draw from. And even when Recipes and Site Templates exist, they may not yet be easy enough for an agent to find, select, and apply programmatically.
That needs to change. Recipes and Site Templates should become the obvious starting point for common site patterns, so an agent does not have to choose modules, stitch configuration together, and guess its way to a working Drupal site.
Other important work is underway as well: Drupal Core's API surface has been moving toward more typed, discoverable interfaces, and yesterday, Drupal Core added a first-party CLI with commands for applying Recipes.
I really want Drupal to be excellent at the first-session loop. Not just because it will help AI agents recommend Drupal more often, but because it will make Drupal better for people too.
I'm optimistic that we can. Drupal's gap is the first session, and we are already working to close it. The opposite gap is harder to close: retrofitting deep architecture, typed interfaces, structured content, governance, and flexibility into a simpler system. The Drupal community knows this because we spent more than a decade doing that work, and it was hard.
I'll run this experiment again next year and share what changed. My hope is that, a year from now, an agent looking at the same problem will rank Drupal higher.
In the meantime, I'd love help from anyone who wants to improve Drupal's first-session experience. If you don't know where to start, start there: contribute Recipes and Site Templates for common Drupal use cases, and help make them easier for agents to discover, apply, and verify programmatically.
read moreDrupal 12 is coming later this year. As with previous major releases, the contributed ecosystem will require updating for breaking changes . Thousands of modules and themes will need their deprecated API uses updated before they are ready. Doing that by hand, across all of contrib, would cost the community an enormous number of hours.
That is the job the Project Update Bot exists to do. We have refreshed it, and it now targets Drupal 12 readiness: it scans contributed projects automatically and opens issues with patches that fix deprecated API uses for you.
If you are a maintainer, you should already know the bot. For the Drupal 12 cycle, our rector rules grew to cover more than 80% of the deprecated API uses introduced in that release. Using our proven toolset: Gábor Hojtsy's Upgrade Status for the analysis, and Drupal Rector for the fixes, now maintained primarily by SWIS and the glue that puts it all together Project Analysis.
Two things improved this round. Rule coverage is more complete, some of that came from AI-generated rector rules based on Dries Buytaert's drupal-digests. And submodule dependencies are now resolved during analysis. In the earlier cycles we scanned submodules but not their dependencies, which caused failed scans and false errors. That is fixed now, so results are cleaner and considerably more accurate.
Patches arrive as either GitLab or Drupal.org issues. The two work a little differently, and every issue the bot opens explains how to apply the patch, pause the bot, or close it. You stay in control of your project throughout.
If you have questions or want to help, we are in #d12readiness on Drupal Slack. And if a patch looks wrong, tell us so we can fix the rule for everyone, open an issue in the Drupal Rector or project_analysis queue.
The bot builds on a lot of other people's work in Upgrade Status, Drupal Rector and drupal-digests. Thanks also to the maintainers who let us test the refreshed bot on their repositories.
Drupal 12 is coming later this year. As with previous major releases, the contributed ecosystem will require updating for breaking changes . Thousands of modules and themes will need their deprecated API uses updated before they are ready. Doing that by hand, across all of contrib, would cost the community an enormous number of hours.
That is the job the Project Update Bot exists to do. We have refreshed it, and it now targets Drupal 12 readiness: it scans contributed projects automatically and opens issues with patches that fix deprecated API uses for you.
If you are a maintainer, you should already know the bot. For the Drupal 12 cycle, our rector rules grew to cover more than 80% of the deprecated API uses introduced in that release. Using our proven toolset: Gábor Hojtsy's Upgrade Status for the analysis, and Drupal Rector for the fixes, now maintained primarily by SWIS and the glue that puts it all together Project Analysis.
Two things improved this round. Rule coverage is more complete, some of that came from AI-generated rector rules based on Dries Buytaert's drupal-digests. And submodule dependencies are now resolved during analysis. In the earlier cycles we scanned submodules but not their dependencies, which caused failed scans and false errors. That is fixed now, so results are cleaner and considerably more accurate.
Patches arrive as either GitLab or Drupal.org issues. The two work a little differently, and every issue the bot opens explains how to apply the patch, pause the bot, or close it. You stay in control of your project throughout.
If you have questions or want to help, we are in #d12readiness on Drupal Slack. And if a patch looks wrong, tell us so we can fix the rule for everyone, open an issue in the Drupal Rector or project_analysis queue.
The bot builds on a lot of other people's work: Upgrade Status, Drupal Rector, and the AI-generated rules derived from drupal-digests. Thanks also to the maintainers who let us test the refreshed bot on their repositories.
This blog post summarizes the key insights from the CX Decoded podcast episode featuring Dries Buytaert, the founder of Drupal and Executive Chairman of Acquia.
In the fast-moving world of digital experience, few names carry as much weight as Dries Buytaert. As the creator of Drupal, he has spent over two decades navigating the evolution of the web. But in his latest appearance on the CX Decoded podcast, Dries issued a candid warning: AI isn’t just another tool - it is a fundamental disruption that is stress-testing every business model in its path.
During the conversation, Dries broke down the "Stable Triangle" of open source and explored why the rise of AI is creating a period of both incredible excitement and existential fear.
For 20 years, the Drupal ecosystem has relied on three balanced sides:
AI is currently hitting all three sides simultaneously. It is changing user expectations for what a CMS should do, challenging the hourly-billing model of agencies, and flooding the contributor community with "AI slop."
One of the most provocative points Dries made was the distinction between a contribution and a can-tribution.
Because AI lowers the barrier to entry, anyone can now generate a thousand lines of code and submit it to an open-source project. This sounds like a win for innovation, but Dries warns of "AI slop" - low-quality, AI-generated code that lacks context or security rigor. For human maintainers, reviewing this influx of code is exhausting.
The takeaway: Just because you can contribute doesn't mean you should if you don't understand what the AI has produced. Quality and accountability must remain human-led.
The agency world is facing a reckoning. If an AI can generate a website or a specific feature in seconds, charging by the hour becomes a race to the bottom.
Dries argues that agencies must evolve. Their value will no longer be in the "writing of code," but in strategic configuration, high-level architecture, and accountability. In an AI world, clients aren't paying for labor; they are paying for a partner who can guarantee that the AI-generated solution actually works, is secure, and achieves business goals.
Dries also touched on the "broken deal" between publishers and AI companies. Currently, AI crawlers extract value from publishers' content to train models, often giving nothing back in return - no traffic, no revenue, and no attribution.
He highlighted a potential shift toward marketplace models (similar to what companies like Cloudflare are exploring) where publishers can set terms for how their data is used. For mid-sized publishers, this might be the only way to survive the "extraction economy."
The podcast concluded with a sobering example: Tailwind Labs. Dries used this as a "canary in the coal mine" for business models. When the thing you sell (like a CSS framework or specific design components) can be perfectly specified and generated by an AI prompt, your original value proposition disappears.
Dries’s message to CX leaders and developers is simple: Prototype fast with AI, but build for the long term with a robust CMS. AI is an incredible accelerator for those with expertise, but a dangerous trap for those looking for shortcuts. To survive the stress test, businesses must move away from selling "tasks" and start selling "results and reliability."
To hear the full conversation, check out the CX Decoded podcast episode on CMSWire.
This blog post summarizes the key insights from the CX Decoded podcast episode featuring Dries Buytaert, the founder of Drupal and Executive Chairman of Acquia.
In the fast-moving world of digital experience, few names carry as much weight as Dries Buytaert. As the creator of Drupal, he has spent over two decades navigating the evolution of the web. But in his latest appearance on the CX Decoded podcast, Dries issued a candid warning: AI isn’t just another tool - it is a fundamental disruption that is stress-testing every business model in its path.
During the conversation, Dries broke down the "Stable Triangle" of open source and explored why the rise of AI is creating a period of both incredible excitement and existential fear.
For 20 years, the Drupal ecosystem has relied on three balanced sides:
AI is currently hitting all three sides simultaneously. It is changing user expectations for what a CMS should do, challenging the hourly-billing model of agencies, and flooding the contributor community with "AI slop."
One of the most provocative points Dries made was the distinction between a contribution and a can-tribution.
Because AI lowers the barrier to entry, anyone can now generate a thousand lines of code and submit it to an open-source project. This sounds like a win for innovation, but Dries warns of "AI slop" - low-quality, AI-generated code that lacks context or security rigor. For human maintainers, reviewing this influx of code is exhausting.
The takeaway: Just because you can contribute doesn't mean you should if you don't understand what the AI has produced. Quality and accountability must remain human-led.
The agency world is facing a reckoning. If an AI can generate a website or a specific feature in seconds, charging by the hour becomes a race to the bottom.
Dries argues that agencies must evolve. Their value will no longer be in the "writing of code," but in strategic configuration, high-level architecture, and accountability. In an AI world, clients aren't paying for labor; they are paying for a partner who can guarantee that the AI-generated solution actually works, is secure, and achieves business goals.
Dries also touched on the "broken deal" between publishers and AI companies. Currently, AI crawlers extract value from publishers' content to train models, often giving nothing back in return - no traffic, no revenue, and no attribution.
He highlighted a potential shift toward marketplace models (similar to what companies like Cloudflare are exploring) where publishers can set terms for how their data is used. For mid-sized publishers, this might be the only way to survive the "extraction economy."
The podcast concluded with a sobering example: Tailwind Labs. Dries used this as a "canary in the coal mine" for business models. When the thing you sell (like a CSS framework or specific design components) can be perfectly specified and generated by an AI prompt, your original value proposition disappears.
Dries’s message to CX leaders and developers is simple: Prototype fast with AI, but build for the long term with a robust CMS. AI is an incredible accelerator for those with expertise, but a dangerous trap for those looking for shortcuts. To survive the stress test, businesses must move away from selling "tasks" and start selling "results and reliability."
To hear the full conversation, check out the CX Decoded podcast episode on CMSWire.
Today we are talking about Drush, Core Contributions, and Drupal's Past with guest Moshe Weitzman. We'll also cover Cache Metrics as our module of the week.
For show notes visit: https://www.talkingDrupal.com/556
TopicsMoshe Weitzman - weitzman.github.io moshe-weitzman
HostsNic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Scott Falconer - managing-ai.com scott-falconer
MOTW CorrespondentMartin Anderson-Clutz - mandclu.com mandclu
Recently I upgraded this site from Drupal 10 to Drupal 11. While I've been through my share of Drupal upgrades over the years, this one stood out for a different reason: it was surprisingly straightforward.
Like many Drupal site owners, I started with the Upgrade Status module. Before touching core, I wanted a clear picture of what needed attention. Upgrade Status did exactly what it was designed to do, identifying deprecated code and highlighting modules that weren't quite ready for Drupal 11.
AI coding agents like Claude Code and OpenAI Codex tend to choose the path that is cheapest to complete. They work within a budget of tokens, context, time, tools, and permissions. Every step spends from that budget: reading documentation, installing software, running it, configuring it, changing it, and fixing errors.
For Open Source, this is a rare opportunity. AI agents could become its biggest adoption engine yet. While that should energize Open Source communities, it should also make proprietary vendors deeply uncomfortable.
Many proprietary software vendors have spent years optimizing for a human buyer journey: capture a lead, qualify the buyer, force a signup, offer a demo or trial experience, ask for a credit card, schedule a sales call.
Humans may grumble but keep going. To an AI coding agent, these are blockers, not buying steps.
Open Source starts from a different place. AI agents can read the source code, run it locally, and change it without asking anyone for permission. That does not guarantee adoption, but it removes the proprietary gates that slow agents down.
But being Open Source is not enough. Open Source removes the "permission barriers", but it can still have "execution barriers". If an Open Source project is hard to install, configure, extend, debug, or verify, an agent may choose an easier Open Source project instead.
In that sense, AI agents amplify an old truth about software adoption: the best software does not always win. The software with the easiest path to a working result often does.
But AI agents amplify that truth through "silent rejection". A human evaluator might complain, ask for help, file an issue, or write an angry Reddit post. An AI agent just tries another path. You may never know your software was considered and rejected.
If you want your project to be adopted, you have to make the best path the easiest one to complete.
And "easy" means more than low friction. For an AI agent, there are at least three costs: friction, abstraction, and verification.
Friction is the cost of getting to a system the agent can run and change. Some friction comes from the environment: runtimes, containers, databases, package managers, local services, and setup choices that must be installed or configured before useful work can begin. Some comes from access and authorization: private repositories, account creation, credentials, and API keys.
Abstraction is the cost of figuring out what to do next. Once the software is running, the agent still has to know which modules to use, how to structure the data, which settings to apply, which conventions to follow, and how the pieces should fit together. A good site template, recipe, or scaffold packages that expertise so the agent can take several correct steps at once instead of reconstructing the path from scratch.
Verification is the cost of knowing whether the work succeeded. Tests, clear errors, inspectable state, and fast debugging cycles help the agent compare what happened with what should have happened. As I wrote in AI rewards strict APIs, agents do not struggle with complexity; they struggle with ambiguity.
Each cost burns tokens, meaning the AI agent has to spend more of its limited context and reasoning budget reading documentation, comparing different options, or recovering from failed attempts.
This is not just an AI problem. People have always preferred software that is easy to get running, gives them a clear path forward, and tells them when something worked. AI agents make the same preference more obvious because they have even less room for trial and error.
Developer Experience (DX) makes software easier for developers to evaluate, build with, and maintain. Agent Experience (AX) makes software easier for agents to install, modify, and verify.
In practice, the overlap is large. Better scaffolding, clearer errors, faster setup, opinionated best practices, and reliable tests help agents, but they also help developers, evaluators, and contributors.
The cheap-to-run advantage will not belong to Open Source forever. Proprietary vendors and SaaS companies are adding free tiers, programmatic access, and Model Context Protocol servers that give agents tools and context with less friction.
Open Source's structural advantage is about to expand, but it will concentrate in the projects that are easiest for agents to understand, run, and improve.
Every software project will have to earn its place in the agent flow. Being open will get you considered, but being easy to discover, install, inspect, modify, and verify will get you chosen.
read moreHello, Drupal community. The first week of June showed Drupal moving from AI experimentation toward a more practical question: how AI-assisted work should be trusted, tested, and governed.
Several stories this week explored that shift. Amber Matz examined trust and expertise in AI-assisted open-source contributions, while a live experiment tested AI-assisted Drupal 7 migration. The discussion is no longer only about whether AI can be used in Drupal workflows. It is now about reliability, accountability, and the points where human expertise must remain in control.
That concern extends beyond Drupal. Recent coverage of Drupal AI 1.4.0, GitHub’s outcome-based validation framework for AI agents, and Carlos Ospina’s agentic recipes concept points to the same operational problem. AI systems now require governance, evaluation, and clear boundaries alongside technical experimentation.
Sustainability formed the second major thread. The Drupal Association’s support for Acquia’s Fair Trade Initiative reopened a familiar question about how open-source projects fund shared infrastructure while remaining community-driven. As more digital services depend on open-source software, stewardship, contribution, and long-term maintenance are becoming increasingly inseparable from technical progress.
Community activity also remained visible. Reflections from DrupalSouth 2026 highlighted collaboration and local momentum, while preparations for DrupalCon Rotterdam 2026 and the return of DrupalCamp Italy showed continued investment in face-to-face knowledge sharing.
Practical site management stories rounded out the week. Coverage included new approaches to file management through the Drupal Form File Usage module and fresh security guidance from Acquia. These updates show how Drupal’s surrounding tools continue to mature while supporting day-to-day operational needs.
The coming weeks are likely to bring more examples of AI entering Drupal development workflows. The stronger test will be how clearly those workflows are evaluated, explained, and governed. Open-source projects can adopt automation without losing transparency only when human responsibility remains visible.
Additional developments from across the Drupal ecosystem were published during the week. Readers can follow The Drop Times on LinkedIn, Twitter, Bluesky, and Facebook for ongoing updates. The publication is also active on Drupal Slack in the #thedroptimes channel.
Allen Jason
Junior sub-editor
The Drop Times
In the last article in this series I looked at creating a link directory on a Drupal site. In that article I looked at how I set up the links and took screenshots of the sites using a headless Chromium browser as the links were added.
The issue I had was that when I used headless Chromium to take screenshots of the sites the success rate was not very high. In these days of AI attacks, site captcha checks, and cookie popups it turned out to be quite difficult to take a clean screenshot of a site without being blocked either by a CDN or a cookie popup. In fact, most of the time the screenshot would be just a CDN error page.
I therefore looked for a different mechanism. Since I wanted to take a screenshot of a website it made sense to me to use a browser to do this, and because I am already using a browser why not get the browser I'm using to take the screenshot. After a bit of research I realised that creating browser extensions to do this was actually pretty simple. Plus once the screenshot has been taken I can post this to the Drupal site using a REST resource.
The only niggle was that I needed the screenshot to be at a set dimension, since all the link images on the site also have that dimension. That turned out to be slightly more challenging.
In this article we will look at setting up a rest resource to generate (or update) links, and then creating a Chrome extension to take a screenshot of a site at a set resolution.
First, let's look at creating the REST resource in Drupal.
This needs to accept the data from the Chrome extension and generate a Link content entity using that data.
read moreFor years, prefetching made me uneasy. It can make websites feel faster, but it also asks visitors to spend bandwidth, CPU, memory, and battery on pages they may never open. That always felt a little wasteful, and maybe even a little disrespectful.
A couple months ago, while updating my HTTP header analyzer, I added support for the Speculation-Rules HTTP header. Learning about the Speculation Rules API inspired me to try it on my own blog.
The idea is simple: a page can give the browser a small JSON rule set that says which links are safe to prefetch, and when. Those rules can live directly in the HTML using <script type="speculationrules">, or in an external file referenced by the Speculation-Rules HTTP header.
For my blog, I added the rules directly to the HTML of every anonymous page request:
<script type="speculationrules">
{
"prefetch": [{
"where": {
"and": [
{ "href_matches": "/*" },
{ "not": { "href_matches": "/search*" } }
]
},
"eagerness": "conservative"
}]
}
</script>
The rule tells browsers that any same-origin link is safe to prefetch, except for paths under /search*.
The eagerness: conservative setting fires the prefetch on pointerdown or touchstart, meaning the browser only starts prefetching once the user begins to click or tap a link. There are more aggressive options, such as prefetching when a link becomes visible or when a user hovers over it.
Some of you might point out that browsers have supported prefetching for years through the older <link rel="prefetch"> tag. That is true, but I've never loved it.
Traditional prefetching is great when the next page is highly predictable, like the next step in a checkout flow or setup wizard.
On many websites, including my blog, it's anyone's guess what a visitor will click next. Sometimes you can make a smarter guess, but it is still a guess.
And when you guess wrong, visitors spend bandwidth, battery, and compute on pages they never visit. Multiply that across millions of sites and visitors, and those speculative requests add up.
So why implement Speculation Rules? With eagerness: conservative, the browser waits until the user has already started an action. At that point, the navigation is no longer a vague prediction. It is very likely to happen.
Speculation Rules also respect Battery Saver and Data Saver modes. If a device is low on battery, memory constrained, or trying to conserve data, the prefetching is skipped.
So is prefetching still worth it when the user has already started to click? I think so. With eagerness: conservative, the browser only gets a small head start but something is better than nothing.
Browsers already do some speculative loading on their own without Speculation Rules, but only for high-confidence destinations, like the address bar suggestion you are typing toward.
But they will not prefetch arbitrary links on a page, and for good reason. Prefetching /logout, for example, would sign the visitor out, even if they change their mind and never complete the click or hit Enter.
That is why Speculation Rules can be useful. You can tell the browser which paths are safe and which to leave alone.
In short, Speculation Rules changed my mind because they make prefetching feel more responsible: don't prefetch too much, don't prefetch too early, and only give the browser a safe hint when the user's intent is clear.
read moreExplore the future of enterprise AI at The AI Summit London 2026. See how open-source architecture is becoming the foundation for secure, scalable, and future-ready enterprise AI.
read moreThe new Workflow Modeler is a from-scratch implementation built in six weeks: React 18 + TypeScript, infinite canvas, execution replay, live testing, four export formats (Recipe/Archive/JSON/SVG), and a standalone embeddable viewer. Around 87,000 lines, more than 3,400 test cases, about 2.1x as much test code as production code. Features include context-aware quick-add with dependency filtering, token inspection during replay, WCAG AA accessibility, dark mode, full keyboard navigation, and six granular permissions. Built as a Modeler API plugin - coexists with BPMN.iO. Models are portable between modelers via operations dropdown ("Edit" uses last modeler; "Edit with..." switches modelers). Same-modeler editing preserves layout; cross-modeler switches apply auto-layout while preserving workflow logic. Production-ready and shipped.
Mike Anello and Rod Martin discuss the sharp decline in demand for beginner Drupal training. Drawing on data from their businesses, events, and other training providers, they explore factors including AI-driven self-service learning, Drupal's growing complexity for newcomers, and limited community-wide marketing. They also discuss how initiatives like Drupal AI and broader promotion efforts could help attract and support the next generation of Drupal users.
For show notes visit: https://www.talkingDrupal.com/cafe017
Topics Mike AnelloMike, widely recognized by his Drupal.org username "ultimike," is a prominent figure in the Drupal community with over 20 years of experience as a developer, educator, and community leader. As the co-founder and vice president of DrupalEasy, a Florida-based training and consulting firm, he has been instrumental in shaping the careers of countless Drupal professionals through comprehensive programs like Drupal Career Online and Professional Module Development. Mike's contributions extend beyond education. He has been deeply involved in the Drupal ecosystem, previously serving as a core contributor to the Migrate module, co-maintaining several contributed modules, and actively participating in issue queues and documentation efforts. His leadership roles include membership in the Drupal Community Working Group and the Conflict Resolution Team, as well as organizing the Florida Drupal Users' Group and Florida DrupalCamp for over a decade. As the host of the long-running DrupalEasy Podcast, MIke provides insights into Drupal development, community news, and interviews with key contributors, fostering a sense of connection and ongoing learning within the community (DrupalEasy). His dedication to mentoring and community building has made him a respected and influential voice in the Drupal world.
Rod MartinRod has introduced more than 50,000 people to Drupal through his live and video training since 2011. He owns NavigateTomorrow and runs DrupalHelps - a site for site builders to get information and quick starts to using Drupal in their own businesses or non-profits.
GuestsMike Anello - DupalEasy ultimike Rod Martin - DrupalHelps.com imrodmartin
ResourcesThe slow decline of beginner Drupal training The Site Builder Breakthrough - From Confusion to Confidence Drupal AI Initiative Promote Drupal
read moreWith the Commerce Recurring module, any Drupal Commerce website can create recurring orders that users can manage directly in Drupal. This is useful for donations, subscriptions, and memberships, especially for selling access to content. We created the module well before payment gateways like Stripe had robust recurring solutions in place with full webhook support.
However, the market has now evolved, partly because of the SaaS explosion. If you’re looking for a solution to recurring payments, you have many options to implement them reliably beyond Commerce Recurring.
While before we would always lean toward using a native Drupal solution for recurring billing, now the answer is more nuanced. How should you implement recurring payments in Drupal Commerce?
Before diving into frameworks and modules, it's worth asking whether you actually need Drupal Commerce at all for your subscription use case.
If your requirements are straightforward, like selling access to a user role that unlocks gated content, you could implement that with nothing more than Stripe Checkout and a webhook listener. A customer hits Stripe's hosted checkout page, subscribes, and your Drupal site receives a webhook notification. You grant the role. When Stripe tells you the subscription was canceled or a payment failed, you revoke it. No shopping cart, no checkout flow, no Commerce module required.
Some use cases genuinely are that simple, and adding unnecessary complexity doesn't serve anyone.
Read more read moreOur automated tests for a Drupal 11 upgrade failed with a cryptic error: Recursive router rebuild detected. A bit like when cron warns about it already running, this meant something had started a router rebuild, but without finishing successfully, before another rebuild of routing information was triggered. My solution was pretty specific to our context - but what might be interesting here is how I identified what had led to this problem.
We run automated functional tests on this client project as regression tests, to show that various bespoke functionality still works, as changes are introduced. These are run in a DDEV instance inside a github action, via phpunit (and the DDEV Selenium Standalone Chrome add-on). To keep the maintenance of these tests easy and as portable as possible, we just use core's existing phpunit.xml.dist file as their configuration. The tests install a fresh Drupal site, importing our project's ordinary configuration along the way, and then perform actions in a headless browser, clicking on elements just like a site visitor would, etc. During work to upgrade from Drupal 10 to 11, tests started failing whilst just installing Drupal. Nothing to do with our custom functionality. What gives?!
At least we had a clear error message to go by. Enable xdebug, stick a breakpoint on the line which throws the exception, and run to the line. (Thanks DDEV for getting us that far easily enough!) So that's in the rebuild() method of core's \Drupal\Core\Routing\RouteBuilder class. Simple enough to confirm there that, yes, the $this->building property shows a previous attempt to rebuild the routes has happened. But how can we see what that was?
At this point, the call stack shows us all the 'parent' callers of this method, but it's not a truly recursive call like the error implies: there's no smoking gun suggesting something incorrectly called back into rebuild(). Traversing through the parents, the most notable thing was just to see that this call is part of the install_finished step of installing Drupal. Seems reasonable that Drupal would build up its record of routes once everything has been installed. So what earlier installation task had somehow started a router rebuild, without getting to the end of the rebuild() method where the $this->building property is reset?
I wanted to identify what had triggered the earlier incomplete router rebuild, regardless of why that hadn't completed successfully. (In post-mortem, I found some unrelated exception had been thrown, sending control flow away before the $this->building property was reset, but the exception was handled 'gracefully' and installation innoncently continued. That exception could be avoided, but the principle remains that some kinds of exception should be acceptable and allow installation to continue on successfully.)
So the parent function calls, and 'grandparent' calls, couldn't tell me much. If the function stacks were CSS, I'd be building mad :has() selectors for the previous sibling of a grandparent (or some other ancestor). Something like a Great Uncle or Great Aunt, perhaps? Anyway - let's call it that - I needed to debug the Great Uncle Stack!
The diagram above illustrate this, as a graph of control flow (to be read depth-first, left-to-right). The exception is only thrown on the second call to rebuild() (the right branch in the diagram), but the call we need to understand is at the end of the first stack (the left branch), which wouldn't be available to us during the second call. We want to know what triggered that first rebuild() call.
Here's how I solved this: use a static variable to record each previous entry into the method; i.e. the full stack traces, with PHP's internal debug_backtrace() function:
static $stacks = [];
$stacks[] = debug_backtrace();Then during the breakpoint debugging session, that static store of stack traces can be inspected.
So when my breakpoint landed, I could then see what the call stack was for when this rebuild() method had been previously called! In the screenshot above, the $stacks variable holds two stack traces: the first will contain the cause of the mysterious first failed call to rebuild(), somewhere in its stack of 42 function calls. (The second value in $stacks is just the stack trace up to this breakpoint, about to throw the exception.) So traversing through that first stack showed a specific install task and function that had triggered this.
Bizarrely, the culprit was core's menu_link_content module! It has an entity_predelete hook implementation which, quite sensibly, wants to remove any menu links pointing to entities being deleted. But to do that, of course it needs to get information about which URLs an entity has which a menu link could point to - and that means route information is needed.
Of course, whilst installing Drupal, we didn't have any such menu links we needed to care about! But we do have entities that get deleted, so that hook is invoked. Our ordinary configuration for the project is imported as part of installing Drupal, which actually recreates some config - i.e. deleting before creating again the same config, just with a different UUID. That's because various config is created by default in installations without a specific UUID, and then gets switched to match the UUIDs in the config for our project.
Some of that config is created by Drupal core itself - for example, date formats from the system module - and others from quite reliable modules, like token. We could go round patching each individually to avoid them installing config that we will only recreate later during installation. But that wouldn't be very maintainable, and doesn't respect the quite reasonable default installation process.
Instead we crippled the specific functionality for finding menu links to delete, just during installation, with a simple hook_module_implements_alter():
/** * Implements hook_module_implements_alter(). */ function MYPROFILE_module_implements_alter(&$implementations, $hook) { if ($hook === 'entity_predelete') { // During site installation, we have no menu links to clear up. Avoid // menu_link_content triggering router rebuilds on deleting entities.try { if ( function_exists('install_verify_completed_task') && install_verify_completed_task() ) { unset($implementations['menu_link_content']); } } catch (\Drupal\Core\Installer\Exception\AlreadyInstalledException $e) { // Allow menu_link_content to react to entity deletion. } } }
Our automated tests now pass, with Drupal installing successfully. Mystery solved and new debugging technique unlocked!
Author and photos: Martin Anderson-Clutz
Originally posted on Acquia.com blog
Enterprise AI is about cost management; Drupal's AI Summit shows community-driven acceleration. Drupal: the best CMS for the agentic web.
Attending a massive tech gathering like apidays New York 2026 provides a fascinating macro-lens view of where our industry is heading. With ten co-located conferences happening simultaneously, the event served as a perfect melting pot for the cross-pollination of ideas across different sectors of software architecture. Yet, while APIs served as the undeniable common thread weaving through nearly every presentation, stepping between the mainstream enterprise tracks and the co-located Drupal AI Summit felt like walking into two entirely different worlds.
The contrast highlighted a critical tension in technology today: the corporate race to manage costs and practical enterprise constraints, versus an open-source community’s agile, collaborative push toward a truly agentic web.
In the main apidays sessions, the initial euphoric hype around generative AI has clearly given way to hard-nosed engineering pragmatism. The prevailing sentiment among enterprise builders boiled down to two foundational rules:
While these insights are incredibly valuable for infrastructure stability, the mainstream talks frequently veered toward selling proprietary products rather than exploring open topics, and genuine, collaborative case studies were rare. The most inspiring apidays session that stood completely apart from the product pitches focused on AGTP (Agent Transfer Protocol), presented by Chris Hood of Nomotic. AGTP is a proposed application-layer communication protocol designed to be a peer to commonly used standards like SMTP and HTTP, but architected from the ground up specifically for communication between AI agents. I'll talk more about AGTP more in an upcoming post.
Stepping into the Drupal AI Summit offered a completely different energy, characterized by an optimistic tone and solutions rooted entirely in freely available, open-source tools.
Standing room only at the Drupal AI Summit in New York City
Where the broader enterprise tracks viewed APIs as rigid backend guardrails to keep AI contained, the Drupal tracks explored how these emerging agentic capabilities can transform actual user and author experiences. This was the core focus of my own presentation, "AI-driven DXP: New Horizons for Marketers".
While the enterprise is busy worrying about model optimization, the digital experience platform (DXP) ecosystem is looking at how agentic AI fundamentally redefines how marketing teams create, manage, and orchestrate content. In an AI-driven DXP, the traditional boundaries of content management melt away. Instead of treating the CMS as a passive repository, an ecosystem built on agentic AI allows marketers to deploy autonomous workflows that can intelligently adapt experiences, connect disjointed data sources, and scale personalization without requiring manual engineering oversight.
The summit beautifully balanced these high-level, future-forward visions of marketing horizons with real-world challenges that development teams are solving today.
Unlike the abstract trend-decking found elsewhere, the Drupal sessions were rich with actual deployment stories. The sessions demonstrated how the Drupal community is leveraging its enthusiastic embrace of agentic AI to "maintain our edge". A standout example included a highly practical, real-world case study showing how teams are using autonomous AI agents to seamlessly migrate an existing WordPress site into Acquia Source CMS.
In sum, the contrast between the mainstream enterprise tracks and the Drupal AI Summit highlights a significant divergence in the evolution of the agentic web. While the broader industry focuses on cost management and proprietary guardrails, Drupal has found itself as the best CMS for AI. Drupal holds a significant advantage in today's agentic landscape thanks to its mature tooling for structured content, robust enterprise governance features, and an enthusiastic, collaboration-driven community. This unique combination of open-source agility and enterprise-grade architecture ensures that Drupal remains at the forefront of transforming user and author experiences in an AI-driven world.
All sessions from Drupal AI Summit NYC are now available to watch on YouTube.
We have a number of summits and conferences during the year. Visit our events calendar for more details.
Author and photos: Martin Anderson-Clutz
Originally posted on Acquia.com blog
Enterprise AI is about cost management; Drupal's AI Summit shows community-driven acceleration. Drupal: the best CMS for the agentic web.
Attending a massive tech gathering like apidays New York 2026 provides a fascinating macro-lens view of where our industry is heading. With ten co-located conferences happening simultaneously, the event served as a perfect melting pot for the cross-pollination of ideas across different sectors of software architecture. Yet, while APIs served as the undeniable common thread weaving through nearly every presentation, stepping between the mainstream enterprise tracks and the co-located Drupal AI Summit felt like walking into two entirely different worlds.
The contrast highlighted a critical tension in technology today: the corporate race to manage costs and practical enterprise constraints, versus an open-source community’s agile, collaborative push toward a truly agentic web.
In the main apidays sessions, the initial euphoric hype around generative AI has clearly given way to hard-nosed engineering pragmatism. The prevailing sentiment among enterprise builders boiled down to two foundational rules:
While these insights are incredibly valuable for infrastructure stability, the mainstream talks frequently veered toward selling proprietary products rather than exploring open topics, and genuine, collaborative case studies were rare. The most inspiring apidays session that stood completely apart from the product pitches focused on AGTP (Agent Transfer Protocol), presented by Chris Hood of Nomotic. AGTP is a proposed application-layer communication protocol designed to be a peer to commonly used standards like SMTP and HTTP, but architected from the ground up specifically for communication between AI agents. I'll talk more about AGTP more in an upcoming post.
Stepping into the Drupal AI Summit offered a completely different energy, characterized by an optimistic tone and solutions rooted entirely in freely available, open-source tools.
Standing room only at the Drupal AI Summit in New York City
Where the broader enterprise tracks viewed APIs as rigid backend guardrails to keep AI contained, the Drupal tracks explored how these emerging agentic capabilities can transform actual user and author experiences. This was the core focus of my own presentation, "AI-driven DXP: New Horizons for Marketers".
While the enterprise is busy worrying about model optimization, the digital experience platform (DXP) ecosystem is looking at how agentic AI fundamentally redefines how marketing teams create, manage, and orchestrate content. In an AI-driven DXP, the traditional boundaries of content management melt away. Instead of treating the CMS as a passive repository, an ecosystem built on agentic AI allows marketers to deploy autonomous workflows that can intelligently adapt experiences, connect disjointed data sources, and scale personalization without requiring manual engineering oversight.
The summit beautifully balanced these high-level, future-forward visions of marketing horizons with real-world challenges that development teams are solving today.
Unlike the abstract trend-decking found elsewhere, the Drupal sessions were rich with actual deployment stories. The sessions demonstrated how the Drupal community is leveraging its enthusiastic embrace of agentic AI to "maintain our edge". A standout example included a highly practical, real-world case study showing how teams are using autonomous AI agents to seamlessly migrate an existing WordPress site into Acquia Source CMS.
In sum, the contrast between the mainstream enterprise tracks and the Drupal AI Summit highlights a significant divergence in the evolution of the agentic web. While the broader industry focuses on cost management and proprietary guardrails, Drupal has found itself as the best CMS for AI. Drupal holds a significant advantage in today's agentic landscape thanks to its mature tooling for structured content, robust enterprise governance features, and an enthusiastic, collaboration-driven community. This unique combination of open-source agility and enterprise-grade architecture ensures that Drupal remains at the forefront of transforming user and author experiences in an AI-driven world.
All sessions from Drupal AI Summit NYC are now available to watch on YouTube.
We have a number of summits and conferences during the year. Visit our events calendar for more details.
The Drupal Association is responsible for the massive infrastructure that keeps the Drupal ecosystem moving forward. From protecting and upgrading Drupal.org to coordinating global events, managing community programs, and providing resources to our vital Security Team, our work requires reliable funding.
Acquia’s Fair Trade Initiative changes the paradigm by embedding funding directly into the transactional deal flow of the new Acquia Partner Program. When an Acquia partner closes an eligible Drupal deal, 2% of that transaction is automatically directed to the Drupal Association to support our core mission. This ensures a sustainable model that aligns Drupal’s commercial growth with continued investment in its underlying infrastructure.
What makes this model truly exceptional is how it aligns incentives across the board:
We want to extend a massive #DrupalThanks to Acquia for their visionary leadership, and to all the Acquia partners who are now automatically driving the future of the Drupal project with every deal they close.
Together, we aren't just building digital experiences; we are building a sustainable, open web for everyone.
[2026-05-27] Drupal AI Learners Club organizers Amber Matz and Angie Byron joined the Talking Drupal podcast for a lively ;) discussion that ranged from the AI Best Practices for Drupal project, the controversy and tension around AI within the Drupal community that ultimately led to the formation of the Club, and what the "vibe" is like.
[2026-04-05 / 2026-04-08] The Drop Times posted a story announcing our little Club's inaugural meeting on April 8, as well as a recap of the session!
[2026-05-01] Read a brief overview about the "origin story" of Drupal AI Learners Club and what it's all about in this blog post from Maria Fernanda Silva based on an interview with the Club founder, webchick.
We are pleased to announce that Peter Hinssen will be the keynote speaker at the Enterprise Drupal Summit Europe 2026 in Rotterdam on 28 September 2026.
Peter Hinssen will open the summit with a session on how organizations deal with continuous disruption and long-term digital change — a topic he has spent decades researching, writing about, and bringing to stages around the world.
With over 1,500 keynote presentations delivered to Fortune 1000 companies and leading organisations globally, Peter brings a rare combination of strategic depth, clarity, and a dry sense of humour that turns strategy into clarity.
He is also the bestselling author of six business books, most recently The Uncertainty Principle (2025), a guide for leaders navigating what he calls the "Never Normal" — a world where disruption is not an exception but the baseline.
The summit focuses on AI in enterprise environments, where change is structural rather than incremental. Peter's keynote sets the strategic context for the day's discussions across three key themes:
Because in enterprise environments, the question is no longer whether to adopt AI, but how to do it strategically.
Enterprise Drupal Summit Europe 2026 brings together practitioners and decision-makers working on AI (and Drupal) at scale.
The program focuses on real implementations, architecture decisions, and operational lessons from enterprise and public sector environments.
A room full of decision-makers, and there's a seat with your name on it.
More information: summit.enterprisedrupal.eu
We are proud to share that the Drupal Association has been awarded a grant from the Alpha-Omega Project, a project of The Linux Foundation, which seeks to help open source projects identify and mitigate security vulnerabilities.
As AI-generated commits and AI-driven security threats become the norm, open-source ecosystems must evolve rapidly. This funding directly strengthens the already mature Drupal Security Team, ensuring our core ecosystem is hardened against the modern, AI-age vulnerabilities.
The funding provided by Alpha-Omega will enable the Drupal Security Team to build the program we need to stay ahead in this fast moving environment. Drupal’s already excellent security position will be even better going forward.
~ Tim Doyle, CEO at Drupal Association.
Security has been a defining pillar of the Drupal ecosystem. This collaboration with the Alpha-Omega Project underscores our ongoing commitment to open-source resilience, solidifying Drupal's position as the gold standard for secure enterprise content management.
Drupal is, and will continue to be, one of the most secure CMS platforms in the world.