Übersicht

Vorschläge max.2 pro Tag

Platz für Vorschläge, Fragen, Anderes

Wenn sie Antworten erhalten wollen tragen sie hier Kontaktdaten wie email-Adresse oder Telefonnummer oder Postanschrift ein

CAPTCHA
Sicherheitscheck: Tragen sie die abgebildeten Buchstaben und/oder Zahlen hier unter in das freie Feld ein.
Image CAPTCHA
Enter the characters shown in the image.

Linux - here we go

Umfrage

Wie gefällt euch/ihnen diese Seite:

Vorschläge und Wünsche bitte an: support@webjoke.de.

Benutzeranmeldung

CAPTCHA
Sicherheitscheck: Tragen sie die abgebildeten Buchstaben und/oder Zahlen hier unter in das freie Feld ein.
Image CAPTCHA
Enter the characters shown in the image.
Drupal.org - aggregated feeds in category Planet Drupal
Aktualisiert: vor 16 Minuten 18 Sekunden

Droptica: Drupal implementation questions. What customers ask about in 2025?

Do, 10/02/2025 - 10:42

Choosing a content management system is a strategic decision for any organization. Since the beginning of 2025, we have received approximately 200 inquiries regarding the implementation of new projects based on Drupal. After analyzing these messages, we identified 10 categories of questions that most frequently arise among companies considering implementing this CMS. In this article, I will present these questions along with their answers. The text is based on my video from the Nowoczesny Drupal channel.

Kategorien: Drupal News

DDEV Blog: Upsun Support for DDEV in a New Add-on

Do, 10/02/2025 - 02:00
Introduction

We're proud to announce that DDEV now has an Upsun add-on with extensive support for Upsun Flex and Upsun Fixed (Platform.sh-style configuration)!

Although DDEV has had ddev pull upsun support for Upsun projects for a couple of years, the add-on provides a more complete integration. It reads your Upsun configuration and automatically configures matching services in your local DDEV project, mirroring what your upstream project uses.

Getting Started

Getting started is straightforward:

  1. In your existing Upsun project directory, run:ddev config ddev add-on get ddev/ddev-upsun ddev start
  2. The add-on will read your .upsun/config.yaml or .platform.app.yaml and configure your local environment automatically.

For more details, see the README.

What the ddev-upsun Add-on Does

When you do a ddev add-on get ddev/ddev-upsun the add-on reads your .upsun/config.yaml or .platform.app.yaml file and configures your DDEV project to match the upstream environment. This requires careful translation between Upsun's cloud architecture and DDEV's local environment.

  • Use the same PHP version and extensions.
  • Use the same database type and version (supporting multiple versions of MariaDB, MySQL, and PostgreSQL).
  • Detect the use of Redis, Memcache, and Opensearch and configure DDEV add-ons to mimic the Upsun configuration.
Why ddev-upsun Matters

Although many Upsun-hosted sites are basic nginx-fpm-database sites that DDEV has easily supported for years, the more complex ones have required special handling, like having to explicitly set PHP version, database type, etc. Now the add-on can do much of that for you.

For example, if your Upsun project uses PostgreSQL 15 with Redis and a specific PHP version, previously you'd need to manually configure each in your .ddev/config.yaml. Now, the add-on detects and configures all of this automatically.

Upsun is a great platform for developers, and so many of you use it in the new "Flex" style and the previous "Fixed" style (Platform.sh-style). The add-on makes it easy to use both with a single add-on.

And of course Upsun is the lead sponsor of DDEV, so we always delight in making it work for you.

The Future of ddev-upsun

A sophisticated platform like Upsun has many possibilities, and we want most things to work on most projects. The scope will be limited to PHP for now. However, we want to add:

  • Versioning for add-ons (Redis version will be supported in ddev/ddev-redis add-on, for example).
  • More service support, like Elasticsearch and Solr.
  • Even more extensive automated tests. Currently we have a very extensive set of tests based on a Drupal setup, but want to add tests for other frameworks and CMSes.
How We Got Here (PHP Add-ons)

DDEV v1.24.8 (required) adds support for add-ons written mostly in PHP. Originally, all add-ons were written in Bash, with Go templating. It worked great for so many simple add-ons, but was way too complicated for sophisticated ones. PHP is a familiar and powerful language for many add-on developers, so now provides a much more expressive way to write complex add-ons.

