Drupal Development Guide 2026: Modules, Themes, and Configuration

Learn where to place modules, start Starterkit themes, build components, sync config, and apply recipes in Drupal 11.

Drupal development in 2026 rests on modules for features, themes for appearance, and configuration for settings. Drupal, an open-source system for building websites, manages all three through files and Composer packages. This guide shows where each piece lives and how teams move it between sites. It focuses on practical choices for new projects.

Table of Contents

Where do modules belong?

Modules add features such as contact forms, search tools, or payment integrations. According to Drupal.org's module configuration guide, contributed modules belong in modules/contrib and custom modules belong in modules/custom for clean updates.

Composer, the PHP tool that installs code libraries, manages both folders like other packages. Separate folders keep updates safe. A direct edit inside community code can be lost during the next update.

  • Keep community downloads in modules/contrib
  • Keep project-specific code in modules/custom
  • Update community code with Composer rather than manual edits

Which themes should you use now?

A theme controls site appearance through templates, styles, and scripts. Every theme needs only a THEME.info.yml file that names the theme and its assets.

Core themes Olivero and Claro live in core/themes, while contributed themes belong in themes/contrib for Composer updates. Olivero handles public pages and Claro handles administration screens. Use Olivero for visitor design checks and Claro for editor workflow checks.

How do you start a custom theme?

New custom themes should start with the Starterkit generator. According to Drupal.org's core themes guide, teams should run php core/scripts/drupal generate-theme since Drupal 10.0. The tool copies a decoupled snapshot instead of creating a dependent subtheme, which is a theme that inherits from another theme.

Single-Directory Components group one part of a page into one folder. Each component lives under a theme or module components folder and uses a my-component.component.yml file for metadata, with markup, CSS, and JavaScript beside it. The approach became part of the core render system in Drupal 10.3.

How do you move configuration between sites?

Configuration means site settings such as enabled modules, content types, fields, roles, views, and text formats. Drupal stores these settings as plain-text YAML files, a readable file format for structured data.

Teams can export and import all settings or only selected settings through Manage > Configuration > Development > Configuration synchronization or through Drush, the Drupal command-line tool. A module can ship default settings as YAML files that load on install. Developers must remove the UUID, the unique identifier, from exported files before shipping so each site creates its own identifiers.

When should you use a recipe?

A recipe sets up function and content in one step. According to Drupal.org's recipes documentation, a recipe is a directory with recipe.yml plus optional config, content, and composer.json. It installs modules and themes, creates or changes configuration, and creates content once on an already-installed Composer-based site.

According to Drupal.org's deprecated and obsolete themes list, Olivero is deprecated in Drupal 11.5.0 and removed from Drupal 12.0.0. Drupal 10 ends on 2026-12-09, with Drupal 12.0.0 planned for the week of 2026-12-07. Teams starting new work in 2026 should target Drupal 11 and avoid Bartik, Seven, Classy, or Stable bases.


You Might Also Like