The Call for Papers for DrupalCon Rotterdam is officially open. We have an important update regarding one of our most vital tracks.
This year, we officially expanded the scope of our discussions. What was previously the Open Web track has evolved into the Digital Sovereignty and Open Web track.
Why the Change?`
Today, many large companies control our data and our platforms. The Open Web is about more than just code. It is about who has control. Digital Sovereignty means that people, organizations, and countries have the right to control their own digital lives.
By adding this to the name, we show that DrupalCon is the place for these big talks. We want to build a web that is fair, open, and not controlled by just a few large companies.
Who Should Submit?
We are looking for more than just technical sessions. To solve the challenges of the modern web, we need a broad range of perspectives. We want to hear from the following groups.
Policymakers navigating the GDPR and the AI Act.
Advocates fighting for digital equity and accessibility.
Site Builders and Developers implementing privacy first architectures.
Community Leaders fostering sustainable open source ecosystems.
Image
Potential Topics
If you are wondering whether your idea fits, here are a few topics we would love to see on the stage.
Accessibility as Sovereignty: Why the web is not truly open if it is not accessible to everyone. We want to hear how universal design gives people the power to use the web independently.
Local First Apps: How to build tools that work without the internet and keep data with the user. We want to hear about tools that put the user in charge of their own information.
Public Code: How Drupal helps everyone, from sole traders to national governments, keep their independence. We want to hear how you use open source tools to stay in control of your digital future.
Privacy by Design: How to make Drupal sites that protect user data from the start. We want to hear how you build Drupal sites that prioritize security and privacy.
Digital Identity: New ways for users to prove who they are without giving away their privacy. We want to hear about new identity systems that respect the individual.
Green Coding: How saving energy helps keep the web free and open. We want to hear how digital efficiency supports a sovereign web.
AI and Ownership: How to use AI without losing control of your work. We want to hear about how Drupal can use AI while keeping data private and models ethical.
Regulatory and economical control: The European Union is building sovereignty through laws like GDPR, cloud infrastructure, and cybersecurity. We want to hear how these regulations and investments affect the way we build and host the web.
Submit Today
The Open Web does not stay open by accident. It stays open because people share their knowledge and vision. Whether you are seasoned or a first time speaker with a unique perspective, we want to hear from you.
💬 Talk to Your Drupal Page Builder 🚀 DXPR Builder 2.8 AI Release!Jurriaan
This is the biggest DXPR Builder release we have ever shipped.
In a 2023 interview with The DropTimes, I described our ultimate goal: "You will be able to put your granny in front of a computer and let her create a mobile-friendly webpage about her hobby." I talked about the day someone could just describe what they want and get a webpage instantly. Back then, I said the AI was too buggy for production. I said "I don't see this happening in 2023."
It is happening now.
With DXPR Builder 2.8, you can describe what you want and watch AI build it for you: complete pages with sections, columns, images, and cards. All styled by your theme. All ready to publish. DXPR Builder is the first Drupal page builder you can talk to, and it will create and edit complex webpages. If you have never heard of Drupal: it is the open-source CMS behind sites like Tesla.com, the European Commission, and thousands of universities. DXPR Builder is the most popular way to build pages in Drupal without writing code. Thousands of sites rely on it, from Fortune 500 companies to government agencies to solo creators. Now every one of them gets AI superpowers.
This is not a chatbot bolted onto a CMS. This is AI that understands your page and what you want it do do, knows where to place content, and lets you refine anything with plain language. DXPR AI is powered by the same models behind ChatGPT, Google Gemini, and Claude. We integrate directly with OpenAI, Google, Anthropic, XAI, and Mistral, giving you access to the best AI models in the world from inside your page builder. If one provider is down, DXPR automatically switches to the next. No single point of failure, no vendor lock-in.
Building a landing page used to mean hours of dragging, dropping, writing, and tweaking. Now you tell it "create a landing page for an enterprise Drupal hosting service" and watch it go. AI generates a full layout: hero, features, testimonials, pricing, call to action. It builds section by section so you can guide it, or let it finish the whole page at once. Every element is a real DXPR Builder component you can drag, edit, and restyle.
Clone Competitor Layouts Instantly
Found a competitor page you love? Type "clone https://example.com/about-us" and AI grabs the page, analyzes its structure, and rebuilds it using real DXPR Builder components styled by your theme. Not a copy-paste of their code. A proper, editable recreation you can make your own in minutes. For agencies, this changes how you pitch: walk into a prospect meeting with a working first draft built from their competitor's site.
Rewrite Any Content Without Touching the Layout
Every element on your page now has an "Edit with AI" option. Click a section and tell it "add a customer success story" or "make this sound more urgent." The AI rewrites the content in place without touching your layout. You can also select specific text inside any rich text editor and transform just that selection.
Unmatched Precision in AI-Editing
Other AI based site builders let you edit content with AI but won't let you edit with AI! With DXPR Builder, whether your content is decades old or freshly generated, AI will edit it with precision. Our highly optimized platform is calibrated for editing web content with incredible speed and precision.
Generate and Edit Images Without Leaving the Editor
Describe the image you need and AI creates it. "A modern office team collaborating on a laptop." "An abstract illustration of connected data points." No more hunting through stock photo libraries. Already have an image that is close but not quite right? Tell AI what to change and it edits the image in place.
Generate Long-Form Content with Real Depth
Most AI tools top out at a few paragraphs. DXPR Builder 2.8 generates structured content with 1,000+ words, proper headings, and multiple sections. Whether it is a product page, a case study, a knowledge base article, or a blog post, AI researches your topic first, plans the structure, then writes.
AI Researches Your Topic Before It Writes
Mention your company, a competitor, or any topic in your prompt and AI searches the web for current information before writing. It finds facts, figures, and context so you do not have to provide them. Just prompt and go.
Set Your Brand Voice Once, Use It Everywhere
Define your writing style ("Professional and clear" or "Bold and playful") and every AI interaction follows it. Use our Tone of Voice Generator to find the right voice. Set it once in the admin settings and forget about it.
Free AI Credits: How It Works
How much do I get?
Every DXPR account gets 10,000 free AI credits per month. 1 generated word = 1 credit. 1 generaed image = 1,000 credits. Only readable words count, not code or markup. Here is what 10,000 credits looks like in practice:
One landing page from scratch: prompt, generate, refine two sections (~3,000 credits)
One product or campaign page: generate, edit a few sections, add images (~3,500 credits)
Translate a page to another language (~1,500 credits)
Generate two custom images (~2,000 credits)
That is a solid day of content production. Enough to experience everything DXPR AI can do and ship real work.
What can a team do with more credits?
Marketing teams that use AI daily typically produce 5-10x more content than before. A team with 50,000 credits per month can build new landing pages every week, produce campaign and product pages on demand, translate everything into three languages, and generate custom images for all of it. Top up AI credits anytime from your account dashboard. Credits are separate from your DXPR Builder subscription, so you only pay for what you use.
Our credits are competitively priced at just 50 cents per 1,000 credits! See our pricing page for more information.
What happens when I run out?
AI features pause until your credits reset next month. We are adding usage alerts so you always know where you stand.
How is DXPR Builder different from Drupal Canvas?
DXPR Builder has been rebuilt as an AI-first experience, greatly enhancing editor productivity while prioritizing our product-design for content marketers more than site builders, a refreshing switch from Drupal Canvas, where those roles often feel reversed in the UX. Moreover, by storing all layouts as standard Bootstrap HTML, it ensures your content investment remains portable and vendor-agnostic, empowering you to create well-documented marketing assets that thrive beyond the Drupal ecosystem.
DXPR Builder has commercial support, enterprise-grade security, hundreds of advanced elements and features, all designed for Drupal-bound content teams!
Grab a free product key. No credit card needed, free forever for small sites.
Pick your AI provider, set your brand voice, and start prompting
Tell Us What You Think
This is the most ambitious release we have ever done. The granny with the bird photography hobby? She can build her website now. And so can your marketing team, your content editors, and anyone else who has something to say but no time to learn a page builder.
Speed up your PHPUnit Browser tests with this one trick
It's true, no April fools. You can make your Browser tests run much quicker. How? By deleting them!
You will of course need to add a corresponding Kernel test - and that's the trick. Kernel tests run much faster than Browser tests.
But Browser tests make requests to the test site using an internal web browser, I hear you say, whereas Kernel tests make API calls directly. Kernel tests have their uses for testing APIs, but Browser tests are needed to test actual HTML output.
This is subject to a number of caveats and limitations: there is no session, and forms can't be submitted. And functionality such as a current user, blocks on the page, and page caching will need additional setup.
So not all Browser tests are suitable for conversion. But a lot of them are. We're already working on converting tests in core, and as this feature has been backported to Drupal core 11.x, contrib modules can make use of it too.
The benefits to conversion are tests that run faster, so less time developing and less time waiting for CI pipelines to run, and a lower energy footprint and lower costs for drupal.org. And they're easier to debug too.
And if you haven't yet written any tests for your module, now is an excellent time to start!
Do you need help with writing PHPUnit tests, or getting started with test-driven development? I'm available for hire - contact me!
Across the global web ecosystem, Drupal continues to hold a steady position as a platform shaped by long-term reliability and structured flexibility. Its presence in government systems, higher education platforms, and enterprise environments reflects a consistent preference for stability over rapid change. This pattern has allowed Drupal to remain relevant across regions where durability, governance, and scalability are essential.
A recent reflection shared by Josh Koenig on LinkedIn, drawing on Drupal.org usage statistics, argues that Drupal adoption has declined across successive major releases since 2016. He frames this as a broader economic challenge for the ecosystem, pointing to reduced growth and a shift toward maintenance-driven work. While such data includes development environments and does not directly represent deployment scale, it continues to inform discussion about how Drupal's role is evolving.
Within this context, Drupal's role appears increasingly aligned with long-term systems rather than rapid expansion cycles. Much of the work around Drupal today centres on sustained platforms, incremental improvements, and continuity for existing implementations. This reflects how organisations engage with Drupal not as a short-term solution, but as infrastructure that supports complex digital operations over extended periods.
At the same time, Drupal continues to operate within a broader and changing technological landscape. Modern web development increasingly involves multiple layers, including frontend frameworks, composable architectures, and emerging AI-driven tools. In this environment, Drupal often functions as part of a larger system, contributing its strengths in content structuring, security, and extensibility.
The ongoing conversation signals a shift in how Drupal is positioned rather than a change in its foundational value. Its global adoption remains rooted in principles of openness, community-driven development, and support for complex digital experiences. As the web continues to evolve, Drupal remains part of that broader ecosystem.
Additional developments from across the Drupal ecosystem were published during the week. Readers may follow The DropTimes on LinkedIn, Twitter, Bluesky, and Facebook for continuing updates. The publication also maintains a presence on Drupal Slack in the #thedroptimes channel.
DrupalCon Chicago 2026 was one of the most exciting DrupalCons I've attended. Not because everything was perfect, but because the conversations were real. I came in pushing two conversations: the International Federation and what I call "the little guy". I left with more energy than I arrived with, and a clearer picture of what needs to happen next.
The Driesnote Energy
Dries opened with the story of Chicago literally lifting its buildings to rebuild its foundations. Perfect metaphor for where Drupal is right now. He talked about the stable triangle that has held Drupal together for 25 years: the product, the agencies, and the open source community. And he was honest about all three legs being under pressure from AI at the same time.
The demo was impressive. Using Lovable to generate a beautiful website in 15 minutes. Then migrating it to Drupal using Canvas CLI and OpenAI Codex in about two to three hours. The new pitch Dries proposed: "We use AI to prototype fast, then we use Drupal to build systems that last." I think that's a strong message.
Jurgen Haas showed what one Drupal expert can do with AI as a tool. 90,000 lines of code, over 300 commits, full test coverage for the new ECA experience. In six weeks. AI didn't replace his expertise. It removed friction. That's the model.
Aiden Foster from Foster Interactive named the dread AI created for him as a 17-year agency owner. And then he named what he learned: "The bottleneck isn't production anymore. It's creativity, strategy, and judgment. All innately human." He's right. And I think that realization is where the real opportunity lives for agencies in our community.
25 Years of Drupal
I've only been in Drupal for about half of those 25 years, but the gala was something special. Seeing friends and colleagues celebrating together, people who have built careers, companies, and communities around this project. It was a reminder of what makes Drupal different. The technology matters, but the people are why we stay.
The Little Guy Needs a Voice
Here's where I want to add to the conversation. When you watch the Driesnote demo carefully, a marketing director receives brand guidelines from a team, legal is involved, a landing page is created for a product launch. That's enterprise. And if you're a small company without a marketer or a team for brand guidelines, that demo doesn't speak to you. It might even scare you away.
The site templates and marketplace are great progress, eleven templates up from one six months ago. But the framing is still enterprise and mid-market.
Microsoft did not become the default by being the best. They became the default by being on every computer, which made people think about them when they needed a server. The same applies to WordPress. Forgetting the base of the pyramid is a mistake.
I made this point at the Marketing Initiative BoF. As long as we keep talking enterprise, we might solve today's problem, but we will be right back here again. This is not either/or. We need enterprise marketing AND the little guy.
We already have companies building for the down market. Dripyard, FlexSite, Drupito, Drupal Forge, Palcera, the IXP Initiative. At Josh Koenig's "Real Talk on Drupal's Economic Prospects" BoF, Ashraf from Drupito showed their marketplace approach, where agencies personalize templates to serve specific verticals like barbershops. Concrete proof that the tools and the willingness exist.
The problem is fragmentation. We're all pulling in our own directions, and we can't expect an already spread-too-thin DA to coordinate this for us. What we need is a strategy. Let us create the content. We just need help from the DA identifying the difference in tone, and we can help create and publish it. Then the DA helps with distribution through their larger channels. I shared this with Paul McKibben and Chris O'Donnell, and they agreed. But we need more people to join this effort.
The IXP Program Deserves More Attention
Ana Laura Coto presented on the IXP Initiative and the credits we've already delivered during the Community Summit. A company completes an IXP engagement and gets 250 contribution credits. Bronze certified partner status requires 150. One engagement and you're on the path.
On contribution day, I presented the IXP to newcomers participating in Drupal in a Day. The pitch is straightforward: if a company cares about Drupal contribution credits, someone who completed the IXP can walk into a conversation and say "I'm worth 250 credits, hire me."
Between Drupal Camp Costa Rica and DrupalCon Chicago, over 100 people have registered for these programs. And honestly, I'm frustrated that companies are not jumping on these opportunities. We're feeding new talent into the ecosystem, people who could become the next generation of Drupal professionals. And the industry is barely paying attention.
And in the Driesnote, when Dries talked about driving adoption and the initiatives moving Drupal forward, the IXP was not mentioned. Again.
The AI Conversation Landed in the Right Place
Dries said something on stage that I've been arguing for weeks: "Don't submit code you don't understand." The AI slop conversation has been intense in our community, and it landed in the right place. Not bans. Quality gates. Standards that apply to the output regardless of how it was produced. The community's response during DrupalCon week proved that people who deeply disagree on AI can still work together with respect. James Jackson Abrahams showed real leadership through that process, and I'm glad the community recognized it.
The Federation Needs to Move Forward
The International Federation was a thread through the entire week. During the Community Summit on Monday, Baddy Sonja laid out something important: you can't just say "create a federation" and expect it to happen. It takes time, costs, and expertise. That's fair.
But we also can't wait for a perfect plan. Through conversations with Baddy and Tim, I understand the different concerns around this. Funding. Community governance. Infrastructure ownership. All valid. But I pointed out something concrete: a model where local associations take in RippleMaker memberships and Drupal Certified Partner fees will increase funding directly. Right now, the main source of income besides DrupalCon is the DCP program, overwhelmingly based in the US with minimal commitments from outside.
I see local associations working in two parts. They increase funding by expanding membership and certification programs locally, with local payment methods, tax benefits, and pricing that makes sense. And that same revenue gives them a budget to promote Drupal in their markets the right way.
Others want full clarity on how everything would work before starting. I understand that instinct. But waiting for full clarity means waiting forever. We need to start somewhere and evolve.
There was also a comment during the board meeting about diversity of countries and companies on the board. I want to add something to that. Even if we achieve diversity of origin, that alone doesn't guarantee diversity of perspective. If someone lives in Latin America but their clients are all in the US or EU, their vision will still be shaped by those markets. Real diversity means having people who serve their local markets, who understand what it means to run a business where the economic reality is fundamentally different. That's what the Federation would bring.
DrupalCon Latin America
During the board meeting, I brought up DrupalCon Latin America. We asked for the Drupal Association's help reaching prospective sponsors. Dries told us to find a couple of possible dates and consult with him directly. That's not a confirmation, but it's a door that wasn't open before. We're going to walk through it. If you're interested in sponsoring, speaking, or helping organize, reach out to me.
What I'm Taking Home
DrupalCon Chicago gave me energy and clarity. The product is moving. Drupal CMS 2.1, Canvas, the Context Control Center, the marketplace, site templates. The AI work is real and impressive.
Dries framing it as "AI amplifies expertise, it doesn't replace it" is exactly right.
But the conversations about the base of the pyramid, the markets we're ignoring, and the funding model that could change everything... those are still happening in BoFs and hallways, not on the main stage.
I didn't come to Chicago to wait. Rotterdam is next, and I hope by then the Federation is moving, the little guy has a voice in our marketing, and DrupalCon Latin America is on the calendar.
A retrospective on DrupalCon Chicago 2026 covering the Driesnote AI demos, the push for the International Federation, Drupal for the little guy, the IXP Initiative, the AI community debate, and the path toward DrupalCon Latin America.
Drupal's cache.backend.chainedfast makes your site faster without any configuration. All you need is to have APCu on your server. It shows up in the bootstrap, config, and discovery cache bins, and most developers never think about it or even know it is being leveraged.
The chained-fast backend combines two backends: a fast, inconsistent backend (APCu, local to each web server process) and a consistent backend (the database, which is shared across all servers). APCu alone is dangerous in a multi-server environment because each server has its own copy of the data; invalidations on one server don't propagate to others. The chained backend solves this with a last-write timestamp.
Drupal powers websites for governments, universities, major media organisations, and global brands - but historically it's demanded specialist knowledge just to get started. Last year's release of Drupal CMS changed that, putting Drupal's power within reach of the marketers, content teams, and site builders who actually run websites day to day.
Last week at DrupalCon Chicago, that vision took another huge step forward with the pilot launch of the Drupal Site Template Marketplace at marketplace.drupal.org.
Ready-made starting points, built the right way
The marketplace launches with an initial set of purpose-built site templates covering the use cases where Drupal has always excelled: nonprofits, higher education, healthcare, government, events, SaaS, and more, with more templates to follow as the programme grows.
Each template is a complete, working starting point. Not a design skin, but a fully configured site with real content models, editorial workflows, and Drupal's full architecture underneath. Install one inside DrupalCMS and you have a professional, sector-appropriate website that's ready to customise, not a blank slate dressed up nicely.
Free and premium options are available.
Why this is different from a WordPress theme
This distinction matters, and it's worth being direct about it.
Theme marketplaces, the kind WordPress is known for, offer visual overlays. They change how a site looks. They don't change how it works. That's fine for simple sites, but organisations that need real editorial workflows, structured content, access controls, multilingual support, or compliance requirements quickly find that a theme doesn't help. They're building the architecture from scratch regardless of how they started.
A Drupal site template includes that architecture from day one. The content models, the configuration, the editorial structure, all of it is already there, built to production standards, ready to extend.
That means the ceiling is genuinely different. Other tools can generate something that looks right. Drupal templates give you something that actually works, at scale, with a team, under real operational conditions.
Built for the sectors that need it most
Each template is designed around a specific use case, which means the features that matter for that sector are already configured and ready.
A nonprofit template arrives with the tools a nonprofit actually needs. A healthcare template is built around the trust and clarity that patients expect. A government template starts from the accessibility and security standards that aren't optional in the public sector.
Drupal's sector expertise, applied earlier in the process, so organisations can spend their time on what's specific to them, not on rebuilding foundations that have already been solved.
Expert support, built in
Every template in the marketplace connects you directly to the team that built it. If you need help customising, extending, or getting the most out of your starting point, the expertise is right there.
This is just the beginning
The marketplace is launching as a pilot, a deliberate decision to get the foundations right before scaling. The initial templates have been built to a high bar by agencies with deep Drupal expertise, and the programme will expand as more makers come on board.
It's an early but meaningful moment. The vision: a rich catalogue of sector-specific, production-ready starting points that make Drupal accessible to any organisation, is now becoming real.
I spent the last week at DrupalCon Chicago, seeing lots of old friends and having lots of discussions about the impact of AI on open-source developers everywhere.
Scaling Maintainership for DDEV (and everywhere)
I'm noticing that because of AI it's getting easier for our lovely community to contribute to DDEV. But I'm also seeing that our PR queue is getting longer, and Stas and I are feeling more pressure from it, because we sure don't like to frustrate contributors. In many cases, we have been getting good quality and nontrivial contributions, and contributions that have been prioritized. But they may not be exactly the things that we were hoping to put our own energy toward. And a couple of them are difficult to review because they touch low-level areas.
And I even notice that I am tempted to create too many new PRs because it's easy. On the train back from Chicago (30 hours) I couldn't help myself and did two new diagnostic commands for DDEV (using Claude Code). It's all well and good, but that's two more PRs that I have to study carefully, manually test on multiple platforms, and that Stas has to look at and test.
We'd love to have your comments and feedback about this cycle. Here are some thoughts that came up in various conversations:
We need to keep trying to turn contributors into maintainers. AI doesn't really do that. It helps people create things, or figure out how to scratch an itch, but it doesn't typically help with overall maintenance activities. If we can get more community members to build their skills in reviewing other PRs (both looking at code and manually testing) and giving their feedback about issues and priorities, maybe that's a good path.
We probably need to add a little more conversation to contributions before people spend time on them. I opened an issue for discussion about changing to requiring an issue (and conversation) before PR creation. I'd love your comments.
Guarding against burnout is critical for our project, especially for Stas and me. We want to be smart about this and properly manage all of our resources for the long term.
If you're interested in contributing more deeply and moving toward a maintainer role, the contributor training sessions are a good way to get started. And join us for conversations and community support in Discord and the issue queue.
What's New
coder.ddev.com Launched → Free, experimental cloud-based DDEV workspaces powered by Coder. Start a Drupal contribution environment in under 30 seconds with full VS Code, Xdebug, and CLI support. Read the announcement↗. Some folks used this for contributions at the DrupalCon Chicago Contribution Day. I've been using it on the train on the way home.
New TUI Dashboard → DDEV now includes an interactive terminal dashboard for managing projects, checking service status, and running common commands without leaving the terminal. Watch a Two-minute Screenshare. Inspired by community member Olivier Dobberkau'sddev-mngr add-on.
git worktree Contributor Training → Our March 26 session covered using git worktree with DDEV to run multiple versions of the same project simultaneously. Watch the recording and read the post↗
DrupalCon Chicago
DrupalCon Chicago was a highlight of the month. Birds-of-a-Feather (BoF) sessions are informal, attendee-organized meetups at DrupalCon where people with a common interest gather to talk - no slides required. I led several DDEV BoFs, including Git Worktrees and DDEV, DDEV Office Hours, What's New in DDEV, New ddev share features, Xdebug in DDEV, and Using coder.ddev.com (DDEV in the Cloud).
If you attended and have thoughts (or are just interested) join us to discuss in Discord.
Florida Drupal Camp
Florida Drupalcamp in February was also a good time - see the git worktree session recording was well-received. Thanks to everyone who came out and shared their DDEV experiences.
Governance
The DDEV board and advisory group met on March 4, 2026. See all the details and recording.
ddev-drupal-contrib → The ddev-drupal-contrib add-on continues to be a go-to for Drupal contrib module development. View on GitHub↗
Interviews and Articles About Stas
Two pieces this month featuring DDEV maintainer Stas Zhuk:
TheDropTimes Interview → "The Work Behind the Workflow: Stas Zhuk and the Future of DDEV" - an interview covering Stas's work on DDEV and where things are headed. Read on TheDropTimes↗
Dev.to Feature → "The Future of DDEV: Stas Zhuk Is Pushing It in the Right Direction" - a community perspective on Stas's contributions. Read on Dev.to↗
Community Tutorials from Around the Web
Symlink Your Way to Faster Drupal Contrib Module Development → A practical technique for speeding up module development workflows with DDEV. Read on Medium↗
DDEV, Laravel, and a Go API: The Sidecar Approach → Russell Jones explains how to get DDEV, Laravel, and a Go API service talking to each other. Read on Dev.to↗
Deploy Laravel to Coolify Without the Pain → How to use DDEV with Coolify for Laravel deployments. Read on Medium↗
Local Development with DDEV → A tutorial covering DDEV setup and daily use. Read more↗
Getting Started with DDEV → Peter Benoit's overview of DDEV for local development. Read more↗
Upcoming Training
Join us for upcoming training sessions for contributors and users.
Sponsorship is at 77% of goal - thank you to everyone who has contributed!
February 2026: ~$8,422/month (70% of goal)
March 2026: ~$9,294/month (77% of goal) - Great progress, thank you!
If DDEV has helped your team, consider sponsoring. Whether you're an individual developer, an agency, or an organization, your contribution makes a difference. → Become a sponsor↗
Contact us to discuss sponsorship options that work for your organization.
Stay in the Loop-Follow Us and Join the Conversation
Live from DrupalCon Chicago, Nic Laflin is joined by Tim Plunkett, Steve Wirt, Martin Anderson-Clutz, and John Picozzi to discuss the event's tone, Dries Notes and key themes including Drupal Canvas, Drupal AI, and new site templates/marketplace progress and more.
Having spent last month working on the new design for the demo theme, I decided to do something similar and focus on a project for March. This month I worked on LocalGov Services.
In my portion of the "Drupal CMS Spotlights" keynote, I made the case that in my 19+ years of being involved in the Drupal community, now is the most exciting time in Drupal's history.
I showed up to DrupalCon very anxious, because we had one training, three sessions, one booth session, and an extra "appearance" beyond that. Phew! In addition, Andy, Adam G-H, and I had only just wrapped up the work on Drupal CMS that allowed for paid site templates in the installer.
Drupal innovation & getting sh** done
With all of the work being done on 1) Drupal CMS, 2) Drupal Canvas, and 3) Drupal AI, it really feels like the pace of innovation has increased significantly from just two years ago. It's exciting, but oftentimes it's also a bit overwhelming!
Using the metaphor of a playground for my AI Drupal development environment now feels completely fitting, based on my experience building a module using AI. Good playgrounds have a variety of structures that challenge kids of different ages and confidence levels, helping them develop their physical and social skills.
For example, most kids don't just run into a playground and immediately climb to the top of the monkey bars as their first move; yes, some daredevils will go straight there, and foolish ones will cry for help if they get stuck. My specific playground experience with AI was learning how to fall, get up, and try again. My obstacle was building a module using Claude Code. Similar to kids trying their first climb on the monkey bars, they expect to reach the top effortlessly, but as they climb, they face reality, their hands get sweaty, and they look down.
Unrealistic expectations
I had glorious expectations for my experience building a fairly complex module with Claude Code. I assumed that a fully documented module specification plan would guide Claude in creating a working solution.
Personally, I am not very skilled at writing requirements, specifications, and documentation. At best, I excel at writing self-documenting code, which is somewhat of a cop-out. For me, having a complete plan in place before starting implementation feels like a refreshing change. Creating better plans for AI coding agents will help me become a better mentor to humans.
Drupal is often used for security-sensitive and large-scale sites, so these kinds of changes matter.
Early versions of Drupal stored passwords as simple MD5 hashes, which is extremely weak by today's standards. Drupal 7 introduced a modified version of the phpass library using SHA-512 with multiple iterations and a salt, and Drupal 10 switched to bcrypt. Each jump was a response to attackers getting faster hardware, and this change continues that pattern.
When I first looked at this change, I wanted to understand what Argon2id actually does differently from bcrypt.
Its key advantage is that it is "memory hard". Each Argon2id hash requires far more memory to compute than a bcrypt hash, and the amount is configurable.
Modern GPUs can run many bcrypt computations in parallel because each one uses very little RAM. GPUs have a lot of total memory, but it is shared across thousands of parallel computations. As a result, Argon2id limits how many hash computations can run in parallel, making it harder and more expensive to scale attacks.
The best security upgrades are the ones nobody has to think about. Once a site upgrades to Drupal 12, existing passwords will automatically be rehashed to Argon2id the next time each user logs in. And in the unlikely event that Argon2id is not available in a particular PHP installation, Drupal will fall back to bcrypt for compatibility.
Many site owners never think about password hashing, so Drupal's defaults become their security policy. The people who benefit most from this change may never know it happened. It's why being "secure by default" matters so much.
git worktree lets you check out multiple branches of the same repository into separate directories-all sharing one .git directory. Combined with DDEV, this gives you multiple running versions of the same project without duplicate clones.
There are many ways to use this, but some common patterns:
Keep directories named after the branch they contain.
Work on a hotfix and a feature branch without them interfering with each other.
Set up Claude Code to work on two features at once in two distinct directories.
When you need to work on several branches of a project simultaneously-say, a feature branch and a hotfix branch-the naive approach is to clone the repository twice:
This works, but each clone is a full redundant copy, and sharing objects or refs between them is awkward.
DDEV Project Names and Directories
By default, DDEV names a project after the directory it lives in. When you remove the name: key from .ddev/config.yaml, every checkout of a project gets the name of its parent directory automatically.
You can make this the global default:
ddev config global --omit-project-name-by-default
With that in place, fancy-feature-1/ becomes https://fancy-feature-1.ddev.site and fancy-feature-2/ becomes https://fancy-feature-2.ddev.site-no manual naming is required.
Using git worktree
git worktree solves the duplicate-clone problem. All worktrees share one .git directory:
# In ~/workspace/D11SIMPLE:
git clone git@github.com:ddev/d11simple
cd d11simple
git worktree add ../fancy-feature-1
git worktree add ../fancy-feature-2
Without a branch argument, git worktree add creates a new branch named after the directory. To check out an existing branch instead:
Export database and files from your primary project once, then import into each worktree:
# From ~/workspace/D11SIMPLE - create a shared tarball directory
mkdir .tarballs
# Export from the primary clone
cd d11simple
ddev export-db --file=../.tarballs/db.sql.gz
# Adjust the path below for your CMS; web/sites/default/files is Drupal
tar -C web/sites/default/files -czf ../.tarballs/files.tgz .
# Import into a worktree
cd ../fancy-feature-1
ddev start
ddev import-db --file=../.tarballs/db.sql.gz
ddev import-files --source=../.tarballs/files.tgz
Key git worktree Commands
git worktree add <path> # Usually a relative path
git worktree list # Show all worktrees
git worktree remove <name> # Remove a worktree
Summary
Remove name: from .ddev/config.yaml so each worktree uses its directory name as the project name
Consider ddev config global --omit-project-name-by-default to make this behavior the default for all projects
git worktree add <path> creates a new checkout sharing the same .git
Import a database snapshot and files tarball into each worktree
Each worktree gets its own DDEV project URL automatically
Join us for future trainings
Sign up for the DDEV Newsletter to be informed about future trainings.
Let us know your tips and tricks in Discord or here in the comments.
Claude Code was used to draft and review this blog.
Following on from my last article, an introduction to HTMX in Drupal, I wanted to start looking at examples of HTMX being used to power interactivity in Drupal in different ways.
I thought a good place to start this off would be to look at using HTMX in a simple controller. By creating a route to a controller we can render content and then inject HTMX attributes to perform actions with the same controller.
In this article I will put together a controller action to load some pages of content to display them as a list. An element containing HTMX attributes will be used to make a request back to the same controller action and generate more items in the list. These new items will be appended to the existing list along with another element containing HTMX attributes that we can use to request more items.
The HTMX element will act like a "load more" button, which will load more and more content as long as there is content to load.
All of the code contained in this article can be found in the Drupal HTMX examples project on GitHub, but here we will go through what the code does and what actions it performs to generate content.
First, let's create the route to the controller.
The Route
The route we create here just links the path requested with the controller class. As we are only using a single action in this example we don't need to provide a second route for the HTMX request.
Add new comment