The ddev-platformsh add-on forced the issue on this. Every time we went back to it to maintain it we had to remember how Go templates worked and sort out complex Bash logic. Bash and Go templates are a lousy combination for maintainability. PHP should be much better. The ddev-upsun add-on will replace ddev-platformsh and supports both the Flex and Fixed Upsun configurations.

If you're currently using the ddev/ddev-platformsh add-on, you can migrate to ddev-upsun by removing the old add-on with ddev add-on remove ddev-platformsh and adding the new one with ddev add-on get ddev/ddev-upsun.

What's Next
  • Check out the full documentation for advanced configuration options.
  • We'd love your feedback — open issues or contribute PRs if you encounter any edge case.
  • If you like it, give us a star on GitHub.
Gratitude

Thanks as always to Upsun for their financial support and for the great products, and for access to testing accounts. Their continued support makes DDEV development possible.

If you're not already an Upsun user, try an Upsun free trial.

Stay in the Loop—Follow Us and Join the Conversation

Reviewed with assistance from DDEV Contributors and Claude Code.

Kategorien: Drupal News

Centarro: Drupal Commerce Now Supports PayPal Fastlane

Mi, 10/01/2025 - 16:47

The latest release of Commerce PayPal integrates Fastlane by PayPal, a payment gateway and checkout flow specifically designed to optimize the checkout experience. It streamlines the guest checkout experience, but for customers who opt in, Fastlane creates a unified profile that can accelerate checkout across participating sites.

We expect this integration to be particularly valuable for merchants transitioning away from PayPal's legacy solutions. It’s also a great opportunity to adopt a more modern checkout experience as popularized by other platforms and mobile wallets.

What makes Fastlane different

Fastlane allows users to complete their purchases in just a few clicks, potentially reducing cart abandonment rates.

  • For first-time customers: Fastlane provides a streamlined guest checkout where customers can optionally save their payment method and shipping information by providing a mobile number. This creates a Fastlane profile that's shared across participating merchants.
  • For returning customers: When a customer with a Fastlane profile shops at any participating merchant, they simply enter their email address. If a profile is found, they receive a one-time code via SMS to authenticate, and their saved payment and shipping details are instantly retrieved.
One-page checkout for Drupal Commerce

As part of our Fastlane integration, we implemented single-page checkout functionality. This feature actually advances a goal we've had for Drupal Commerce for a long time. Most modern e-commerce platforms now use single-page checkout to help reduce cart abandonment, and we plan to extend this approach to other payment gateways.

Read more
Kategorien: Drupal News

Tag1 Consulting: Using Artificial Intelligence to Improve the Usability of Drupal’s AUTO_INCREMENT Alter Module

Mi, 10/01/2025 - 14:01

At Tag1, we believe in proving AI within our own work before recommending it to clients. This post is part of our AI Applied series, where team members share real stories of how they're using AI and the insights and lessons they learn along the way. Here, Mauricio Dinarte, inspired by a video by Dries Buytaert, explores using Claude Code to add a graphical user interface to a contributed Drupal module previously available only via the command line.

mauricio Wed, 10/01/2025 - 05:01
Kategorien: Drupal News

Gizra.com: Make Impossible States Impossible (in Drupal Theming)

Mi, 10/01/2025 - 02:00

The phrase “Make Impossible States Impossible” is often used in typed languages such as Elm and Haskell. Since these are typed languages, the typical approach is to first “Model the problem” and then implement the solution, which usually feels natural after modeling. The concept behind “Make Impossible States Impossible” is to design your logic so that it prevents the possibility of ending up in an incorrect or invalid state.

Imagine this function:

function isAllowedAccess(bool $is_trial, bool $is_paid) : bool

This function nearly makes sense, but it has a flaw in its design.

is_trial is_paid Meaning Valid? false false No subscription ✅ true false Trial user ✅ false true Paid subscriber ✅ true true Trial and Paid
Kategorien: Drupal News

Cheppers: Drupal: The CMS for Responsible AI

Mi, 10/01/2025 - 02:00
Artificial intelligence has become one of the defining conversations of our time. Some see it as a revolutionary force with limitless potential, while others think it is a looming threat, raising concerns about control, jobs, and trust. For leaders, product teams, editors, and developers, the real question is simpler and more practical: how can AI help people focus on the work that matters while handling the repetitive tasks?
Kategorien: Drupal News

Dripyard Premium Drupal Themes: Dripyard product launch webinar video recording is up!

