drupal 9 modules build

9 Must-Have Modules to Build Your Drupal 9 Site

This blog was originally published on mikemadison.net in July 2020 and has been repurposed here with permission. 

Open source software thrives (or dies) on the community that is backing it, and Drupal is no different. The contributed (contrib, if you’re in on the Drupal lingo) of Drupal functionality far out distances the out of the box functionality in Drupal core. There are thousands and thousands of modules to choose from and while each project has different requirements and needs, there are a few modules I use on every project.

As an architect and technical lead at Acquia, I build Drupal applications of all sizes and complexities for customers that range from government organizations to multinational corporations to conferences and events. Still, all these Drupal platforms have basic content management needs despite their varied audiences and stakeholders. This is my list of 9 modules from 2020 that I am using on every project build! If you’re embarking on your own Drupal 9 project soon, these modules will help you get off to a great start. 

1. Config Split

I firmly believe that every Drupal build requires some degree of conditional configuration, even if that’s only to provide needed variation between local and production environments. Config Split is a critical component of every project I build, and I strongly recommend that you incorporate it into your process if you haven’t already.

2. Admin Toolbar

Yes, Drupal ships with a stock Toolbar. No, it’s not particularly user friendly. The Admin Toolbar (and its bundled Admin Toolbar Extras) module significantly enhances the administrative user experience. 

Pasted_Image_2020-06-18__11_18_PM.jpg

 

This module automatically renders the multilevel admin menu as a drop-down menu. It’s not fancy, but it’s highly effective.

3. Diff

Drupal’s core content moderation workflow and revision tools work great. However, when you create a new draft there isn’t a great way to see what has changed. The Diff module provides a much improved interface for revisions that shows you what was changed.

Screen Shot 2014-08-26 at 3.42.50 PM.png

4. Environment Indictor

Environment Indicator makes working with local / dev / stage / prod environments much more user friendly. When coupled with config split and admin toolbar, this module can automatically display which environment you are currently working in. This works as a great, friendly reminder that THIS IS PROD or (this is local) to help your administrative users take appropriate action based on the environment they are in.

I usually commit the config for environment indicator such that my environments all have different colors as well as names. Note, you will need something to identify the environment to enable your config splits (e.g. Acquia’s Environment Detector that ships with BLT).

2015-12-10 08-05-44.png

5. Field Group

Unlike Paragraphs or Field Collection, Field Group doesn’t muck about with your data model. But it does allow you to easily group like fields on forms for content creators. Again, this is a small enhancement in the grand scheme of things, but it makes the content creator’s user experience much improved!

fieldgroup_03.png

6. Pathauto

Not to be confused with the Path module which ships with Drupal core, Pathauto allows you to define patterns for your content as you create it. For instance, if you have a blog content type, Path can create a clean URL for you that is just your “title” of the node. Pathauto allows you to define /blog in the clean URL automatically because of the content type. 

path_auto_0.png

7. Redirect

The redirect module provides some impressive functionality when handling redirects in Drupal such as automatically creating a redirect for any content whose path gets updated. While this tool shouldn’t be used for every redirect, there are some guidelines you can follow. A general rule: If Drupal controls the content, use the redirect module.If you’re redirecting elsewhere, then start looking at .htaccess, CDN or other methodologies.

8. Shield 

Development and staging environments are important tools to be used in the development process. However, the last thing you (or your customer) want is to accidentally reveal something in a lower environment before it’s ready for prime time. Enter shield. Shield allows you to do a basic browser auth challenge before the browser can load the site.

There are many other more robust options for security (and if you need a “real” secure solution, please explore them). But if you need a simple challenge to keep unwanted traffic out of an environment, Shield is your module!

Screen shot 2012-04-23 at 5.05.33 PM_0.png

9. Seckit

Last but not least is Seckit. This module allows you to modify certain HTTP headers on your website to better enhance the security. Again, can you do this in other ways? Yes. Seckit just makes it so darn easy and convenient..

In conclusion, all of these Drupal 9 modules do relatively simple things. They also have a common thread, which is they take existing core functionality (like config, paths, toolbars, etc.) and enhance that functionality for a smoother user experience.

The best news? All of these modules are compatible with Drupal 9, so you can start using them right now (on either D8 or D9). 

Mike Madison

Mike Madison

Manager, Technical Services Acquia

Mike Madison is a Seattle-based Drupal Architect with over fifteen years of experience using open source technologies like Drupal, Wordpress, and Mediawiki to benefit organizations of all shapes and sizes. Mike is a manager on Acquia’s Professional Services team where he helps enterprise, government, and higher education customers to implement Drupal (and other technologies). Aside from his work at Acquia, Mike blogs about web and Drupal related materials, contributes to Drupal4Gov as the tech lead for the Drupal GovCon conference, and is a former maintainer of Acquia's Build and Launch Tools (BLT).