---
url: 'https://dxpr.com/hc/documentation/learn-drupal/drupal-glossary/recipes'
title: 'Recipes | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-26T18:01:04+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: 'A Drupal recipe is a one-time set of setup instructions that adds a ready-made feature, such as an editor role or a media type, to a Drupal site.'
tags:
  - 'Drupal glossary'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-26T18:01:04+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      '@type': FAQPage
      mainEntity:
        -
          '@type': Question
          name: 'What is the difference between a recipe and a module?'
          acceptedAnswer:
            '@type': Answer
            text: '<p>A module adds code and stays installed. A recipe is a set of instructions that you apply once: it can install modules and themes, import configuration and create content, then it is done. The drupal.org guide says recipes are applied to a site, not installed or uninstalled like modules and themes.</p>'
        -
          '@type': Question
          name: 'How do I apply a Drupal recipe?'
          acceptedAnswer:
            '@type': Answer
            text: '<p>From the web root, run drush recipe ../recipes/name with Drush 13 or later, where the path points to the recipe folder. Drush lists the command as recipe:apply with the alias recipe.</p>'
        -
          '@type': Question
          name: 'Can I undo a recipe after applying it?'
          acceptedAnswer:
            '@type': Answer
            text: '<p>The drupal.org guide does not describe an undo. The apply command saves a configuration checkpoint first and restores it only when applying fails. Once a recipe has finished, restore your backup or revert the changes by hand.</p>'
    -
      '@type': TechArticle
      headline: Recipes
      description: 'A Drupal recipe is a one-time set of setup instructions that adds a ready-made feature, such as an editor role or a media type, to a Drupal site.'
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-26T18:01:04+0000'
      dateModified: '2026-10-26T18:01:04+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/hc/documentation/learn-drupal/drupal-glossary/recipes'
      articleSection: 'Drupal glossary'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/hc/documentation/learn-drupal/drupal-glossary/recipes'
      description: 'A Drupal recipe is a one-time set of setup instructions that adds a ready-made feature, such as an editor role or a media type, to a Drupal site.'
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Home
            item: 'https://dxpr.com/'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: en
---
[Help Center](/hc)/[Documentation](/hc/documentation) /[Learn Drupal](/hc/documentation/learn-drupal) /[Drupal glossary](/hc/documentation/learn-drupal/drupal-glossary) # Recipes

A Drupal recipe is a one-time set of setup instructions that adds a ready-made feature, such as an editor role or a media type, to a Drupal site.

 Learn DrupalDrupal glossary Last updated October 26, 2026

   ## In this guide

 Related terms

- [Drupal CMS](/hc/documentation/learn-drupal/drupal-glossary/drupal-cms)
- [Project Browser](/hc/documentation/learn-drupal/drupal-glossary/project-browser)
- [Distribution](/hc/documentation/learn-drupal/drupal-glossary/distribution)
- [Install profile](/hc/documentation/learn-drupal/drupal-glossary/install-profile)
- [Configuration](/hc/documentation/learn-drupal/drupal-glossary/configuration)
- [Composer](/hc/documentation/learn-drupal/drupal-glossary/composer)

 [All Drupal terms from A to Z](/hc/documentation/learn-drupal/drupal-glossary)

A recipe is a folder with a `recipe.yml` file that tells Drupal what to set up. Applying it installs modules and themes, imports configuration, runs configuration actions such as granting a permission, and can create default content. The same recipe gives the same result on every site that applies it.

## How recipes work in Drupal 11

The `Recipe` class in core validates the file. Only `name` is required. The other keys are `description`, `type`, `recipes`, `install`, `input`, `config`, `content` and `extra`. The `recipes` key lists other recipes that are applied first, which is how large recipes are assembled from small ones. Under `config`, `import` lists configuration to import, and `actions` runs config actions. Core ships recipes in `core/recipes`, among them `administrator_role`, `content_editor_role` and `standard`.

The apply command makes a configuration checkpoint before it starts, named "Backup before the 'recipe name' recipe", and rolls configuration back to it if a step throws an error. In the 11.4.10 code, `config.strict` defaults to true: if a configuration item already exists and differs from the recipe's version, applying stops with a "pre-existing config" exception.

To use a contributed recipe, add it with [Composer](/hc/documentation/learn-drupal/drupal-glossary/composer). Its package type is `drupal-recipe`. The drupal.org guide says to add `drupal/core-recipe-unpack` and an installer path so recipes land in a `recipes` folder, and that projects started on Drupal 11.2 or later already have this.

