Why use DDEV-Local instead of rolling your own Docker-based local dev solution?

DDEV logo and Docker logo

If you know something about Docker, you know that you can throw one or two Docker images together and get yourself a working local development environment. There are plenty of nginx and php images out there on hub.docker.com, and you can do lots and lots of things with them. So why use DDEV-Local, a tool that runs on Docker, when you could just roll your own Docker solution for local development? I’ll try to make a comparison. Of course I’m biased in favor of DDEV-Local.

Custom Docker or docker-compose solution:

  • You have complete control and can customize as much as you want to.
  • You do all the development and you do it your way.
  • You do all the support to handle your team’s problems and needs.
  • You get to determine what features you’ll work on.
  • You can potentially make the configuration match your deployment environment more exactly than an off-the-shelf product like DDEV-Local.

DDEV-Local:

  • Open-source project with no vendor lock-in.
  • Has already undergone more than 4 years of development, adding requested features and collaborating with community contributors. Sponsor DDEV on GitHub!
  • Explicit support for many CMS types, including Drupal, Backdrop, TYPO3, Magento, Laravel, WordPress, Shopware and generic PHP or non-PHP projects. DDEV-Local will set up beginning settings files for you so you’re set up in moments, but you can turn feature that off when you don’t need it.
  • Support for nearly all versions of both MySQL and MariaDB.
  • Out-of-the-box support for both Nginx and Apache and PHP 5.6-8.0.
  • Trusted https for every project.
  • Import, export, and snapshot databases.
  • Run or start as many projects as you want to, all at the same time, depending on the resources you have available. Each project can have different PHP version, use apache instead of nginx, etc.
  • Works the same on macOS, Linux, Windows and WSL2; great for diverse teams.
  • ssh integration (ssh-agent bundled so you can use your keys inside the container for accessing hosts or private composer repositories.
  • Composer support built into the web container and accessed with ddev composer.
  • XDebug step-debugging out of the box. Just ddev xdebug on and go.
DDEV-Local, PHPStorm and Xdebug video and blog post
  • Integration with Pantheon.io and DDEV-Live for hosting.
  • ddev share lets you show work in progress to anyone anywhere in the world.
  • Respect for other tools and production environments: DDEV-Local doesn’t reconfigure your computer or require exact versions of Docker, etc.
  • Extensive customization available, including adding packages and docker-compose recipes, with dozens of published solutions in ddev-contrib and Stack Overflow. (ApacheSolr, redis, MongoDB, RabbitMQ, Blackfire, Varnish, …)
    Custom commands based on shell scripts, that can be added as team needs grow.
  • Outstanding open-source community with support in many channels.
  • Team lead gets the day off! This is perhaps the biggest of the many benefits of DDEV-Local, and perhaps the most important. When you use a standardized, supported solution, your team leads don’t spend all their time helping everybody else keep the development environment going. It’s the same on every platform, project configurations get checked in, and mostly people just work on things instead of spending their time keeping the environment going (or extending it).

There are significant benefits of building and maintaining your own Docker-based dev environment, but I think you’ll have more free time if you use ours!

Read the DDEV-Local documentation to get started.

Share this post: