Build
Modules, themes and distributions

Drupal projects

There are galaxies of Drupal projects, here is a short list of stable modules an themes that can apply to common use cases + a few distributions. Most modules can interact together.

More projects can be discovered via the Project Browser (opens in a new tab) initiative.

Modules

Modules are providing most of the time a single feature. They can work on their own or collaborate with other modules.

Developer Experience

NameDescription
Devel (opens in a new tab)Enhances most development tasks, exposes them as Drush commands and improves var dumping with libraries like Kint.
Module Builder (opens in a new tab)Generates a skeleton or "scaffolding" for a module, along with hints on how to fill them in. Useful for newbie developers to learn how Drupal code works, and seasoned developers who are too lazy to look up what arguments a function has to take.
Stage File Proxy (opens in a new tab)Get production files on a development server on demand instead of rsyncing everything.
Web Profiler (opens in a new tab)Adds a toolbar at the bottom of every page and shows you all sorts of stats such as the amount of database queries loaded on the page, which services are used and much more.
Backup and Migrate (opens in a new tab)Backup and restore your Drupal site.
Masquerade (opens in a new tab)Allows site administrators (or anyone with enough permissions) to switch users and surf the site as that user (no password required).
Config Pages (opens in a new tab)You don't need to code anymore to get settings forms for your module or any other custom configuration.
Config Ignore (opens in a new tab)Ignore certain configuration items from being imported. Typically when config should be regarded as content and not part of the repo. Example usage: exclude configuration translation or Webforms. You might also consider the Configuration Split (opens in a new tab) module.
Examples for developers (opens in a new tab)Examples for Block, Cache, Config and Content Entity, Cron, Database API, Email, Events, Form API, Field, Field Permission, File, Hooks, Javascript, Node Type, Page, Pager, PHPUnit, Plugin Type, Queue, Simple Test, Stream Wrapper, Table Sort, Testing, Tour.
Reroute Email (opens in a new tab)Intercepts all outgoing emails from a Drupal site and reroutes them to a predefined configurable email address.
Event Condition Action (opens in a new tab)Create rules that are triggered by events. Some excellent video tutorials (opens in a new tab) from the maintainers.

Editorial Experience

Editorial solutions

Layout

NameDescription
Layout Builder (opens in a new tab) (core)Allows content editors and site builders to easily and quickly create visual layouts for content display
Paragraphs (opens in a new tab)Instead of putting all their content in one WYSIWYG body field including images and videos, end-users can now choose on-the-fly between pre-defined Paragraph Types independent from one another
Gutenberg (opens in a new tab)Brings the powerful admin features of Gutenberg Editor
Storage (opens in a new tab)Lightweight, fieldable, revisionable and translatable content entity type to manage data that does not logically fit into the concept of a node, paragraph or media entity

Gutenberg and Layout Builder are gaining growing support in the community

Workflows / Content Moderation (core)

The Content Moderation (opens in a new tab) module allows you to expand on Drupal's "unpublished" and "published" states for content. It allows you to have a published version that is live, but have a separate working copy that is undergoing review before it is published. This is achieved by using Workflows to apply different states and transitions to entities as needed.

UI improvement

NameDescription
Admin Toolbar (opens in a new tab)Dropdown menu to most administrative tasks and other common destinations.
Linkit (opens in a new tab)Eeasier interface for internal and external linking with wysiwyg editors by using an autocomplete field.
Field Group (opens in a new tab)All fieldable entities will have the possibility to add groups to wrap their fields together. Fieldgroup comes with default HTML wrappers like vertical tabs, horizontal tabs, accordions, fieldsets or div wrappers.

Images

NameDescription
Image Widget Crop (opens in a new tab)Crop your image directly when you edit your content.
Focal Point (opens in a new tab)Set a focal point on an image and generate derivatives with the focal point as the center of the image.
Responsive Image (opens in a new tab)Image styles depending on the breakpoint.

Forms

NameDescription
Webform (opens in a new tab)Powerful form creation with many use cases.

Mail

SwiftMailer is deprecated but still used widely. If you are starting a new project, favor SymfonyMailer.

NameDescription
SymfonyMailer (opens in a new tab)HTML support, attachments, embedded images, transport configuration (for transactional email / custom SMTP) and much more.