Di, 09/30/2025 - 22:57

We’re thrilled with the turnout for our Dripyard themes product launch! The response has been incredibly encouraging as we kick off this new business.

We had 170 total registrations, with about 100 attendees joining live at any given time. We even sold our first themes during the event!

The full recording is available below. If you catch it soon, there’s still a chance the launch coupon codes will be active!

 

Kategorien: Drupal News

mark.ie: My LocalGov Drupal contributions for September 2025

Di, 09/30/2025 - 18:00

A good amount of contributions made this month, including getting LocalGov Replicate into a stable state.

Kategorien: Drupal News

The Drop Times: How to Build a Scalable Design System in Drupal Projects

Di, 09/30/2025 - 15:07
Volha Tsimaliak from Attico shares a deep dive into building scalable design systems for Drupal projects. With strategies tailored for multibrand ecosystems and real-world implementation tips, this guide covers everything from atomic design and token systems to integrating Tailwind, Figma, and Drupal. Learn how to bring structure, speed, and consistency to your web platforms.
Kategorien: Drupal News

Colorfield: Semantic search with Drupal and Typesense

Di, 09/30/2025 - 14:42
Extend Search API Typesense with RAG (Retrieval-Augmented Generation)
Kategorien: Drupal News

Drupal AI Initiative: Drupal AI 1.2.0-beta1 and AI Agents 1.2.0-beta1 are out!

Di, 09/30/2025 - 13:23

Roughly three months have passed since AI 1.1.0 was released and we are getting ready for the next step in the history of Drupal AI.

This means that we will have an upgrade path before the next RC release, all major features are developed and any known security or critical bug is fixed. As a developer you can trust that the API’s are set.

One important upgrade path is that we are moving out the AI ECA module, to https://www.drupal.org/project/ai_integration_eca so that can develop in a more rapid tempo then the release cycles of the AI module.

As a developer you can trust that the API’s are set.

If nothing unexpected happens, the plan is to have a RC 30th of September and a production release 7th of October.

What does it bring?

The feature list of changes since the 1.1.0 release of the AI and AI Agents is too long to list and a lot has been written already in the alpha releases. But it includes:

Field Widget Actions

The field widget actions module lets you place as many buttons as you like on any form element for fields in Drupal to trigger AI Agents, AI Automators, ECA workflows or you custom integrations.

This means that you can have buttons to pick categories based on specific criterias, have title suggestions and thousands of other solutions.

Prompt Library

With the release of 1.2.0, we make it possible to ship prompts as general reusable configurations and categorize them where they belong.

New Automator Types

In 1.2.0 you will be able to use the Automator to contextualize using Views, create alt texts, rewrite filenames and fill out the summary on the Text with Summary field.

Prompt Replay provider

For testing reasons we usually have the problem that we do not want to send requests to an expensive AI provider just to try a piece of code over and over. We have solved that by having a proxy provider that can record requests and then replay them over and over, including in functional and kernel tests.

Agent improvements

The agents are getting more controllable and usable, including being able to create artifacts to pass over, output structured schemas, controlling descriptions of tools, status polling services, getting recursive tool results, being able to be triggered in CKEditor and more.

New chatbot Assistant styling

Because the assistant is designed primarily for website editors and administrators, the chatbot should reflect that focus. Starting with version 1.2.0, a new default styling will be introduced that integrates more seamlessly with the overall CMS design. The current style are still available of course.

Please try it out!

Whilst we wouldn’t recommend deploying to production systems yet, you can definitely start developing with the new features and try them out.

We are eager for any feedback!
 

Kategorien: Drupal News

Specbee: Top 10 Drupal SEO tips you can’t skip in 2025

Di, 09/30/2025 - 12:22
Whether you like it or not, search has evolved. It is going beyond just keywords, but what remains constant is intent. Learn how Drupal can be your strongest ally in building search-friendly, intent-driven websites with these 10 essential SEO tips for 2025.
Kategorien: Drupal News

Aten Design Group: Enhanced Bot Protection with Cloudflare

Mo, 09/29/2025 - 22:19
Enhanced Bot Protection with Cloudflare jenna Mon, 09/29/2025 - 14:19 Security Drupal WordPress

