28 Sep 2026
Drupal.org aggregator
The Drop Times: Rotterdam Puts Drupal’s Biggest Bets to the Test
Perhaps the most revealing thing about DrupalCon Rotterdam is that its programme does not tell one tidy story. Drupal is preparing to discuss its transformation into a production-ready Agentic CMS while another session asks, quite directly, why developers still do not choose Drupal. Canvas has become central to Drupal CMS, yet Rotterdam will also put it against Display Builder in a real-world project. Those collisions matter because Drupal's next phase depends less on any one initiative succeeding than on whether these different bets can reinforce one another without carrying old friction forward.
Connecting Drupal to models and agents is no longer the difficult part of the AI story. Rotterdam moves quickly into hallucination, reviewer trust, orchestration, governed workflows and human control because production use raises harder questions about what an agent may do once it can act rather than merely answer. Permissions, auditability, validation and human approval are becoming part of the product itself. If the Agentic CMS idea is going to mean more than a collection of AI capabilities, those boundaries have to become as deliberate as the capabilities they constrain.
Adoption tests another part of the same argument. Drupal CMS 2.0, Canvas, Recipes and AI-assisted tooling have changed the product presented to builders, but improved technology does not automatically change how Drupal is perceived beyond its existing community. "Why Developers Don't Choose Drupal" puts that gap unusually plainly. The useful evidence from Rotterdam will not be another inventory of features, but signs that newcomers can enter the system more easily, that organisations are choosing Drupal CMS rather than only inheriting or upgrading Drupal, and that the new experience removes barriers people outside the community can actually feel.
Digital sovereignty makes the question more demanding because Drupal is also being asked to apply its values inward. A Rotterdam discussion on FAIR asks whether sovereignty, governance and cost problems in Drupal's own software distribution could be addressed differently, starting from Drupal.org's role as the ecosystem's central distribution point. That turns openness from something Drupal offers its users into something its own infrastructure may need to demonstrate. Arguments about control become more credible when the project is willing to examine where dependence, responsibility and operational burden sit inside its own systems.
Discovery may be where all of these threads become visible from outside. A Rotterdam discussion on Drupal's representation in ChatGPT, Gemini and Claude starts from the recognition that developers and decision-makers increasingly encounter technologies through AI-generated answers as well as conventional search. Drupal therefore has to become easier to understand, evaluate and trust not only for people already inside the ecosystem, but also for the systems mediating their choices. Rotterdam will not settle all of that in four days. What it can reveal is whether Drupal's current direction is beginning to cohere: a product easier to adopt, agents with clearer limits, infrastructure consistent with its sovereignty claims, and a project that can explain its relevance wherever technology choices now begin.
Follow The DropTimes on LinkedIn, X, Bluesky, and Facebook, or join #thedroptimes on Drupal Slack.
Kazima Abbas wrote and curated this issue of Editor's Pick.
28 Sep 2026 2:06pm GMT
BloomIdea: Measuring ChatGPT ads on Drupal, from the browser and from the server
Since September, advertisers in Europe can buy ads inside ChatGPT, and the Ads Manager asks for two things before it can tell you whether they work: a measurement pixel in the browser and, ideally, conversions sent from your server. On a Drupal site that usually means pasting a snippet into the theme, writing the order_created call by hand in a template, and trying to hide the whole thing behind the cookie banner. Then the order paid by bank transfer or payment reference hours later, confirmed by a webhook, never shows up, because no browser was there to see it.
Even when a browser is there, the pixel loses part of the picture. Ad blockers stop it outright, Safari caps cookies written by scripts at seven days, and iOS removes tracking parameters from links shared in Messages and Mail and from links opened in private browsing. OpenAI's own documentation calls the Conversions API "a more reliable tracking source than the pixel alone".
We have released a module for this on drupal.org: ChatGPT Ads, free software under the GPL, for Drupal 10.3 and 11, covered by Drupal's security advisory policy. It plugs into Drupal Commerce, Webform and the Klaro consent manager through sub-modules, and sends events through both OpenAI's Measurement Pixel and the Conversions API. It is a community module, not affiliated with OpenAI.
What you can measure
- With Drupal Commerce, every product added to the cart, including from an AJAX add-to-cart button, with its SKU, quantity and price.
- The start of checkout, and the order itself when it is paid, not merely placed, so an unpaid bank transfer or an expired payment reference never counts as a sale.
- The order paid later and off-site, reported from the server when the payment webhook arrives, with the same event id as the browser, so OpenAI counts it once.
- With Webform, a contact form, a quote request or a newsletter sign-up as a lead: add the ChatGPT Ads handler to any webform and map the email and phone fields.
- Account registrations, from the browser and the server.
- Anything else, with a single call to
Drupal.chatgptAds.measure()from your own script.
The pixel goes only on the pages you choose, using the same visibility conditions blocks use: paths, roles, content types, language.
What it refuses to do
Nothing is requested from OpenAI, and no cookie is set, until the visitor has decided. OpenAI's documentation suggests loading the pixel with consent withheld and granting it later, but the script sets cookies as soon as it loads, so the module does not load it at all until there is an answer.
A visitor who has not answered yet is neither a yes nor a no. Their events wait in memory and go out if they accept, so the landing page is not lost; if they refuse, they are dropped. The Klaro integration reads only decisions the visitor has confirmed, because Klaro reports a service's default from the moment the page loads, which would otherwise be read as a refusal while the banner is still on screen.
The same rule applies on the server. Hashed email, phone, IP address and user agent go to the Conversions API only for a visitor whose consent was recorded at the time of the event. For everyone else the conversion still goes, carrying the click identifier and nothing about the person.
The module never saves an order. Saving inside a Commerce transition can fire that transition twice, which on a live store means duplicate receipts and an error at checkout; the click identifiers are stored on the order when the checkout flow saves it anyway.
Pages stay cached
The pixel and the settings that are the same for everyone are cached with the page. What belongs to one visitor, the events collected for that page and, with advanced matching on, their hashed account data, arrives through a placeholder rendered on every request. A page carrying the pixel stays in Drupal's Dynamic Page Cache, instead of turning every page on the site uncacheable to deliver one visitor's identity.
Where it came from
It was built for one of the e-commerce stores we develop in Portugal, where many orders are paid by Multibanco or MB WAY, Portuguese payment methods whose confirmation often arrives hours after checkout. Bank transfers and payment references behave the same way in any country, and that pattern is why the Conversions API is in the first release rather than a later one: without it, those sales are invisible to the ad platform. The pixel, the Klaro gate and the cart events have been running on that store since mid September.
Your consent manager, your choice
Klaro gets a ready-made sub-module: install it and a ChatGPT Ads service appears in the banner, off by default. Any other consent manager reports the decision through a small JavaScript contract, and the README carries a working recipe for EU Cookie Compliance:
Drupal.chatgptAds.consent(true); // granted, now or on a later page
Drupal.chatgptAds.consent(false); // refused or withdrawn
To see what else on your site reaches third parties before the visitor decides, Consent Audit records it from real visits.
Get it
composer require drupal/chatgpt_ads
You need a ChatGPT Ads Manager account and the pixel id from its Conversions tab. The Conversions API sub-module stores its key through the Key module, so the secret can live in an environment variable instead of your exported configuration. The project page, the documentation and the issue queue are on drupal.org. Bug reports, questions and merge requests are welcome.
28 Sep 2026 10:28am GMT
Drupal Association blog: Drupal's Got Talent at DrupalCon Orlando 2027!
The inaugural DrupalCon Talent Show is happening at DrupalCon Orlando on the evening of Tuesday, March 23, 2027 as part of the community party!
We're planning about two hours of entertainment and looking for roughly 10 acts to take the stage (5-7 minutes for the act, plus up to 3 minutes for stage setup).
This is DrupalCon. The goal is to learn, network, and have fun. Expect jokes, friendly razzing, questionable decisions, and plenty of laughs. You don't need to be a professional. You just need to be willing to get up there and attempt to entertain your fellow Drupalers (within our Code of Conduct https://events.drupal.org/code-conduct, of course!)
What are we looking for?
Pretty much anything entertaining:
- Musicians
- Bands
- Stand-up comedy (keep it PG-13 please!)
- Magic
- Singing
- Dancing
- Juggling
- Puppet shows
- Ridiculous feats of skill
- Weird talents you didn't think anyone wanted to see (we do)
Got something that doesn't fit on the list? Even better. Solo acts, groups, first-timers, seasoned performers, and wonderfully questionable ideas are all welcome.
Think you've got something? Sign up here and show us what you've got!
FAQs
When is the deadline?
The absolute last deadline to sign up is Friday, February 19th. However, submissions are reviewed on a rolling basis as they come in. Once all ~10 spots are filled, sign-ups will close early. We strongly encourage you to submit as soon as possible.
Is there a prize?
Likely, but this hasn't yet been determined. Suffice it to say that the primary prize will be bragging rights!.
How will performances be chosen?
Performances will be chosen to ensure a wide variety of performance types, geographical regions, companies, diverse performers, etc. You can increase your chances of being selected by submitting earlier rather than later.
How long should the performances be?
5-7 minutes is ideal
Do I have to bring my instrument? Will there be microphones?
We will provide microphones for your band (up to four). If needed by multiple performers, we may be able to supply basic instruments. Details will be provided ahead of the performance if you are accepted to perform.
Will there be a bar?
A cash (and credit card) bar will be available.
28 Sep 2026 9:07am GMT
Gspikes: Drupal to WordPress Migration: When Downgrading Is Right
Moving from Drupal to WordPress is not a downgrade when your requirements shrank. When it is right, when it is a mistake, what the migration involves, and what you honestly lose.
28 Sep 2026 7:00am GMT
27 Sep 2026
Drupal.org aggregator
#! code: Drupal 11: Migrating From Jadu Into LocalGov Drupal: Part 4
Drupal 11: Migrating From Jadu Into LocalGov Drupal: Part 4
This is the fourth article in a series looking at migrating from Jadu into LocalGov Drupal (LGD) for the Central Bedfordshire site. In the first article we looked at the Jadu API itself and setting things up so that we could make calls to the API and parse the XML data using the migration systems available.
In the second article we looked at reproducing Jadu URLs to create redirects for migrated content, even though the Jadu API doesn't contain any URL information.
In the third article we looked at a more complex example of migration, taking documents and pages from Jadu and creating a guide pages from that data.
Now it is time to move onto what became the most complex part of the Central Bedfordshire migration, which was moving directories data from Jadu to LGD. Directories were used on the Jadu site to store all sorts of information, which included schools, the location of car parks, contact information of homecare providers, and even an a-to-z glossary of recycling. This data served different purposes on the site, but it was all hand created and important to bring across during the migration work.
In this article we will look at the Jadu data we needed to fetch to find directory information, and how that data was injected into the LGD structure available.
First, let's look at how we get directory information out of Jadu.
Jadu Directories API
Directories in Jadu can be fetched using the directories index at the following endpoint.
philipnorton42
27 Sep 2026 5:45pm GMT
HOOK_DEV_ALTER(): PHP Structured Concurrency and Beyond (4): call for backers
The prototype works. Taking it to production quality is more than evenings. Whether it should is a question, not a pitch.
One thing before the rest. I am not pushing this. The series is a question to the world: is this work worth more of my time? We are not in the Federation yet, so more time means money, and money means backers. Any answer is fine with me, including no.
27 Sep 2026 3:00pm GMT
26 Sep 2026
Drupal.org aggregator
HOOK_DEV_ALTER(): PHP Structured Concurrency and Beyond (3): structured state, and why its absence breaks concurrency