Spam control

NameDescription
Antibot (opens in a new tab)Lightweight module designed to eliminate robotic form submissions on your website in an innovative-fashion
Honeypot (opens in a new tab)Uses both the honeypot and timestamp methods of deterring spam bots from completing forms
reCAPTCHA (opens in a new tab)reCaptcha integration
Spamspan (opens in a new tab)Obfuscates email addresses to help prevent spambots from collecting them

Search

NameDescription
Search API (opens in a new tab)Provides a framework for easily creating searches on any entity known to Drupal, using any kind of search engine
Search API Solr (opens in a new tab)This module provides a Apache Solr backend for the Search API module
Facets (opens in a new tab)Allows site builders to easily create and manage faceted search interfaces

SEO

NameDescription
Metatag (opens in a new tab)Automatically provide structured metadata, aka "meta tags", about a website
Pathauto (opens in a new tab)Automatically generates URL/path aliases for various kinds of content
Simple XML sitemap (opens in a new tab)Sitemaps generated by this module adhere to the new Google standard regarding multilingual content by creating hreflang sitemaps and image sitemaps

Translation

Drupal is fully multilingual out of the box, it just requires to enable a few modules and configure them. Then all that you need is to add languages.

Here are a few multilingual module that improves the translation experience.

NameDescription
Translation Management Tool (opens in a new tab)Provides a tool set for translating content from different sources. The translation can be done by people or translation services of all kinds. It builds on and uses existing language tools and data structures in Drupal and can be used in automated workflow scenarios
TMGMT DeepL Integration (opens in a new tab)Integrates the DeepL API with the Translation Management Tools (TMGMT) module

Web services and decoupling

NameDescription
JSON:API (core)Exposes entities and other resources with the JSON:API standard.
GraphQL (opens in a new tab)Exposes entities and other resources as GraphQL data.
RESTful Web Services (core)Exposes entities and other resources as JSON data.

Security

NameDescription
Role Delegation (opens in a new tab)Allows site administrators to grant specific roles the authority to assign selected roles to users, without them needing the administer permissions permission. See also the Role Assign (opens in a new tab) module that might be more suitable for smaller sites.
Security Review (opens in a new tab)Performs a set of tests to verify the site's security and provides a report with recommendations and security measures
Site Audit (opens in a new tab)Static site analysis that generates reports with actionable best practice recommendations
Password Policy (opens in a new tab)Allows administrators to force users to change their password on a regular basis and define criteria for strong passwords
Security Kit (opens in a new tab)SecKit provides Drupal with various security-hardening options. This lets your mitigate the risks of exploitation of different web application vulnerabilities
Content Security Policy (opens in a new tab)Allows administrators to set a Content-Security-Policy header to control resources the browser is allowed to load for a website
Hacked! (opens in a new tab)Scans the currently installed Drupal, contributed modules and themes, reports status and provides directions on how to correct any found issues

Analytics

NameDescription
Matomo Analytics (opens in a new tab)Integrates the Matomo web analytics system
Google Tag (opens in a new tab)Add Google Analytics and Tag Manager

Themes

Themes allow you to change the look and feel of the frontend or the backend and can be used as is or via inheritance.

Frontend

Olivero (core) is the default frontend theme for Drupal. It is a modern theme with a focus on accessibility and usability.

Backend

Claro (core) is the default backend theme. It can be extended by the Gin Admin Theme (opens in a new tab).

Gin Admin Theme

A radically new UI layout paired with goodies like a Darkmode will give your Drupal's Admin interface a facelift. The Gin theme also includes things which are currently out of scope for Claro and/or some customisations we're experimenting with for the future. Built on the foundation of Claro from one of the lead designers of Claro & Drupal Design System.

Search Drupal Themes (opens in a new tab)

Distributions

Distributions are a well tested assembly of projects (modules, themes) dedicated to a specialized use case. Here is a short list of various use cases.

NameDescription
Thunder (opens in a new tab)Distribution for professional publishing.
Varbase (opens in a new tab)Comes with more than 100 features and enhancements to Drupal core
Open Social (opens in a new tab)Community Engagement Platform
Commerce (opens in a new tab)eCommerce framework