In today's digital landscape, bot attacks are becoming more sophisticated and more frequent. Website owners face an ongoing challenge in mitigating malicious traffic, preventing fraud, and ensuring smooth user experiences. While traditional methods like blocking individual IP addresses or using basic security modules may offer some level of protection, they often fall short in effectiveness and scalability. We often recommend Cloudflare to our clients: a comprehensive, cloud-based security solution that offers robust bot mitigation features -  even on its free plan.

Why Traditional Website Security Methods Fall ShortBlocking Individual IP Addresses is Ineffective

Many website administrators attempt to combat bots by manually blocking suspicious IPs. However, this approach has limitations:

  • Bots constantly change IP addresses (using proxies, VPNs, or botnets).
  • It’s labor-intensive to maintain an up-to-date blocklist.
  • There is a risk of blocking legitimate users due to shared IPs or false positives.
Basic Security Modules Lack Advanced Intelligence

Some website owners rely on security plugins or server-side modules like Fail2Ban. While these can help with basic rate-limiting and brute-force prevention, they lack:

  • Machine learning-based threat detection to distinguish between good and bad bots.
  • Global threat intelligence, as they operate in isolation rather than leveraging data from a vast network.
  • Real-time adaptability to evolving attack patterns. 
Why CMS-Based Solutions Are Not Enough

Whether your website is built on Drupal, WordPress, or another content management system, you’ve likely explored plugins or modules to help manage bot traffic. While these tools offer some protection, they come with significant limitations:

  • IP Blocking Modules/Plugins (e.g., Ban, Advanced Ban): Useful for blocking known threats, but largely ineffective against bots that rotate IPs, use proxies, or operate across global botnets.
  • robots.txt Modifications: While intended to guide search engine crawlers, these directives are often ignored by malicious bots entirely.
  • Security Plugins and Firewalls: Many CMS-level tools rely on local detection rules and lack the ability to identify evolving threats across the web. They often require ongoing manual configuration and don't provide adaptive protection.

Cloudflare complements these platforms by sitting outside the CMS, offering network-level defense at the edge—blocking malicious traffic before it reaches your application. With global threat intelligence and automatic updates, Cloudflare protects your site regardless of the CMS you're using.

How Cloudflare Provides Superior Protection Against Bots

Cloudflare outperforms traditional security methods in several ways. The best part? Many of its bot-fighting capabilities are available for free.

Global Threat Intelligence

Cloudflare protects millions of websites, analyzing traffic patterns to identify and block bots before they even reach your site. Unlike IP blocking, Cloudflare uses its vast network to detect and mitigate threats in real-time.

Bot Management with Free Tools and Scalable Upgrades

Many bot protection services charge hefty fees, but Cloudflare provides a free level of security that outperforms many paid solutions. As threats evolve, you can seamlessly upgrade to Cloudflare Pro, Business, or Enterprise for advanced bot detection and machine learning-based security. 

With Cloudflare’s free plan, you gain access to essential security features:

  • Bot Fight Mode: Automatically blocks bad bots while allowing legitimate traffic.
  • Rate Limiting Rules: Prevents bots from overwhelming your site with excessive requests.
  • JS Challenge & CAPTCHA: Forces suspicious traffic to prove they are human before accessing content.
  • Growing AI-driven bot activity: With the rise of AI tools and platforms, the volume of bots scraping websites to train their AI is increasing rapidly—making automated protection more important than ever.
Effortless Implementation

Switching to Cloudflare requires no complex configuration. It acts as a reverse proxy, filtering traffic before it reaches your server. Compared to constantly updating IP blocklists, Cloudflare provides automated, always-on protection.

Performance Boost Alongside Security

Unlike security modules that add server load, Cloudflare improves website speed while blocking bots:

  • CDN caching reduces bandwidth usage.
  • DDoS mitigation ensures uptime during traffic surges.
  • Smart routing enhances page load speeds for real users.
Client Use Case

Recently, an Aten client’s website became unresponsive due to an unexpected surge in traffic. After investigating the issue with the hosting provider, we realized we needed better visibility into the nature of the incoming requests. We decided to route DNS through Cloudflare, which explained that the majority of traffic was originating from a single country. 

Using Cloudflare’s challenge feature, we were able to verify that requests from that region were legitimate. Within just a few hours, Cloudflare had automatically blocked over 3.7 million malicious or suspicious requests, helping restore site stability and performance.

Conclusion: Cloudflare is Our Recommendation for Website Security

If you’re still relying on manual IP blocking or outdated security modules, you’re fighting an uphill battle against bot attacks. Cloudflare’s free security features provide a smarter, automated, and more effective way to combat bots while improving website performance.

