04 Jun 2026
Drupal.org aggregator
Talking Drupal: TD Cafe #017 - Drupal Beginners with Mike and Rod
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 Anello
Mike, 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 Martin
Rod 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.
Guests
Mike Anello - DupalEasy ultimike Rod Martin - DrupalHelps.com imrodmartin
Resources
The slow decline of beginner Drupal training The Site Builder Breakthrough - From Confusion to Confidence Drupal AI Initiative Promote Drupal
04 Jun 2026 4:01am GMT
03 Jun 2026
Drupal.org aggregator
The Drop Times: Proposal Calls for Drupal.org Module Families to Improve Module Selection
A proposal to introduce "Module Families" on Drupal.org aims to help users compare contributed modules that solve similar problems through structured comparison pages and ecosystem signals. The proposal argues that Drupal's challenge is not excessive choice but insufficient context, an issue that becomes more important as Drupal CMS introduces curated module selections and opinionated workflows.
03 Jun 2026 2:06pm GMT
Centarro: Recurring Payments: When to Own the Subscription and When to Hand It Off
With 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?
Start by ruling out what you don't need
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.
03 Jun 2026 1:45pm GMT
02 Jun 2026
Drupal.org aggregator
Freelock Blog: "Argo-nizing" Our Platform for AI Development
"Argo-nizing" Our Platform for AI Development

02 Jun 2026 5:00pm GMT
ComputerMinds.co.uk: Debugging Great Uncle Call Stacks - to solve a recursive router rebuild error

