Posted on
Drupal CMS is packed with surprises. This post will cover a few of those as part of a series of posts on the new release of Drupal that is drastically changing the way we use Drupal to create websites.
I can't remember when I started using Drupal. I know I created an account on Drupal.org in September of 2005, so I had to have at least installed it and played around a bit at that time. Fun fact that first account was mobilehippie, all my contributions since 2009 are under the username joshuami.
Around 2007 or 2008, I launched the first website that I can say I completed using Drupal—long enough to have forgotten precisely which site (maybe Hitachi?). That first site started as Drupal 5, but as Drupal 6 was released in February 2008, I'm pretty sure it launched on D6.
Over the years, I installed so... many... modules.
Despite having tried so many modules to meet a wide range of project needs, I occasionally get surprised on Talking Drupal when they cover a module of the week. What I didn't expect was to be surprised by modules included in Drupal CMS.
Some of these should not have been a surprise. How did I not know about Simple Add More or Token OR?!
AI (and Friends)
I have been a little skeptical of AI needing to be in every new software release. Yes, AI has a place, but it feels gimmicky in so many applications. When I first heard that Drupal CMS would have AI, I was skeptical. When I saw the demos of AI in Drupal CMS as part of DrupalCon Barcelona, I was intrigued. Now that I see everything that is possible with the 21 modules of AI included in Drupal CMS, I'm excited. (It might be more accurate to say 5 modules with a suite of submodules.)
Drupal CMS ships with two AI providers, Anthropic and OpenAI, and their library of models. Configuration of an AI provider is straightforward and relatively quick to get up and running.
With tools like the AI CKEditor Integration, editors will be able to prompt their way through content creation, which could allow writing that meets particular tone or verbosity requirements. Think of it as spelling and grammar checks combined with content generation.
Similarly, on demand image alternative text creation could lead to more accessible content. (Dries has even suggested these models can do a better job than a human in some cases.)
As someone that has worked on quite a few websites that needed enterprise-grade translation, AI Translate could be an interesting alternative to translation APIs that allows for on demand and bulk translation with the added capability of an AI agent to set tone per language and region as well as a more dynamic approach to translation libraries to improve translation quality.
Similarly, AI Search could be an alternative to search solutions like Solr, Elastisearch, and Angolia with possible improvements to natural language search.
The AI Chatbot demos are impressive. The idea that a site builder could prompt their way to complex content models is compelling. "Give me a book content type with fields for ISBN and year published." That could save on a huge amount of typing.
Automation could also lead to interesting new content workflows. What if you could set up a workflow that automatically reviewed content with an AI agent at the point it reached a particular moderation state? With ECA (see below) and AI, that's possible.
ECA (and Friends)
ECA stands for event condition action. It is powerful.
One way to think of ECA is as a drop in replacement for Rules that has a more robust visual modeler to allow you to see the rules you are creating more easily.
While ECA had been on my list to try since DrupalCon Portland when I saw a convincing demo of its capability, seeing the example models included in Drupal CMS prodded me to create my own.
I've since created a model to notify assigned reviewers by email when changes occur to content as well as a rule to assign group memberships (using the Group module) based on user profile data.

The possibilities are endless and every model created tends to be one less module needed. No need for Quick Node Clone when you can just write an ECA model for it.
Simple Add More
I feel like I should have know about about Simple Add More. It's been around three years now!
Drupal's field system allows you to set the cardinality to restrict the number of items that can be added to a particular field. So if you have a reviewer field (entity referenced users), and you want to restrict it to no more than three reviewers, the resulting field will show three inputs. Simple Add More simplifies that form display to only show one input with an "add more" button and help text that explains the limit.
The resulting form display is so much cleaner. This user experience improvement is close to making its way into core, but until it does, this module is a must.
Easy Email, Symfony Mailer Lite, and Mail System

The name Easy Email is misleading. Nothing is easy about settings up email on a new Drupal site. (Though props to Wayne Eaker for his excellent documentation and demos.)
To get email working on a typical site, you have configure Mail System to use a library like Symfony Mailer Lite or SMTP Authentication Support to send email that gets formatted by something like Easy Email or Mime Mail.
Trust me when I say that configuring all of that is seldom "easy".
That said, I think the fact that Easy Email is included in Drupal CMS is going to lead to it being a more commonly used solution. As more people use it, this flexible interface is likely to get the user experience attention that will improve configuring these complex systems.
Update: Wayne mentioned in Slack that the easiest way to get up and running with Easy Email on an existing site is to use the easy_email_express
recipe. When applied, you'll have all the settings you need to send the email using the PHP native sendmail binary. You'll still need to adjust some PHP settings, but for testing email it is a good way to get up and running. (I could do an entire post on making sure you set up email for successful delivery, which is a bit more complex as it involves configuring your mail server with proper SPF (Sender Policy Framework) and DKIM (DomainKeys Identified Mail) settings.
Token OR
Token OR is never going to be read correctly by a screen reader. The capitalized "OR" is referencing the way this simple module allows you to include alternate tokens in a this "or" that pattern.
So if I wanted to have a metatag description that used a field_seo_description
if it exists but otherwise falls back to field_description
, it would look something like this:
[node:field_seo_description|node:field_description]
That little pipe (|
) is standing in for "or" in this case.
Trash
Operating systems have long used the idea of trash cans (or recycling bins) as a way of representing data that has been removed but not yet deleted. Trash let's editors "throw away" content that is no longer needed, but saves it in a state that allows it to be recovered if it was thrown away be default.
Simple Search Form
Simple Search Form is another module that I'm suprised I have not run across. Typically, I either expose the search form for a view or write a custom search form into a block. This module gives you a block with a search input and button that can point to any search view. So even if your search view has multiple filters, you search block that is part of your navigation bar can be simple and straightforward.
Klaro Cookie & Consent Management
Klaro Cookie & Consent Management provides a user interface for expressing privacy preferences. Consent management is a must have for websites that fall under the GDPR. I found it interesting that this particular module has a supporting product behind it's development, Klaro. It's unfortunate that the name of the company is phonetically the same as the default admin theme in Drupal, Claro.
Themes: Gin and Drupal CMS Olivero

Technically, I have installed Gin before, but until it was part of the Drupal CMS release, I never felt comfortable using it on a customer project. I'm a fan of most of the visual enhancements it adds over and above Claro, the default admin theme that is part of Drupal core. (I'm writing this with dark mode and some choice color accents. How fun!)
I've run into a couple of issues with Gin and common modules like Environment Indicator, but overall, it works pretty much as Claro does but with just a tad more polish. I'm a little curious whether Gin could ever replace Claro in core.
Drupal CMS Olivero is basically a subtheme for the core Olivero module that provides some compatibility fixes to allow the content types and the associated fields and views to look more polished. I don't see many sites launching with Drupal CMS Olivero (or Olivero for that matter). My blog was on it for about two months before I wanted to theme it to be something that looked a little less like Drupal CMS out of the box.
Last month, I wrote a few thoughts about how I felt the biggest things missing for Drupal CMS are the new Experience Builder capabilities and a more flexible starting theme with components for Experience Builder.
More than surprises
While some of these modules I had not used before were a surprise—mostly pleasant—I also noticed a lot of best practices in Drupal CMS that should help consolidate approaches across the Drupal developer community. I'll cover Drupal CMS Modules We Know and Love tomorrow.
Do you have a project or team that needs some expert help? Do you just want to chat about Drupal CMS and what it might mean to your organization? Connect with me on LinkedIn or reach out to me on Drupal Slack (@joshuami).