Jon Bowman
Kategorien: Drupal News

Talking Drupal: Talking Drupal #522 - New Contrib Records System

Mo, 09/29/2025 - 20:00

Today we are talking about the New Contribution Records System, how it’s changed, and what you may need to do differently with guests Fran Garcia-Linares & Tim Lehnen. We’ll also cover Config Notify as our module of the week.

This episode is sponsored by Amazee.ai

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

Topics
  • Understanding the Contribution Record System
  • Recent Changes and Migration Challenges
  • Assigning and Displaying Contribution Credits
  • Future Enhancements and Broader Contributions
  • Collaborating on Commit Message Format
  • GitLab Migration and Contribution Records
  • Integration Challenges with GitLab
  • Testing and Feedback on New System
  • Future Plans and Community Involvement
  • API Endpoints and Data Querying
  • Gamification and Broader Adoption
Resources Guests

Fran Garcia-Linares - fjgarlin Tim Lehnen - drupal.org/association/staff hestenet

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan Martin Anderson-Clutz - mandclu.com mandclu Hayden Baillio - hgbaillio

MOTW Correspondent

Martin Anderson-Clutz - mandclu.com mandclu

  • Brief description:
    • Have you ever needed to maintain a site where a site owner had access to update site configuration, and wanted to be notified whenever they did so? There’s a module for that
  • Module name/project name:
  • Brief history
    • How old: created in Feb 2020 by Fran Garcia-Linares (fjgarlin), one of today’s guests
    • Versions available: 8.x-1.11, which supports Drupal 8.8 and newer
  • Maintainership
    • Actively maintained
    • Security coverage
  • Number of open issues: 2 open issues, neither of which are bugs
  • Usage stats:
    • 194 sites
  • Module features and usage
    • Just like it sounds, this module lets you trigger notifications when the configuration deviates from the config management code in production.
    • You can choose for the notifications to be sent immediately, or via cron, with an option for a daily digest. The notifications can be sent by email, or via Slack, using the slack module (if enabled).
    • This should be an easy-to-implement solution if you support a site where users may be updating the site configuration in production. A different approach was discussed back in episode #236 Top Down Configuration
Kategorien: Drupal News

The Accidental Coder: Unmanaged Files - Part 3

Mo, 09/29/2025 - 16:28
Part 3: Rendering an Unmanaged File in a Block

In Part 2, we built a service that can locate unmanaged files and return one at random. In this part, we’ll expose that functionality as a block plugin.

Kategorien: Drupal News

The Drop Times: Why Steady Effort Wins Out

Mo, 09/29/2025 - 15:42

Hello everyone,

There's a lot of talk in tech about "10x engineers", people who are believed to be ten times more productive than others. The idea goes back to a 1968 study that showed big differences between the fastest and slowest programmers. Over the years, the term has taken on new meanings: sometimes it refers to coding speed, sometimes to problem-solving skills, and more recently to how well someone can navigate complex systems. But in real teams, this idea often doesn't hold up the way people imagine.

In a recent LinkedIn Pulse article, Iztok Smolic shared his experience working with more than a hundred developers at Agiledrop. He explained that chasing so-called "rockstar" engineers can create problems, from delays to poor team culture. Brilliant individuals sometimes over-engineer solutions or disrupt team dynamics. In contrast, dependable contributors who write clean code and deliver on time often have a bigger positive impact over the long run.

This lesson applies well to open-source communities like Drupal. The platform grows through the steady contributions of many people, who code, review changes, fix bugs, and support one another. It's not about one star performer but about consistent, collective effort. That steady rhythm is what keeps Drupal strong and moving forward.

Recognition in Drupal can come in different forms. Agencies that make substantial contributions—whether financial or technical—naturally gain visibility across the ecosystem. Yet, the time, skills, and dedication of individual developers remain just as vital, ensuring that Drupal’s progress is never driven by resources alone but by the balance of community effort and shared commitment. With that in mind, let us focus on the stories we published last week. 

InterviewDiscover DrupalTutorialsEventOrganization 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,

Kazima Abbas,
Sub-editor, The DropTimes.

Kategorien: Drupal News

Drupal Association blog: Meet Baddý Sonja Breidert and her vision for sustaining community growth

Mo, 09/29/2025 - 11:10

