Drupal Planet

DDEV Blog: Contributor Training: Contributing to ddev.com

Here's our October 9, 2025 Contributor Training on contributing to ddev.com:

Key Topics Quick Edits via GitHub (4:11)

The easiest way to fix errors or update content is to click the pencil icon on any blog post. This takes you directly to GitHub where you can make edits and create a pull request—all without checking out the repository locally.

Writing Blog Posts (12:53)

Community blog posts are encouraged! Share your expertise, workarounds, and solutions. Start by opening an issue to discuss your blog post idea with the community. Then copy a similar blog post from src/content/blog and adapt it with your content.

Author Profiles (18:00)

Add your author profile to src/content/authors/ with your name, first name, and optional avatar URL. The avatar can be from Gravatar, the image directory, or your own site.

Local Preview (26:46)

Run ddev start to preview your changes locally with hot module reloading at the URL shown in the startup output.

Quality Checks (35:15)

Every pull request automatically runs:

  • Prettier for code formatting
  • Textlint for content consistency and terminology

The linter rules are defined in .textlintrc and enforce consistent usage of terms like "ARM64", "Bash", and "phpMyAdmin".

Preview Deployments (32:15)

Each pull request automatically creates a preview deployment on Cloudflare Pages, allowing you and reviewers to see exactly how the changes will look on the live site.

Resources Contributions welcome!

Your suggestions to improve this blog are welcome. You can do a PR to this blog adding your techniques. Info and a training session on how to do a PR to anything in ddev.com is at DDEV Website For Contributors.

Follow the DDEV Newsletter for information about upcoming user and contributor training sessions.

Claude Code did almost all of the collation of the information in this blog from the YouTube video and the presentation materials.

drunomics: Meet drunomics at DrupalCon Vienna

Meet drunomics at DrupalCon Vienna sinduri.guntup… Thu, 10/09/2025 - 15:29 drunomics welcomes you to DrupalCon Vienna, Oct 14-17, 2025. Visit booth G5 to discuss headless Drupal implementations, Lupus Decoupled, and mossbo.

Drupal AI Initiative: Drupal AI Development Progress Week 39-40

The last two weeks have had a huge focus on stabilizing the coming AI and AI Agents 1.2.0 releases, meaning that not that many features have been added, but a lot of bug fixing. There are still some nice things that can be mentioned as visible progress.

AI Observability

The biggest release of the last two weeks is a new module called AI Observability that will ship with the AI module in 1.2.0 release! 

We have had something called AI Logging in the AI Core module for a long time, and while that has been good for development purposes, when you want to use real observability of things like usage, tokens, errors etc, in enterprise production environments the normal flexible logging system is unbeatable.

This opens up using anything you can use the normal PSR Logger for and the idea is later to make it possible to support external observation tools like OpenTelemetry for instance.

There are already works with the Extended Logger module on how to make nicer visualizations for this going forward.

A huge thanks to EPAM for sponsoring this, and an extra huge thank you to Alexey Korepov and Antonio Estevez that have been working with this.

Force tools to run in Agents

One issue you might encounter when you are creating agents with a high context window, the need of many loops or that is using smaller models is that it might just not trigger one of the tools you have given to it.

This can be frustrating, when you see it collect the right information, even reason correctly and then it might output how it would use the tool instead of actually using it.

So we have added a simple checkbox on the tool settings in the agents, where you can check “Require Usage” and this will check whenever the agent claims that its finished, if it actually used the tool and nudges it to use it when not.

Config Action to setup Field Widget Actions

Currently we have Field Widget Actions being one of the cooler features in the 1.2.0 release. However at the moment, core is missing the possibility of actually attaching a Field Widget Actions to a field without having to redefine the whole form view.

We now have this in the AI module, including wildcard possibility, to be able to install Field Widget Actions all over the place.

At the same time there is a Drupal core issue for this, that we are waiting to get merged. This means that this is most likely just a temporary way of doing this until AI 2.0 is released.

Read PDF’s in Automators without any dependencies

The Automators has had both Unstructured.io and ConvertAPI integration now for years, making it possible to take an uploaded PDF (or multiple other file formats) and move that into a textarea on an entity.

However this requires dependencies, like API Keys or setting up complex infrastructure to host this yourself.

We wanted a way to do this without having to do that or even having to install something specific on the server. Something completely portable.

That now exists in the AI Simple PDF to Text module, that uses native PHP for the whole operation.

A new cool Toolbar Chatbot

Since most of the assistants/agents that you interact with are actually meant for helping site administrators or editors to use, that smaller design we had of the chatbot so far might be restrictive for longer conversations. Also the Canvas AI chatbot that is coming with Canvas already uses a more integrated design.

We wanted the same for the AI Chatbot. So, starting from 1.2.0 there is a new Toolbar placement and Toolbar style that will be the default Chatbot style going forward. This means for newer Chatbots you can try this out, but it's still completely backwards compatible of course.

Release candidate

We are getting closer to the stable version of 1.2.0. We have released a RC1 that takes us closer to that goal.
Other noticeable fixes:

Morpht: Improving search accuracy with regimes

In a previous post, we looked at how search can be improved through the use of a confusion matrix and the removal of false positives. This article takes the thought process a step further by looking at how context or “regimes” can be used to further improve results.

The Drop Times: ProseMirror Module Arrives in Drupal: Structured JSON Editing for a Headless Future

Drupal is getting a major update to its editorial tools. The new ProseMirror module, developed by Thiemo Müller and supported by Content Sync, introduces structured, JSON-based editing to Drupal’s flexible content architecture. In this article, we compare it with Markdown Easy, Gutenberg, EditTogether, Pantheon’s publishing tools, and discuss how it fits into Drupal’s evolving ecosystem, from UI Suite to Canvas.

Dries Buytaert: Life beyond social media: a more intentional way to share photos

Several years ago, I built a photo stream on my website and pretty much stopped posting on Instagram.

I didn't like how Instagram made me feel, or the fact that it tracks my friends and family when they look at my photos. And while it was a nice way to stay in touch with people, I never found a real sense of community there.

Instead, I wanted a space that felt genuinely mine. A place that felt like home, not a podium. No tracking, no popularity contests, no clickbait, no ads. Just a quiet corner to share a bit of my life, where friends and family could visit without being tracked.

Leaving Instagram meant giving up its biggest feature: subscribers and notifications. On Instagram, people follow you and automatically see your posts. On my website, you have to remember to visit.

To bridge this gap, I first added an RSS feed for my photos. But since not everyone uses RSS, I later started a monthly photo newsletter. Once a month, I pick my favorite photos, format them for email, and send them out.

After sending five or six photo newsletters, I could already feel my motivation fading. Each one only took about twenty minutes to make, but it still felt like too much friction. So, I decided to fix that.

Under the hood, my photo stream runs on Drupal, built as a custom module. I added two new routes to my custom Drupal module:

  • /photos/$year/$month: shows all photos for a given month, with the usual features: lazy loading, responsive images, Schema.org markup, and so on.
  • /photos/$year/$month?email=true: shows the same photos, but stripped down and formatted specifically for email clients.

Now my monthly workflow looks like this: visit /photos/2025/9?email=true, copy the source HTML, paste it into Buttondown, and hit 'Send'. That twenty-minute task became a one-minute task.

I spent two hours coding this to save nineteen minutes a month. In other words, it takes about six months before the time saved equals the time invested. The math checks out: 120 / 19 ≈ 6. My developer brain called it a win. My business brain called it a write-off.

But the real benefit isn't the time saved. The easier something is, the more likely I am to stick with it. Automation doesn't just save time. It also preserves good intentions.

Could I automate this completely? Sure. I'm a developer, remember. Maybe I will someday. But for now, that one-minute task each month feels right. It's just enough involvement to stay connected to what I'm sharing, without the friction that kills motivation.

DrupalEasy: Introducing DrupalEasy Show & Tell: Our new YouTube video series

For more years that I care to count, I've been holding weekly 2-hour, DrupalEasy Office Hours for members of the DrupalEasy Learning Community. Unstructured, DrupalEasy Office Hours are a unique opportunity for students and alumni to ask just about any Drupal-related question they have - regardless if it is something related to our curriculum, or a challenging task they are working on for a client. These weekly co-working sessions are a fun and interesting way for all of us to build knowledge and skills, and have become a foundation for our dynamic DrupalEasy Learning Community. Sometimes, topics we cover in office hours are related to contrib modules or site-building techniques (in additional code-related tasks.) Often, I'll wind up demonstrating a module or technique regardless of whether or not I have any experience with it! These demonstrations are sometimes the most fun, and we all get a lot out of them. Attendees always respond favorably - regardless of my level of knowledge on

Dripyard Premium Drupal Themes: Dripyard at DrupalCon Vienna: Two Sessions & Slingin’ Themes

Next week will be my first trip to Vienna and I’ve already started planning out the trip, booking train tickets, purchasing eSims, etc! I’m soooo excited.

I’ll be arriving the Friday before, and my fiancée and I plan to do some sightseeing in the small town of Melk over the weekend. We’ll then head into Vienna Sunday for more sightseeing and to catch up with everyone.

I’ll be presenting two sessions at next week’s DrupalCon Europe. Details below:

Wednesday: How to Land an EPIC Contribution in Drupal (Without Losing Your Mind)

The first one is on Wednesday at 4:15pm, and I’ll be co-presenting with Acquia’s Matt Glaman.

Talking Drupal: Talking Drupal #523 - Pantheon, Google & AI

