Useful Drupal modules

Click on the module name for notes, comments, patches.
Recommendations (for and against) are my personal opinion only and may be out of date. Feel free to email with corrections/suggestions.

Why doesn't the table mention Drupal 9 or 10?

1. Nowadays, I try and use Drupal as little as possible. Specifically I do not recommend it for a new website. I'd also strongly caution you against choosing Drupal if you're at the beginning of your career and trying to learn web development (front / back / full stack) or just want to manage/maintain a website. More details why by email on request.

2. By February 2022 I'd updated all the sites I look after to Drupal 9 (experience: mixed). As of March 2023, a year later, none of them were fully ready for Drupal 10 (waiting on support for various modules). By 13 Nov 2023 (a week or two after D9 lost support) I had updated a couple of them.

Q: What's the Drupal 9 to 10 upgrade experience like? A: it's what I'd describe as "just bearable", slightly better than D8 to D9, though with plenty of things to still trip you up. There is still deprecated code that needs fixing in D10 modules, and policy changes mean odd things will break (be prepared to turn off Aggregate CSS/JS files if your themes stop working, and note that Drush launcher doesn't work with Drush 12...)

Admittedly the upgrade_status module is the best solution they could have come up with for tracking compatibility. Also watch out for a nasty session headers bug with redirect_after_login.

What about sites still running Drupal 7? In short I still recommend leaving them on Drupal 7 or moving to another platform entirely. My prediction was that Drupal will extend D7 support year after year (note that drupal.org itself is still running D7). It's now been confirmed as 5 Jan 2025. There will have to be some sort of third-party long term support, because of the sheer volume of sites that are not being upgraded.

Your decision is really what specifically you think you will gain from Drupal 8/9/10 - often the answer will be not enough, and one of the main hassles - apart from converting each content type one at a time, and setting up a new theme, will be recreating all your views by hand, as views can't be automatically upgraded.

(134 modules in list)
Module name, text of notes
Name Notes last updated Sort ascending Avoid (imo) "Essential" D8 Personally Tested
Required by role
Views PHP
Google Authenticator login
Custom Add Another
Double Field
Node access user reference
Role Watchdog
Redirect after login
AudioField
Conditional Fields
Views Aggregator Plus
Metatag
Rules
Views Contextual Filters OR
Responsive and off-canvas menu
Twig Tweak
Node Page Disable
Username policy
Upgrade Status (for Drupal 9)
Coffee
Table trash
Resave nodes
Devel
Honeypot
Rabbit hole
Twig Extensions
reCAPTCHA
Webform
Menu position
Twig VarDumper
Field group
Ngrok for drupal
Save edit
CSS Editor
Login email or username
Content access
Toolbar menu
Add another
Views infinite scroll
Views taxonomy term name into ID
Administration Views
Spambot
User restrictions
Captcha
Mydropwizard
Automatic User Names
Comment Notify
Configuration Read-only
CKEditor Custom Config
CKEditor Wordcount
Webform Views Integration
Layout builder
Password policy
Environment Indicator
Computed Field
Raven
Address
AJAX Comments
Serial Field
View Migration
Simple OAuth
Mollom - DEPRECATED
Paragraphs
Pathologic
Field Tools
Trash
Entity Access Audit
Contact Storage
Nagios
Entity Embed
Views exposed form layout
Menu Token
Field Formatter Condition
Feeds
Snippet Manager
Refreshless
Real Name
Field Permissions
Coder
Permissions Filter
Allowed Formats
Role Delegation
Config Ignore
Node Export
SMTP Authentication Support
ClamAV
Automatic Entity Label
Better Exposed Filters
Masquerade
D8 Editor Advanced link
Datetime Range
Structure Sync
SEO Checklist
String Overrides
Memcache API and Integration
CKEditorHeight
@font-your-face
General Data Protection Regulation
Views Secondary Row
Bamboo Twig
Configuration Override Warn
Configuration Update Manager
Features
Two Factor Authentication
Advanced Page Expiration
Warden
Flag
Image Lazyloader
Web Profiler
Module builder
Token
Redirect
TagCloud
Flood Control
Block Visibility Groups
Autosave
Autofocus
IMCE
Restrict Login or Role Access by IP Address
Unique field ajax
Prepopulate
Twig Xdebug
Telephone
Field collection
HMS Field
Automatic Nodetitles
Entityqueue
PDF Reader
Pathauto
AddToAny Share Buttons
Group
Flippy
Exclude Node Title
Alexa