We are thrilled to welcome back Baddý Sonja Breidert to the Drupal Association Board of Directors, with her new term beginning 1 November 2025. She is not only returning to the board but will also be serving as Chair for the coming term.

Baddý has been actively shaping the Drupal community for more than a decade. She co-founded 1xINTERNET in 2013 and has since become one of Europe’s leading voices in open source and digital business. She has served on the Drupal Association Board since 2017, including as Treasurer, then as Board Chair, and most recently in an advisory capacity as Immediate Past Chair.

Her contributions extend far beyond governance. Baddý has organised Drupal camps and major events such as Drupal Europe 2018 and DrupalCon Amsterdam 2019, co-founded the Drupal Business Deutschland Association, and represented Drupal at conferences across Europe, including the Web Summit in Lisbon. In 2020, she was honoured with the Aaron Winborn Award for her outstanding commitment to the Drupal community.

Her long-standing dedication to open source, community building, and supporting the Makers of Drupal has made her a trusted and respected leader in the project.

We are thrilled to have Baddý bring this perspective to the Board once again. Here are her reflections as she continues her journey with the Drupal Association:

What are you most excited about when it comes to joining the Drupal Association Board?
After completing my six-year term on the Board, as per the bylaws, I had the unique opportunity to continue my work with the executive team as past chair. Now, I am really excited to officially rejoin as a board member and chair. I am eager to build on the progress we have made and continue working with the Drupal Association staff and the Drupal community to push the Drupal project forward. This is a unique chance to keep that momentum going and ensure we are serving the community's needs effectively.

What do you hope to accomplish during your time on the board?
My main goal is to continue making the Drupal Association sustainable, not just financially, but in how we support our community. This means ensuring our programs and initiatives have a lasting impact. I also want to double down on our work with the Makers of Drupal, the developers, designers, company leaders, and organizers who are the heart of this project. By ensuring they have the resources and support they need, we can empower them to innovate and keep the Drupal project vibrant for years to come.

What specific skill or perspective do you contribute to the board?
My time on the Board since 2018 has given me a deep understanding of the Drupal Association's journey. I have seen our challenges, our victories, and how we have grown. This long-term perspective allows me to bring our history to the table. I can help us make sure we are building on what we have learned, not just repeating past conversations. It is about using that knowledge to stay focused and move forward effectively.

How has Drupal impacted your life or career?
Drupal has had a major impact on my career, opening doors and shaping my professional journey in ways I never could have imagined. But the most significant impact is not about technology or job titles; it is about the people. The Drupal community has taught me the power of collaboration and the incredible things that can be built when people from all over the world come together.

Tell us something that the Drupal community might not know about you.
I have two teenagers who know more about Drupal than many other teenagers in the world. When I am not spending time with them and my husband Christoph, I love playing golf. My goal this year is to play at least 52 rounds. I am halfway there, so I need to focus on playing more in the next few weeks.

Share a favorite quote or piece of advice that has inspired you.
"I have missed more than 9,000 shots in my career. I have lost almost 300 games. Twenty-six times I have been trusted to take the game-winning shot and missed. I have failed over and over and over again in my life. And that is why I succeed." — Michael Jordan

We look forward to the contributions Baddy will make during her time on the Drupal Association Board. Thank you, Baddy, for sharing your time and expertise with the Drupal community. You can connect with Baddy on LinkedIn.

About the Drupal Association Board of Directors

The Drupal Association Board of Directors comprises 13 members with nine nominated for staggered three-year terms, two elected by Drupal Association members, and one seat is reserved for the Drupal Project Founder, Dries Buytaert, while another is reserved for the immediate past chair (non-voting). Terms start on 1 November of each year.

The Board meets twice in person for weekend retreat and about 5 times virtually each year. The Board provides strategic guidance to the Drupal Association and oversight of the Association’s management, policy development, management, budget, and fundraising efforts.

Kategorien: Drupal News

The Drop Times: How Fons Vandamme Built Webhaven to Simplify Drupal Project Development

Mo, 09/29/2025 - 10:14
Fons Vandamme, a long-time Drupal developer and agency co-founder, created Webhaven—a pre-configured starter kit designed to simplify and speed up Drupal project development. In this interview, he shares why he built it, how it works, and what it means for developers, agencies, and the Drupal community.
Kategorien: Drupal News

#! code: Drupal 11: Using Storybook To Preview Single Directory Components

So, 09/28/2025 - 19:41

Single Directory Components (SDC) consist of a directory of files that go together to create a small component on a Drupal website. The component contains all the templates, styles, script, and images needed to display some content in a consistent way.

Different SDC can be nested together, which means that a site can be built up from different components working together to generate the content.

The power of SDC comes from their ability to be self contained. If you have the need to build a complex component that displays data in a widget then building it as a SDC means that you can ensure that it looks and functions in the same way every time you include it.

Storybook is a JavaScript application that provides a front end workshop for component development. This means that we can develop and preview our components before they are used on the stie. By using a module we can build components in our Drupal theme and then preview them in Storybook before every needing to inject them into the Drupal templates.

In this article we will look at creating a SDC in Drupal and then using Storybook to create and preview that component.

First, let's make a SDC that we can use as an example with this application.

Creating A Single Directory Component

To preview a SDC in Storybook we first need to create one, this will be used as an example thoughtout the rest of the article. It is assumed that you have a custom theme that you can build a SDC in.

Read more

Kategorien: Drupal News

Mario Hernandez: Code reviews using AI

So, 09/28/2025 - 02:00

Peer code reviews are a cornerstone of any successful web development team. I've always thought of peer code review as a way to learn from others. How many times while reviewing someone else's code have you thought to yourself: "I didn't know you could do that!", or, "That's a nice trick, I'll try it next time!".

Disclaimer: This blog post was inspired by a post by Lullabot about AI and code reviews. My take however, is different as I share my personal experience with these tools.

Why Use AI to Review Your Code?

Automating tasks to boost productivity and efficiency is nothing new in web development. We already rely on tools to lint, format, and test our code. AI-powered code reviews add another layer of scrutiny, helping improve code quality by catching issues that might slip through the cracks during manual review.

When working on personal projects as a solo developer, AI becomes an invaluable second set of eyes offering feedback I wouldn’t otherwise receive. For personal use, many AI tools offer a free tier plan that may lack the advanced bells and whistles, but provides a basic level of functionality that could still be helpful.

Should AI Replace Peer Code Reviews?

No. While AI can be incredibly helpful, it lacks the full context behind your code decisions. Sometimes, code needs to be written a certain way due to business logic, legacy constraints, or specific architecture choices. AI might flag these as issues, whereas a peer reviewer—familiar with the context—can validate the approach and focus in ensuring your code doesn’t introduce regressions.

Which AI Tool Is Best for Code Reviews?

Short answer: The one that works best for you.

Choosing an AI tool is like selecting a framework or plugin, it depends on your workflow, preferences, and project needs. The best approach is to try a few and see which one delivers the most value and best user experience. Recently I have tried GitHub Copilot, Google Gemini Code Assistant, and CodeRabbit.

In most cases, the decision of selecting one tool boils down to cost and your specific environment. The good thing is that these tools are relatively easy to integrate and test before deciding on the one you feel works the best for you.

Should You Trust AI to Make the Right Choices?

It’s wise to remain skeptical of any code changes or recommendations made by AI. But the beauty of code is that it either works or it doesn’t. Testing and validating AI-suggested changes against your standards is the best way to determine their effectiveness.

My Experience with AI Code Review Tools

I use GitHub Copilot within my IDE (VS Code), and it has been helpful at times when I needed a hand with code validation or bugs. I like it because is directly integrated with my editor and the feedback it provides is in context with the code as I write it.
I briefly tried CodeRabbit, but I don’t think I gave it a fair shot—planning to revisit it soon. The tool I’ve recently enjoyed using is Google Gemini Code Assistant (yes, it’s a mouthful).

The integration with my personal GitHub repo was straightforward—I was up and running in minutes. It reviews my code when I create a PR and provides a very detailed summary of the changes I'm introducing along with excellent recommendations for improvements or fixes.

A Real-World Example

I created a pull request with legacy Twig code that clearly needed improvement. Here's what the code does:

  1. It embeds images using a media component which provides a set of image dimensions options for editors to choose.
  2. Based on the user-selected option, a CSS class is passed through Drupal’s attributes (e.g., medium-landscape, small-portrait).
  3. Each CSS class is mapped to a Media view mode which in turn is configured with s specific image style.
    1 It provides a default view mode if no size is selected.
  4. Displays a validation message if no image is added to the component.

While the code was relatively simple, the AI helped me refactor it into something cleaner, more efficient, and easier to maintain. I'll use this technique again whenever I get the chance.