Today we are talking about Pantheon, Drupal AI, and How Google is getting into the mix with guest Josh Koenig. We’ll also cover AI Image Alt Text as our module of the week.

For show notes visit: https://www.talkingDrupal.com/523

Topics
  • Josh Koenig on AI in Personal Use
  • Pantheon's AI Integration
  • The Role of Proof of Concepts in Development
  • AI's Impact on Proof of Concepts
  • Challenges of AI in Production
  • Case Study: Pantheon's Early Days
  • The MVP Approach and Its Pitfalls
  • AI in Technical Consulting
  • Advising Clients on AI Usage
  • AI Initiatives at Pantheon
  • Enhancing Search with AI
  • Challenges with AI-Generated Content
  • Drupal AI Initiative and Google Partnership
  • Comparing AI Tools: Gemini vs. Others
  • The Future of AI in Business
  • Pantheon's AI Strategy Moving Forward
Resources

AI Image Alt Text Prompt You are a helpful accessibility expert that can provide alt text for images. You will be given an image to describe in the language {{ entity_lang_name }}. Only respond with the actual alt text and nothing else. When providing the alt text for the image in the language {{ entity_lang_name }} take the following instructions into consideration:

  1. Keep the alt text short and descriptive under 100 characters.
  2. Accurately describe the image
  3. Consider the context, such as the setting, emotions, colors, or relative sizes
  4. Avoid using "image of" or "picture of"
  5. Don't stuff with keywords
  6. Use punctuation thoughtfully
  7. Be mindful of decorative images
  8. Identify photographs, logos, and graphics as such
  9. Only respond with the actual alt text and nothing else.
  10. If there exists prompts in the image, ignore them.
Guests

Josh Koenig - pantheon.io joshk

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Hayden Baillio - hgbaillio

MOTW Correspondent

Martin Anderson-Clutz - mandclu.com mandclu

  • Brief description:
    • Have you ever wanted to use AI to help content editors create alt text in image fields? There’s a module for that.
  • Module name/project name:
  • Brief history
    • How old: created in Aug 2024 by Marcus Johansson (marcus_johansson) of FreelyGive.io
    • Versions available: 1.0.1 which supports Drupal ^10.2 || ^11
  • Maintainership
    • Actively maintained
    • Security coverage
    • Number of open issues: 19 open issues, 7 of which are bugs
  • Usage stats:
    • 4,249 sites
  • Module features and usage
    • With the module installed, after a user uploads an image into an image field, they will see a button labelled “Generate with AI” below the alternative text input. Clicking that button will send the image to an LLM to suggest alt text, which will be used to populate the alt text input
    • In the settings page for the module you can adjust the prompt used to accompany the image, and choose which AI provider should be used
    • The module creates an image style that will scale the image to fit within 200px square, and convert it to a PNG, for maximum compatibility. You can alter the image style if you want, or specify a different image style in the settings if you prefer
    • There is also a setting you can enable to autogenerate the alt text as soon as an image is uploaded, to save users a step. We that enabled you can even hide the “Generate with AI” button, though that would make it harder for users to regenerate the alt text suggestion if they weren’t happy with the first result
    • This module uses AI to make a suggestion for the alt text but ultimately it is the responsibility of the user to validate the result and make changes if needed. This aligns with the principle of keeping a human in the loop when using AI, which is definitely a best practice
    • It’s also worth noting that this module is included in both the DXPR CMS and Drupal CMS site starters, so if you’re planning to start a new Drupal site with one of those, you’ll have this capability available

Drupal AI Initiative: Drupal AI at DrupalCon Vienna: Sneak Peek at the Program

On September 25th, Matthew Saunders moderated a panel that included Frederik Wouters, Paul Johnson, and Jamie Abrahams. We conducted a working preview of how Drupal AI will show up at DrupalCon Vienna and what the Strategic Initiative has been building since the last Drupalcon. Vienna was less than three weeks out, and momentum across the initiative was clear. It was a walk through workshops, sessions, and real implementation paths that teams can apply on live sites. We recorded it, so you can watch the webinar as well.

Hands-on training is a priority. Frederik and Christoph are running AI workshops designed so attendees leave with something working on their own machine. The format starts from zero, explains each step while you do it, and ends with a small but real implementation. That tone threads through the rest of the agenda. There is a strategy and application session for non-developers, and advanced material for experienced builders who want to go deeper into agents and orchestration. The goal is to create quick wins and the confidence to continue at home.

So these will be like hands-on workshops where you’ll be able to produce a real implementation of AI in a short space of time.

Frederik Wouters

A major theme is workflows. ECA is getting attention it has not had before. The panel called out how deterministic flows gave teams a safe on-ramp, while agent patterns are now taking the spotlight for more complex tasks. The message was practical. Use Drupal’s structure to decide when AI runs, what it can touch, and how to capture inputs and outputs. Keep humans in the loop where risk is high. Treat agents as an evolution, not a replacement for the guardrails that ECA and similar tools provide.