Every framework service that holds state is a bug under fibers. The current fix is to switch concurrency off. There is a third option.
26 Sep 2026 3:00pm GMT
Stuart Clark (Deciphered): Druxt Auth 0.5.0; two ways to sign in without leaving your site
Every Druxt site I have built signs people in by sending them somewhere else to do it: out to Drupal's login page, on to a consent screen, and eventually back. With Druxt Auth 0.5.0 the username and password can now be handled entirely in the frontend instead, either through the authorization code grant or through the password grant.
If you have not used it, Druxt Auth wires Nuxt's auth module to Simple OAuth on the Drupal side. It targets Nuxt 2 today, because @nuxtjs/auth-next does.
The first is the authorization code grant, which now takes credentials directly. Druxt Auth signs the visitor in through Drupal's JSON login route first, so the authorize step finds a session waiting and returns a code without rendering anything:
26 Sep 2026 11:30am GMT
The Drop Times: amazee.io and amazee.ai Bring Shadow AI and Sovereign Infrastructure to DrupalCon Rotterdam
AI becomes a different infrastructure problem once organisations need to know where data goes, which models are approved, and how spending is controlled. amazee.ai and Tag1 will bring those questions to DrupalCon Rotterdam through a private gateway and Scolta implementation.
26 Sep 2026 10:04am GMT
25 Sep 2026
Drupal.org aggregator
HOOK_DEV_ALTER(): PHP Structured Concurrency and Beyond (2): ownership, and why its absence breaks persistent servers
A coroutine nobody owns is a leak. Under one process per request you never see it. Persistent servers take that away.
25 Sep 2026 6:00pm GMT
The Drop Times: DrupalCon Rotterdam Speakers Test Proof, Trust, and Maintainability Beyond the Demo
A workflow can report success and still be wrong, while a thriving community can quietly depend on too few people. These Rotterdam speakers look past the demo to the evidence, architecture, feedback, and ownership that determine whether Drupal work holds up.
25 Sep 2026 3:39pm GMT
Drupal CMS Initiative: Drupal CMS 2.2: Multilingual, out of the box
Drupal CMS 2.2.0 is out, and this release is all about multilingual. Setting up a site to publish in multiple languages has always been possible in Drupal, but it was not easy. With 2.2, we've tackled the biggest pain points from the installer through to translating your Canvas pages.
Finding your language in the installer
The first thing you'll notice is the language selector in the installer. Instead of scrolling through a long select list, you can now start typing and search for your language.