Drush 13 and later apply recipes with `recipe:apply` (alias `recipe`), which runs the recipe command that ships with core. The guide also names `php core/scripts/drupal recipe`; Drupal 11.4.0 deprecates that script in favor of `core/scripts/dr`, according to change record 3584928.

## Example

This small recipe lengthens the default summary of text fields. It follows the structure of the example recipe in core.

```yaml
name: 'Summary length'
        description: 'Sets a longer default summary for text fields.'
        type: 'Content'
        install:
          - node
          - text
        config:
          actions:
            text.settings:
              simpleConfigUpdate:
                default_summary_length: 700

```

Save it as `recipes/summary-length/recipe.yml`, change into the web root and run `drush recipe ../recipes/summary-length -v`. The `-v` option lists the modules, themes, content and recipes it added.

## Common mistakes

- **Testing on the live site.** One run can install modules, change configuration and create content. Apply the recipe on a copy of the site first.
- **Fighting the strict check.** If a recipe stops because your site already has different configuration under the same name, the cause is the strict comparison. Change your site or the recipe; do not expect an overwrite.
- **Expecting updates.** The Drupal CMS 2.0.0 release notes state that recipes have no update paths. A new version of a recipe does not change a site that already applied the old one.

## For marketing and content teams

When a developer says a feature "is a recipe", it is a bundle of settings that goes in once. [Drupal CMS](/hc/documentation/learn-drupal/drupal-glossary/drupal-cms) packages its site templates as recipes. The [Project Browser](/hc/documentation/learn-drupal/drupal-glossary/project-browser) can list the recipes already in the codebase next to modules. Before a recipe is applied, ask your developer for the list of modules it installs and the content it creates.

## Sources

- [Drupal.org: How to download and apply Drupal recipes](https://www.drupal.org/docs/extending-drupal/drupal-recipes/how-to-download-and-apply-drupal-recipes)
- [Drupal 11.4.10 source: Recipe class](https://git.drupalcode.org/project/drupal/-/blob/11.4.10/core/lib/Drupal/Core/Recipe/Recipe.php)
- [Drupal 11.4.10 source: RecipeCommand](https://git.drupalcode.org/project/drupal/-/blob/11.4.10/core/lib/Drupal/Core/Recipe/Command/RecipeCommand.php)
- [Drupal 11.4.10 source: ConfigConfigurator](https://git.drupalcode.org/project/drupal/-/blob/11.4.10/core/lib/Drupal/Core/Recipe/ConfigConfigurator.php)
- [Drupal 11.4.10 source: example recipe](https://git.drupalcode.org/project/drupal/-/blob/11.4.10/core/recipes/example/recipe.yml)
- [Drush recipe:apply command](https://www.drush.org/13.x/commands/recipe_apply/)
- [Change record: dr, a Drupal CLI capable of running commands from modules](https://www.drupal.org/node/3584928)
- [Drupal CMS 2.0.0 release notes](https://www.drupal.org/project/cms/releases/2.0.0)

## Questions about Recipes

### What is the difference between a recipe and a module?

A module adds code and stays installed. A recipe is a set of instructions that you apply once: it can install modules and themes, import configuration and create content, then it is done. The drupal.org guide says recipes are applied to a site, not installed or uninstalled like modules and themes.

### How do I apply a Drupal recipe?

From the web root, run `drush recipe ../recipes/name` with Drush 13 or later, where the path points to the recipe folder. Drush lists the command as `recipe:apply` with the alias `recipe`.

### Can I undo a recipe after applying it?

The drupal.org guide does not describe an undo. The apply command saves a configuration checkpoint first and restores it only when applying fails. Once a recipe has finished, restore your backup or revert the changes by hand.

 ## Cite this definition

"Recipes." DXPR Drupal glossary, https://dxpr.com/hc/documentation/learn-drupal/drupal-glossary/recipes. Last updated October 26, 2026.

 Copy  ## Related terms

- [Drupal CMS](/hc/documentation/learn-drupal/drupal-glossary/drupal-cms)
- [Project Browser](/hc/documentation/learn-drupal/drupal-glossary/project-browser)
- [Distribution](/hc/documentation/learn-drupal/drupal-glossary/distribution)
- [Install profile](/hc/documentation/learn-drupal/drupal-glossary/install-profile)
- [Configuration](/hc/documentation/learn-drupal/drupal-glossary/configuration)
- [Composer](/hc/documentation/learn-drupal/drupal-glossary/composer)

[All Drupal terms from A to Z](/hc/documentation/learn-drupal/drupal-glossary)