Raised: $9,421
79% of monthly goal Help us cross the finish line!
Goal: $12,000
Raised: $9,421 Goal: $12,000
79% of monthly goal Help us cross the finish line!
Sponsor DDEV

Contributor Training: Creating and Maintaining DDEV Add-ons

April 28, 2026 3 min read

Edit this page
Creating and Maintaining DDEV Add-Ons training session title card

Stas Zhuk and I covered the full add-on lifecycle in this Contributor Training session: bootstrapping from the ddev-addon-template, writing Bats tests, testing locally and against branches or open PRs, and publishing to the registry. The session also covers use cases beyond service providers — custom commands, DDEV hooks, and distributing team workflows across projects.

The slides are available online (source).

What Are DDEV Add-ons?

Most people first encounter add-ons as service providers — Redis, Elasticsearch, Solr, Mailpit — but Bill Seremetis (bserem) put it well in his DrupalDevDays Athens 2026 talk: “an add-on is a set of files: hooks + commands + scripts + config — it’s a distribution mechanism.” His agency uses a single custom add-on across 100+ Drupal projects to encode institutional knowledge, enforce quality gates, and deliver the team’s workflows to the terminal. One update to the add-on propagates improvements to every project. That framing opens up a lot: custom commands that automate your team’s processes, DDEV hooks that fire at key checkpoints (sanitize the database on import, install Git hooks on project start), and boilerplate configs or scripts distributed automatically to wherever they’re needed.

The heart of every add-on is an install.yaml, which defines what files get placed at the project-level or globally, plus pre_install_actions and post_install_actions that can run shell or PHP scripts during install.

Getting started with a new add-on is straightforward: use the ddev-addon-template, which wires up GitHub Actions CI and a tests/test.bats Bats test suite from the start. You can test locally before publishing with ddev add-on get /path/to/your/addon, against a branch with --version branch-name, or against an open PR with --pr 54. When ready to publish to the world (if you want to), add the ddev-get topic to your GitHub repository and it will appear in addons.ddev.com within about 24 hours.

Resources

Contributions Welcome!

Your suggestions to improve this blog are welcome. You can do a PR to this blog adding your techniques. Info and a training session on how to do a PR to anything in ddev.com is at DDEV Website For Contributors.

Follow the DDEV Newsletter for information about upcoming user and contributor training sessions.