Skip to content

What does AI know about Backdrop and Drupal modules and recipes

In Backdrop CMS and in Drupal CMS, modules and recipes serve different purposes but both help extend and configure a site efficiently. Here's how they differ:

A Module

  • Definition: A module is a package of PHP, YAML, and other assets that adds new features or alters existing functionality in a CMS.
  • Functionality: Can provide new content types, blocks, fields, permissions, integrations with third-party services, and more.
  • Types:
    • Core modules built into CMS (Backdrop / Drupal), like Views or CKEditor 
    • Contributed modules (available on BackdropCMS or Drupal.org, like Webform or BackupAndMigrate)
    • Custom modules (developed by site builders for specific needs)
  • Installation: Requires enabling through the CMS UI or Drush/Composer.
  • Code-based: Developers write PHP code to define functionality.

A Recipe  

  • Definition: A recipe is a YAML-based configuration package that automates the setup of a site by installing modules, enabling configurations, and even creating content.
  • Functionality:
    • Bundles together modules, configuration, and content setup.
    • Can install multiple modules and apply pre-configured settings automatically.
    • Can be reusable and composable, meaning multiple recipes can be applied to the same site.
  • Types:
    • Base Recipes: Define a fundamental site setup.
    • Feature Recipes: Add specific functionality like media management or SEO tools.
  • Configuration-based: Uses YAML files rather than PHP code.

Key Differences

Feature Module Recipe
Purpose Adds new functionality via PHP code Automates site setup with predefined modules & configs
Code Type PHP, YAML, and sometimes JavaScript YAML only
Scope Can introduce new functionality and APIs Focuses on installing and configuring existing functionality
Installation Enabled via UI or Drush/Composer Applied via Drush or installation profile
Reusability Requires enabling individual modules and configuring them manually Can bundle multiple modules & configurations for easy reuse
Example Pathauto module (provides automatic URL aliases) SEO recipe (installs Pathauto, Metatag, XML Sitemap, and preconfigures them)

When to Use What?

  • Use a module when you need to add new functionality to CMS.
  • Use a recipe when you need to streamline site setup with a pre-configured collection of modules and settings.

Would you like a deeper dive into how recipes work in a migration from Drupal 7 to Backdrop CMS? Connect with us for more info.