It's a small change, but makes for a much better first impression.
Recipe config is now translated
Previously, if you installed Drupal CMS in another language, any configuration provided by recipes (such as content types, fields, views, even the dashboard) would still show up in English.
Recipes can include translatable configuration and that is now translated along with the rest of the site.
The multilingual recipe
Adding a second language to a Drupal site involves a lot of steps: installing the right modules, configuring language detection, enabling translation for each content type and field, and making sure you haven't missed anything along the way. Most people figure this out through trial and error (and a fair amount of searching).

The new multilingual recipe takes care of most of this for you:
- Installs the required modules and applies the basic language settings
- Provides a multilingual setup checklist to guide you through the remaining steps
- Modifies the content translation settings page to make it more intuitive, including a 'Recommended setup' option that enables translation for the entities most commonly translated (node types, Canvas pages, menu links and taxonomy terms).

Translating Canvas pages
Canvas now fully supports translation and we're using Canvas Translate to provide the translation management within the canvas editor. You can translate any component on a page, and use the Canvas preview to see how the translated version will look before you publish it.
Using the bundled Canvas Translate AI module, you can also get AI-generated translations with one click: either for all components, or individually.
New multilingual demo
Drupal core has long shipped with the Umami multilingual demo, which has community contributed, cooked and photographed recipes. Umami will not be included in Drupal 12 anymore and it was in need of a design rethink and retooling with our new easy to use page building capabilities. This resulted in the new Dashi demo, which brings the same multilingual content to a customizable setup with Canvas page and content templates.
Try it out
Try it out by installing Drupal CMS 2.2.0!
- Install DDEV
- Run the following commands:
mkdir my-drupal-site && cd my-drupal-site
ddev config --project-type=drupal11 --docroot=web
ddev composer create-project drupal/cms
ddev launch25 Sep 2026 2:31pm GMT
Drupal Association blog: Meet The Drupal Association Team At DrupalCon Rotterdam 2026
DrupalCon Rotterdam 2026 is almost here. The Drupal Association staff and board are heading to the Netherlands next week, and we'd love to see you there!

