# Varbase Recipes

**Varbase 11.0.x** adopts a modern, recipes-based architecture built on **Drupal Recipes**, replacing the traditional module-based installation approach used in earlier Varbase versions. Drupal Recipes are a standardized way to package and apply sets of modules, configurations, and permissions as reusable, composable units.

## What Are Drupal Recipes?

Drupal Recipes allow distributions like Varbase to define discrete bundles of functionality that can be applied individually or composed together. Each recipe declares its dependencies, installs the required modules, applies configuration, and sets up permissions, all in a single, repeatable operation.

This approach provides several advantages over the previous module-based architecture:

* **Composability**: Recipes can depend on and build upon other recipes, creating a layered architecture.
* **Selective installation**: Sites can apply only the recipes they need rather than installing the entire distribution.
* **Maintainability**: Each recipe is an independently versioned Drupal.org project, making updates and patches more straightforward.
* **Compatibility**: Varbase recipes build on top of Drupal CMS recipes, ensuring alignment with the broader Drupal ecosystem.

## The Varbase Starter Recipe

The [Varbase Starter](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-starter) recipe serves as the main site template that orchestrates the entire Varbase installation. It bundles all core Varbase recipes along with Drupal CMS recipes, Easy Email, and the Vartheme BS5 theme. For most projects, applying the Varbase Starter recipe is the recommended starting point.

## Varbase Recipes Overview

The following recipes comprise the Varbase 11.0.x recipe ecosystem:

| Recipe                                                                                                                                       | Description                                                                                     |
| -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| [Varbase Starter](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-starter)                   | Main site template recipe that orchestrates the full Varbase installation                       |
| [Varbase Admin Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-admin-base)             | Default admin experience with Gin theme, navigation, audit trail, and admin tools               |
| [Varbase Content Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-content-base)         | Core content configuration including node types, taxonomy, views, and essential content modules |
| [Varbase Media Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-media-base)             | Media types, image styles, responsive images, media library enhancements, and file handling     |
| [Varbase Editor Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-editor-base)           | CKEditor 5 with rich text editing capabilities, plugins, and enhancements                       |
| [Varbase Security Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-security-base)       | Password policies, CAPTCHA, honeypot, antibot, security kit, and flood control                  |
| [Varbase SEO Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-seo-base)                 | SEO modules including metatag, pathauto, redirect, sitemap, and structured data                 |
| [Varbase Workflow Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-workflow-base)       | Content moderation, scheduled publishing, and workflow notifications                            |
| [Varbase Performance Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-performance-base) | Page caching, asset aggregation, image optimization, and lazy loading                           |
| [Varbase Blog Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-blog-base)               | Blog post content type with featured images, tags, categories, and listing pages                |
| [Varbase Webform Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-webform-base)         | Default webform modules, configurations, and professional contact form template                 |
| [Varbase API Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-api-base)                 | JSON:API with authentication, authorization, and OpenAPI documentation                          |
| [Varbase Auth Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-auth-base)               | Social Single Sign-On with default social authentication providers                              |
| [Varbase i18n Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-i18n-base)               | Internationalization, language management, and translation support                              |
| [Varbase Dev Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-dev-base)                 | Development modules and configurations for local development environments                       |
| [Varbase Page Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-page-base)               | Page content type with SEO fields, editorial workflow, and menu configuration                   |
| [Varbase Users Base](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-users-base)             | Default user roles, account settings, and user management configurations                        |
| [Varbase Demo Content](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-demo-content)         | Demo content for new Varbase sites                                                              |
| [Varbase Media Assets](https://docs.varbase.vardot.com/11.0.x/developers/understanding-varbase/varbase-recipes/varbase-media-assets)         | Default demo media assets including images, videos, and documents                               |

## Applying a Recipe

Recipes are applied using Drush. The general workflow is:

1. Require the recipe package via Composer:

```bash
composer require drupal/recipe_name
```

2. Apply the recipe using Drush:

```bash
ddev drush recipe ../recipes/recipe_name
```

Refer to each recipe's documentation page for specific installation commands and details.