Original code{% if mid %} {% if 'small-portrait' in attributes.class %} {% set image %} {{ drupal_entity('media', mid, 'small_portrait') }} {% endset %} {% elseif 'small-rectangular' in attributes.class %} {% set image %} {{ drupal_entity('media', mid, 'small_rectangular') }} {% endset %} {% elseif 'small-rectangular-tall' in attributes.class %} {% set image %} {{ drupal_entity('media', mid, 'small_rectangular_tall') }} {% endset %} {% elseif 'small-square' in attributes.class %} {% set image %} {{ drupal_entity('media', mid, 'small_square') }} {% endset %} {% elseif 'medium-portrait' in attributes.class %} {% set image %} {{ drupal_entity('media', mid, 'medium_portrait') }} {% endset %} {% elseif 'medium-rectangular' in attributes.class %} {% set image %} {{ drupal_entity('media', mid, 'medium_rectangular') }} {% endset %} {% elseif 'medium-rectangular-tall' in attributes.class %} {% set image %} {{ drupal_entity('media', mid, 'medium_rectangular_tall') }} {% endset %} {% elseif 'medium-rectangular-wide' in attributes.class %} {% set image %} {{ drupal_entity('media', mid, 'medium_rectangular_wide') }} {% endset %} {% elseif 'medium-square' in attributes.class %} {% set image %} {{ drupal_entity('media', mid, 'medium_square') }} {% endset %} {% elseif 'large-rectangular' in attributes.class %} {% set image %} {{ drupal_entity('media', mid, 'large_rectangular') }} {% endset %} {% elseif 'large-rectangular-tall' in attributes.class %} {% set image %} {{ drupal_entity('media', mid, 'large_rectangular_tall') }} {% endset %} {% elseif 'large-rectangular-wide' in attributes.class %} {% set image %} {{ drupal_entity('media', mid, 'large_rectangular_wide') }} {% endset %} {% elseif 'large-square' in attributes.class %} {% set image %} {{ drupal_entity('media', mid, 'large_square') }} {% endset %} {% else %} {% set image %} {{ drupal_entity('media', mid, 'large_rectangular') }} {% endset %} {% endif %} <figure class="image-embed{{- attributes ? ' ' ~ attributes.class -}}" {{- attributes ? attributes|without(class) -}}> {{ image }} </figure> {% else %} <div class="image-embed{{- attributes ? ' ' ~ attributes.class -}}" {{- attributes ? attributes|without(class) -}}> <span>No media exists, please update or delete this component.</span> </div> {% endif %}

After creating a PR which included the code above, Gemini Code Assistant recommended an update to the logic by using a cleaner and concised approach. Take a look:

Final code{# A twig map to centralize the mapping of view_modes based on CSS classes. #} {% set view_mode_map = { 'small-landscape': 'small_landscape', 'small-landscape-wide': 'small_landscape_wide', 'small-portrait': 'small_portrait', 'small-square': 'small_square', 'medium-landscape': 'medium_landscape', 'medium-landscape-wide': 'medium_landscape_wide', 'medium-portrait': 'medium_portrait', 'medium-square': 'medium_square', 'large-landscape': 'large_landscape', 'large-landscape-wide': 'large_landscape_wide', 'large-portrait': 'large_portrait', 'large-square': 'large_square' } %} {% set view_mode = 'medium_landscape' %} {# Default view mode #} {% for class, mode in view_mode_map %} {% if class in attributes.class %} {% set view_mode = mode %} {% endif %} {% endfor %} {# Using the twig_tweak module to set the media entity as the value of `image`. #} {% set image = drupal_entity('media', mid, view_mode) %} {% if image %} <figure class="image-embed{{ attributes ? ' ' ~ attributes.class }}" {{ attributes ? attributes|without('class') }}> {{ image }} </figure> {% else %} <div class="image-embed{{ attributes ? ' ' ~ attributes.class }}" {{ attributes ? attributes|without('class') }}> <div class="image-embed__empty"> <span>No media exists, please update or delete this component.</span> </div> </div> {% endif %}

Again, the code is pretty trivial and this is not a ground-breaking situation, but the potential for improving my code using a system like this is definitely a bonus even when working alone in a projects.

In closing

It's an exciting time in web development and although there is a lot of uncertainty about AI, there are areas that are relatively safe to experiment with while still being cautious for unexpected results. Happy Coding!

Kategorien: Drupal News