Our 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.
The context
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?!
The easy bit
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.)
The magic
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.
The surprise
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!
02 Jun 2026 3:26pm GMT
ImageX: Higher Education Website Best Practices: A Guide to Strategy, Design, and Development
02 Jun 2026 1:23pm GMT
Drupal AI Initiative: The Two Speeds of the Agentic Web: Pragmatism and Community-driven Acceleration
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.
The Enterprise Reality Check: APIs as the New Agent UX
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:
- If it can be deterministic, keep it deterministic: AI can be an incredible asset, but it should not be the default solution for every problem. If a task can be solved using traditional, deterministic software tools, it absolutely should be, because those solutions remain cheaper, faster, and infinitely more reliable. When AI is required, developers should focus on deploying the minimum effective model necessary for that specific task to avoid wasting resources.
- APIs are the user interface for AI agents: For a decade, we built APIs for human developers or mobile applications. Today, we are building for autonomous consumers. An AI agent reads API specifications in real-time to execute tasks. If your APIs are poorly documented (suffering from either too much or too little documentation), too numerous per endpoint, or inconsistent in how they respond to queries with incomplete information, AI agents won't try to guess-they will simply abandon your system to look for different tools instead.
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.
The Open-Source Counterweight: Shifting Focus from Middleware to Marketers
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.
Real-World Impact Over Slideware
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.
The Difference is Striking
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.
Watch session recordings
All sessions from Drupal AI Summit NYC are now available to watch on YouTube.
Join us at upcoming events
We have a number of summits and conferences during the year. Visit our events calendar for more details.
02 Jun 2026 11:25am GMT
The Drop Times: Finding Community at Drupal Dev Days Athens
Attending Drupal Dev Days Athens as both a participant and first-time international speaker gave Francesco Maria Battaglia a new perspective on the Drupal ecosystem. Reflecting on the experience, he writes about mentorship, community support, volunteer contributions, and the sense of belonging that continues to draw people into open source communities.
02 Jun 2026 10:45am GMT
Drupal Association blog: Acquia’s Fair Trade Initiative: A new model for sustainable Drupal funding
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:
- Funded Completely by Acquia: The 2% contribution is funded entirely out of Acquia's margin. It costs the end-customer nothing extra, and it does not reduce partner revenue or incentives.
- Partners Earn Capital Contribution Credit: The funding is publicly tracked and credited in the partner's name within the Acquia Partner Portal. This financial support directly counts toward the partner's standing in the Drupal Association's Certified Partner Program.
- Predictable Scaling for Drupal: As the Drupal economy grows and partners close more business, funding for the Drupal Association automatically scales alongside it.
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.
02 Jun 2026 9:52am GMT
Specbee: How to optimize your Drupal website's performance and pass core web vitals (a practical guide)
Slow Drupal site costing you rankings? Learn some impactful fixes that work - caching, images, hosting, and the Drupal 11.3 improvements worth knowing about. Included is a real case study going from a performance score of 65 to 98!
02 Jun 2026 9:21am GMT
01 Jun 2026
Drupal.org aggregator
Dries Buytaert: Contentful and the limits of "Buy European"
This morning, Salesforce announced its plan to acquire Contentful.
Congratulations to Sascha Konietzke, Paolo Negri, and the whole Contentful team. They spent 13 years building Contentful into one of Europe's most visible enterprise software companies. Salesforce buying Contentful is real validation of the product, customers, and team they built.
The deal makes sense for both Salesforce and Contentful. Salesforce has long had a CMS-shaped hole in its product offering, and Contentful fills it with a mature, enterprise-ready SaaS product.
To me, the more important question isn't whether the acquisition makes strategic sense, but what it means for digital sovereignty. It's a textbook example of why "Buy European" isn't enough.
Before I go further, let me be clear about where I'm coming from. I founded Drupal and still lead the project, and I co-founded Acquia, the company built around Drupal, where I'm Executive Chair. So when I argue that this deal exposes a problem, you should factor in that Open Source is both my life's work and my livelihood.
Contentful is a German company, Contentful GmbH, registered in Berlin. For over a decade it has been a flagship European software company.
If the acquisition closes, it becomes part of Salesforce, a US corporation, and falls under US law.
For many of Contentful's customers, this acquisition will be a non-event. For governments, public institutions, and regulated industries, it exposes a harder truth: a vendor being European today is no guarantee it stays European tomorrow.
A practical example is the US CLOUD Act. Many people may not know about it, but it becomes relevant anytime a non-US vendor is acquired by a US company.
In plain English, the CLOUD Act means that US authorities can require any US company to disclose data it controls. That can apply even if its data is stored in Europe, managed by a European team, or running on European infrastructure.
This is not a hypothetical concern. The law came out of a dispute between Microsoft and the US government over emails stored in Ireland. US Congress changed the law while the case was pending, making clear that US providers can be required to produce data stored abroad.
That does not make Contentful a bad company. It does not make Salesforce a bad owner. And it does not take anything away from what the Contentful team built.
But it shows the limit of "Buy European". Contentful spent 13 years as a trusted European vendor, and one board meeting is enough to put it under US law.
An Open Source license changes that. Drupal customers running on Acquia, my own US-based company, are also exposed to US law. But because Drupal is Open Source, they can move to a European hosting partner, self-host, or fork the code. A Contentful customer cannot.
The Contentful team deserves credit for what they built. Few European software companies have reached its scale and size. But this is also a reminder for Europe. For software that governments, public institutions, and critical industries depend on, sovereignty must survive any acquisition.
That is the point of The Software Sovereignty Scale and The Sovereignty Prerequisite that I submitted to the European Commission as feedback on their Cloud Sovereignty Framework.
Open Source is the only way to guarantee long-term choice, control, and governance over your code, data, and infrastructure.
Special thanks to Tiffany Farriss for her review of this blog post.
01 Jun 2026 6:30pm GMT
Talking Drupal: Talking Drupal #555 - AI Learners Club
Today we are talking about AI, How to stay up to date with it, and if it will really take our jobs with guests Angie Byron & Amber Matz. We'll also cover AI Best Practices for Drupal as our module of the week.
For show notes visit: https://www.talkingDrupal.com/555
Topics
- What Is AI Learners Club
- Amber Defines the Club
- Origin Story and DrupalCon
- AI Debate and Community Tensions
- Issue Queue Conduct and Moderation
- Thread Tone vs Substance
- AI Adoption Outside Drupal
- Conflict Mediation Playbook
- Maintainer Burnout and Flood
- Safe Space Learners Club
- How the Club Started
- Picking Topics and Demos
- AI Taking Our Jobs
- Future of Learners Club
Resources
- Context Control Center
- AI Learners Club
- What Angie's working on these days
Guests
Amber Matz - tugboatqa.com amber-himes-matz Angie Byron - ai_best_practices webchick
Hosts
Nic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Scott Falconer - managing-ai.com scott-falconer
MOTW Correspondent
Martin Anderson-Clutz - mandclu.com mandclu
- Brief description:
- Do you want to start using AI tools for Drupal development, in the most efficient way possible? There's a composer plugin for that!
- Module name/project name:
- Brief history
- How old: created in Mar 2026 by Angie Byron (webchick), one, of today's guests, a long-time Drupalist, one-time Acquian, and a fellow Canadian
- Versions available: dev version only, which doesn't seem directly opinionated about what version of Drupal you're using, though it does have minimum versions of PHP and Symfony libraries that suggest Drupal 10 is functionally your minimum
- Maintainership
- It is officially seeking co-maintainers
- Test coverage
- Documentation - an in-depth README, or you can ask an AI model! (like I did for this segment)
- 54 open "Work Items" on Gitlab, so lots of active discussion already
- Module features and usage
- AI Best Practices for Drupal aims to be the opinionated starter experience for AI-assisted Drupal development
- You can think of it as a single Composer install that makes any AI coding agent "speak Drupal": following community standards, preferring contrib over custom code, and avoiding framework-naive mistakes. It replaces scattered, tool-specific CLAUDE.md files and Cursor rules that some Drupal developers currently maintain individually, with one canonical, community-governed package that works across Claude Code, Cursor, Copilot, and more. With contributions by a variety of Drupal luminaries including Marcus Johansson, Christoph Briedert, and Scott Falconer, it's the Drupal equivalent of Laravel Boost: stop explaining Drupal to your AI every session and just get writing code.
- After install or update, it will create an AGENTS.md file from a provided template if there isn't one already, or it will update a specifically marked "ai-best-practices" section of an existing file
- You will also have a directory of provided skills, and guidance for creating new Drupal agent skills
- Also included is a set of evals, meant to automatically identify when AI models go off course and provide feedback
- AI Best Practices for Drupal is meant to provide guidance that will be particularly useful for AI agents, so it's ideal for Drupal developers getting started with AI tools, or for AI developers who want to get started with Drupal
01 Jun 2026 6:00pm GMT
The Drop Times: Drupal 12 Readiness Starts Showing Up in Contrib
Drupal 12 is still months away, but readiness work is already becoming visible in contributed projects. One recent example comes from Scheduled Transitions 2.9.0-beta4, which declares compatibility with Drupal ^11.3 || ^12. The release itself is modest, but it serves as an early reminder for teams beginning to review upgrade paths and dependency inventories ahead of the next major Drupal release.
Scheduled Transitions is an editorial workflow module that allows content revisions to move automatically between moderation states at scheduled times. While the module itself may not be widely discussed, it represents the kind of workflow dependency that organisations often rely on for day-to-day publishing operations.
That makes its Drupal 12 compatibility declaration noteworthy. Upgrade planning should not stop at Drupal core. Teams also need visibility into the contributed modules that support moderation, scheduling, revisions, translations, layout management, search, and editorial access. Early compatibility signals help identify which parts of a publishing stack are already preparing for the next release cycle.
According to the Drupal core release schedule, Drupal 12.0.0-beta1 is planned for the week of 14 September 2026, with Drupal 12.0.0 scheduled for the week of 7 December 2026. Drupal 10 is also expected to reach end of life on 9 December 2026, giving site owners a practical reason to begin evaluating dependencies before the final quarter of the year.
The takeaway is straightforward: start small, but start now. Check which contributed modules already declare Drupal 12 support, note any changes in PHP requirements, and identify workflow dependencies that have yet to publish a compatibility path. Scheduled Transitions is only one example, but it highlights the quiet preparatory work that often determines how smoothly a major upgrade goes.
With that context in mind, the major developments covered in last week's edition of Editor's Pick newsletter are presented in the teaser blocks below.
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.
Kazima Abbas
Sub-editor
The Drop Times
01 Jun 2026 6:23am GMT
31 May 2026
Drupal.org aggregator
Timbers Dev: The Next Great Hurdle for Drupal: Organizing Competing Contrib Modules

Drupal is moving through one of the most exciting periods in its recent history.
We have Drupal CMS, Drupal AI, Recipes, and the upcoming Experience Builder all pushing Drupal toward a more approachable, modern, and ambitious future.
31 May 2026 5:14pm GMT
Web Wash: Different Approaches to Drupal Site Building
Drupal site building has changed a lot in the last few years.
You can still build a site the traditional way with blocks, templates and Layout Builder, but there are now two newer approaches worth knowing about: UI Suite with Display Builder, and Drupal Canvas in Drupal CMS.
In the above video, we walk through all three approaches to help you pick the right one for your Drupal site.
31 May 2026 8:31am GMT
29 May 2026
Drupal.org aggregator
mark.ie: My LocalGov Drupal contributions for May 2026
My LocalGov Drupal contributions for May 2026 markconroy
29 May 2026 11:50am GMT