Photo Credits: Ryan Witcombe
Here's where you'll find us during DrupalCon Rotterdam 2026:
Drupal.org Engineering Panel
Join the DA engineering team for an open and honest look at the current state and future of Drupal.org (the platform the entire community relies on every day). From nearly 10,000 projects migrated to GitLab, plans to support a brand new Drupal.org marketing site, and initiative support for Drupal CMS + Canvas and the AI Initiative, there's a lot to cover. The session closes with an open Q&A, so bring your questions
Day & Date: Wednesday, September 30, 2026
Time: 11:40 to 12:25 CEST
Location: Goudriaan Room I&II
Marketing Panel
Building on the momentum of the Drupal AI initiative, the Drupal Association is growing coordinated advocacy and marketing efforts in new areas, opening the door for more people to get involved and make a visible contribution.
Join the panel to understand how the initiative is taking shape, why they're gaining traction, and what makes them different. The panelists will discuss how marketing in Drupal is becoming one of the most accessible and high-impact ways to contribute, where individuals and organizations alike can raise their profile, earn recognition, and help shape Drupal's future.
Day & Date: Tuesday, September 29, 2026
Time: 16:40 to 17:25 CEST
Location: Goudriaan Room I&II
Drupal Association Public Board Meeting
The DA Public Board Meeting is open to all DrupalCon attendees and is your opportunity to hear directly from the Drupal Association board. Come with your questions, your feedback, and your ideas. This is your chance to engage with the people shaping the future of the Drupal Association.
Day & Date: Tuesday, September 29, 2026
Time: 14:25 - 15:10 CEST
Location: Rotterdam Room I&II
Drupal Association Partner Lunch
An exclusive afternoon gathering for agency leaders and partners to connect with Dries and DA leadership over a seated lunch. A unique opportunity to share strategies, discuss the Drupal business ecosystem, and build meaningful relationships with peers from around the world.
Tickets are required, register here.
Day & Date: Tuesday, September 29, 2026
Time: 12:00 - 13:30 CEST
Location: Postillion Hotel & Convention Centre WTC Rotterdam
Drupal Business Dinner
Cap off Wednesday evening with the Drupal Business Dinner, an intimate gathering of Drupal agency executives for a seated 3-course dinner, a presentation, and meaningful conversations in a beautiful Rotterdam venue.
Tickets are required, register here.
Day & Date: Wednesday, September 30, 2026
Time: 19:00 - 22:30 CEST
Location: De Harmonie, Rotterdam