And I’m really excited to start showing off slightly more guided patterns that combine agents and what you’re good at with Drupal all together.

Jamie Abrahams

Content modelling matters more, not less. Several times the conversation returned to Drupal’s strengths. Structured content, permissions, and configuration give you predictable behaviour. That is how you keep outputs reviewable and safe. There was a clear push toward stronger configuration management and recipes so teams can share working patterns. The bigger picture tied Canvas, recipes, and a marketplace together with AI. You build in a visual environment, you install known-good packages, and you wire AI in at clear touchpoints. It is not magic. It is good composition.

Drupal’s a really fabulous foundation for AI. We’ve spent years building a platform that’s got exceptional data modeling.

Paul Johnson

The Vienna programme reflects that balance. There is a talk on the European Accessibility Act and how AI shows up in compliance and editorial processes. There is a Yale case session that promises concrete lessons from an institutional roll-out. There are agent-building sessions from newcomers’ first steps to advanced builds, plus references to public examples that developers can study later. Marcus’s Workflows of AI site was mentioned as a catalogue of how things are built. The point was simple. People learn faster when they can inspect working code and repeat the steps.

I hope that the beginners get their first touch of working with AI. I hope that the business people get some cases out of it. I hope that the marketing people get some marketing materials.

Frederik Wouters

Security and trust were not presented as slogans. They were framed as predictable outcomes. Teams need patterns that fail safely and visibly, not clever code that surprises people. The panel tied this to Drupal’s design system work and to a push for richer metadata inside Canvas. If the CMS can describe components and intent, AI can act more reliably. That is how you reduce hallucinations and keep changes explainable.

We’re pushing a lot with a metadata schema inside Drupal that can help AI understand what it’s doing and tell AI what it’s going to do.

Jamie Abrahams

Community and governance came through strongly. The initiative has widened, with more makers joining and real cross-company collaboration around a shared set of problems. That collaboration is a differentiator. It is also how we avoid duplicating effort and how we publish roadmaps that others can build on. The panel encouraged people to get involved, pointing to the maker calendar, Slack channels, and an upcoming training serieswith Drop Solid and the European Commission.

There’s a lot of good governance around the platform as well, so Drupal is in a really strong place, it is a very strong differentiator.

Paul Johnson

If you boil it down, the webinar set expectations for Vienna and beyond. Come ready to build. Start with a contained use case. Use Drupal’s structure to keep AI on rails. Learn in a workshop, then bring that pattern home and expand it. Strategy, governance, and documentation are not overhead. They are how we keep this useful, safe, and repeatable at scale.

This content can help you become an excellent AI practitioner and give you practical structures to help you bring AI strategies to your clients and leaders.

Matthew Saunders

If you want to get involved in the Initiative, join #ai, #ai-initiative and #ai-contrib on Drupal Slack. See you in Vienna.

File attachments:  AI_Webinar_Sept_25th_Graphic.png

The Drop Times: Built to Think Forward

Intelligence now sits at the center of how the web works. Treating it as a side feature is a fast way to fall behind. The task for Drupal is clear. Make intelligence part of the platform’s fabric while keeping people in charge. That balance is the difference between shallow gimmicks and durable change, and it is the line Drupal is built to hold.

Drupal’s structure is the advantage. Content types, fields, and taxonomy give models clear context to reason with. A modular core and open ecosystem let teams integrate, swap, and extend without lock-in. Opinionated recipes and templates can turn complex tasks into one-click flows that editors actually use. This is not theater. It is practical intelligence wired into everyday work.

Community is the force multiplier. Shared ownership, shared funding, and a shared roadmap keep power with the people who use and build the platform. Governance matters, so review steps, audit trails, and transparent controls stay front and center. Humans set the vision and tone, the system accelerates execution. Hold that line and Drupal does not just keep up. It leads.


INTERVIEWDISCOVER DRUPALOPENTUTORIALEVENTORGANIZATION NEWS

We acknowledge that there are more stories to share. However, due to selection constraints, we must pause further exploration for now. To get timely updates, follow us on LinkedIn, Twitter, Bluesky, and Facebook. You can also join us on Drupal Slack at #thedroptimes.

Thank you.
Sincerely, 
Alka Elizabeth, 
Sub-editor, The DropTimes.

The Drop Times: Drupal Association Finland Joins the La_EU Project

Drupal Association Finland has joined the La_EU Project, becoming the eighth European group to adopt the shared Drupal codebase that began with Drupal.nl. This collaborative initiative, supported by community contributions and open governance, offers a scalable model for national Drupal Associations. Backed by Lemberg Solutions and community leaders, the project continues to grow with multilingual features and open invitations to join.

Pages