It’s not easy to create a list of the most useful Drupal 8 modules because it really depends on the site you will create or manage. But there are some really helpful modules that you can use in almost all cases.
In this post, I will share a list of modules that I use on almost all my Drupal 8 projects. They aren’t specifically for a particular type of site, but I find that they are always helpful, both in development and production environments.
1. Admin Toolbar
(D8) - https://www.drupal.org/project/admin_toolbar
The Admin Toolbar module will save you a great deal of time. It provides a drop-down menu that extends Drupal built in menu. It allows you to perform various admin actions faster and easier.
The module works on the top of the default toolbar core module. It’s a very light module and keeps all the toolbar functionalities (shortcut / media responsive).
The module also provides a submodule called "Admin Toolbar Extra Tools," which adds extra links similar to Admin Menu module for Drupal 7 (flush caches, run cron, etc...).
2. Module Filter
(D7/D8) - https://www.drupal.org/project/module_filter
The modules list page can become quite long and unwieldy as your site grows. To simplify your module administration, you can install the Module Filter module, which, as shown above, provides you a separate tab for each module / module package. This gives you two different ways (with the default filter textfield/by package) to quickly find and re-configure your modules.
(D7/D8) - https://www.drupal.org/project/shield
This module helps you protect your development or staging site with HTTP authentication. Anonymous visitors and search engines won’t be able to reach your test environment, but you and your site users will.
4. Content Lock
(D7/D8) - https://www.drupal.org/project/content_lock
This module prevents users from editing the same node. If another user is trying to edit the same node, he or she will be notified that the content is currently being edited.
The other great feature of this module is that it prevents users from leaving an edit form page without first saving it. They will be notified when attempting to close the browser window/tab, clicking on a link, etc. If the user confirms that he wants to leave without saving the node, the edit lock is automatically removed.
5. Environment Indicator
(D7/D8) - https://www.drupal.org/project/environment_indicator
This module will help you stay sane while working in your different environments by adding a configurable color bar to each.
The Environment Indicator module adds a colored bar on the site that informs you which environment you're currently in (Development, Staging, Production, etc.). This is incredibly useful if you have multiple environments for each of your sites and are prone to forgetting which version of the site you are currently looking at.
(D7/D8) - https://www.drupal.org/project/recaptcha
reCaptcha is a module built on top of the captcha module that implements the Google Captcha service to protect your site from spam. This web service shows a checkbox “I’m not a robot” at the bottom of your form. The service presents a challenge to the user where the user has to choose a particular set of images related to a subject.
Another option for protecting your site from spam is the Honeypot module.
7. Block Class
(D7/D8) - https://www.drupal.org/project/block_class
This module allows users to add CSS classes to any block through the block configuration interface instead of to our twig templates. We just need to add our new classes to our CSS file.
8. Configuration Split
(D8) - https://www.drupal.org/project/config_split
This module filters the import/export of the configuration. It allows you to define sets of configurations that will get exported to separate directories when exporting from different environments. For example, you may need to have the devel module enabled or have a few blocks or views placed a certain way in the development environment, but not want that configuration to be exported to production. Using configuration split, you can specify both and thus easily share the development configuration with colleagues.
This module is also really useful with a multi-site installation.
(D7/D8) - https://www.drupal.org/project/roleassign
This module allows you, as a site administrator, to delegate the assignment of roles to another user without giving him or her the “Administer permissions” permission.
The module creates a new permission called “Assign roles”. Users with this permission are able to assign selected roles to other users. On the other hand, users with the “Administer permissions” permission may select which roles are available for assignment through this module.
For larger sites with multiple levels of administrators or whenever you need finer-grained control over which role can assign which other roles, check out Role Delegation.
10. Delete all
(D7/D8) - https://www.drupal.org/project/delete_all
This is the module that I always install on my local or dev environment in conjunction with the Devel Generate module. It allows you to delete all content and/or users from a site with just one click.
This was particularly handy on a test site that one of my clients was using for a period of time when we needed to clean it up before starting with real data or when I tested imports and migrations of thousands of nodes. Really helpful!
Usage statistics of these modules.
The table below provides the usage statistics for these modules across all versions.
Which Drupal 8 modules do you consider helpful?
I would love to hear about your “must install” Drupal 8 modules that are most helpful for your projects. Please leave a comment and share it with the community!