Photo credits: Matthew Saunders
Whether you're joining us for a session, an exclusive event, or just stopping by our booth to say hello, the Drupal Association team can't wait to connect with you.
The last few days are left to secure your ticket to DrupalCon Rotterdam 2026, if you already haven't. See You in Rotterdam!
25 Sep 2026 12:28pm GMT
The Drop Times: Pantheon to Demo “Outside-In” Drupal AI With Gemini Enterprise in Rotterdam
What changes when Drupal becomes something an enterprise AI agent can act on, rather than the place where every user must work? Pantheon plans to show that model running end to end in Rotterdam.
25 Sep 2026 12:04pm GMT
The Drop Times: Gina Plat and Teun van der Vorm: Map Dependencies Before Pursuing Digital Sovereignty
Digital sovereignty does not begin with replacing software. It begins with knowing which services an organisation depends on, who controls them, and what it would cost to leave.
25 Sep 2026 10:33am GMT
Drupal AI Initiative: Introducing our official Drupal AI Initiative training program: AI Inside Drupal Essentials
As we see our goals for Drupal AI innovation under responsible human guidance flourishing at such a remarkable pace, we recognize a growing community need for practical, responsible ways to learn it. We're excited to announce, as part of our efforts to fill that need, AI Inside Drupal Essentials (AIDE,) developed and presented by DrupalEasy, as the official training program of the Drupal AI Initiative.
We've partnered with Drupal expert developer and highly respected trainer Mike Anello (ultimike) to ensure the program supports our mission to drive responsible AI innovation and build on Drupal's position as the leading open-source content management system for AI integration. Mike and the team at DrupalEasy have the commitment and experience to create, maintain and present the curriculum with our standard for ethical, powerful, and accessible AI in the open-source world.
AIDE
AIDE is designed to help you move forward quickly and confidently with a solid foundation in how to conscientiously take advantage of Drupal AI benefits. The 2-week, 18-hour curriculum is presented on a timetable designed to integrate well into work schedules; meeting live, online for 3 hours every other day. The first session kicks off on November 9, 2026 and runs through November 20th. Additional sessions will be announced in the coming weeks.
In addition to DrupalEasy's signature lively, online classes; each class session is recorded and becomes part of the video library that participants have lifetime access to. Other resources included as part of the course is a dedicated Slack channel and more than 100 pages of technical guides and implementation tools. The cost to register is $600.
Learn risk mitigation & human oversight
Mike Anello, who has meticulously developed hundreds of hours of Drupal curriculum and trained Drupal developers for more than 20 years, has created another stellar program that leads you, hands-on, through admin-facing responsible AI techniques that prioritize workflows that keep a human in the loop to review AI-generated suggestions before they are saved to the database. From class to class, you'll move from secure foundations to advanced agentic workflows and high-performance retrieval augmented generation (RAG) search, with intensive hands-on examples you can apply to your own Drupal projects right away.
Course content
The course covers four areas:
- AI Foundations: Establish a baseline for secure LLM integration. Configure the AI Automators and Field Widget Actions modules to see how AI output can be reviewed before it's saved.
- AI Agents: Implement agentic workflows and swarm orchestration agents, and deploy tool-calling capabilities that let AI interact directly with Drupal's Tool API.
- RAG Search: Build retrieval augmented generation systems using vector databases, and learn semantic chunking and representation strategies that maximize search accuracy.
- Local AI & Privacy: Deploy local models via Ollama for maximum privacy and cost-efficiency, and use the AI Metering module for automatic local fallback when commercial API quotas are reached.
Our goal, with AIDE and our other learning resources including webinars, workshops, events and the Drupal AI Demo is to make sure everyone who works with Drupal AI can do it safely and effectively.
Learn more about AI Inside Drupal Essentials training , or ask about the course or AIDE team pricing.
25 Sep 2026 10:12am GMT