What do you use to build and develop Drupal sites?

tl;dr: Go complete the Drupal Local Development Survey, and we'll present the results (among other things) at MidCamp in a couple weeks!

Local development for Drupal is a subject I've invested a lot of time into. At the start of my Drupal journey, I used to use MAMP, then MAMP Pro, then a native *AMP installation. Then when I learned about Vagrant I started building Vagrant-based environments with shell scripts. Then I learned Ansible and started using Vagrant and Ansible. And then I learned Docker and used Ansible, Docker, and sometimes Vagrant!

Everyone's journey is different—but one thing most of us can agree on is: it ain't easy finding a way to run Drupal on your local workstation if you've never done it before.

Should you use MAMP/WAMP/XAMPP? Should you use Acquia Dev Desktop? Should you use Docker or Vagrant and build your own environment? Should you use a packaged solution like Drupal VM or Lando? And then how will you manage your codebase? How will you build a theme?

A lot of these questions haven't been adequately covered for beginners in a while, and that's why Chris Urban and I will be presenting Local Dev Environments for Dummies at MidCamp in Chicago. The session will be recorded, so even if you can't make this awesome Drupal event, you'll be able to see our answers to these questions later!

To help us fine-tune the session, we're asking anyone who's ever done Drupal development before to fill out the Drupal Local Development Survey, and help us discover local development trends in the Drupal community!

Also, in preparation for the session, I've been compiling all the local Drupal Development Environment Tools I know if into the linked Google spreadsheet. Please take a look, comment on anything that looks like it needs updating, and let me know if I'm missing anything there!

If you're coming to MidCamp, I'll see you there! If not, check online after MidCamp for a recording of the session!

Comments

Check out also drupal-init-tools https://ao2.it/129

FWIW my local development workflow is to have Apache installed natively on Debian, configured with the userdir module enabled; then I create new sites under "$HOME/public_html". drupal-inint-tools works great in this context.

Ciao,
Antonio

Nice! Looking forward to hearing the findings. I was surprised that Docker4Drupal was not on your list. It's not my favorite, but there are some projects I'm on where it's used, and figured that might be the case for others as well. Related: https://www.lullabot.com/articles/local-drupal-development-roundup

Thanks for working on this, Jeff! :)

(By the way, if this happens to go through, I keep getting an error trying to submit comments: "There was a problem with your form submission. Please wait 410 seconds and try again." I'm turning off uBlock Origin and trying again in ~7 minutes)

Love DrupalVM, thanks.

Would be really interested to find out more of how people deploy locally-developed code to production, too.

Using:
- git push + hooks,
- phpstorm / eclipse etc integrated deployment
- custom bash script (rsync, scp, sftp etc),
- ansible, salt etc
- grunt, et al?

Do any of these work really well for small teams / big teams / long or short-term projects?

In a team we use custom scripts, which wrap rsync and ssh actions; for home sites I'm likely to use rsync or manual git. While the latter is simple it has flaws! and the custom scripts I have used always seem to come with pain points.

It should be noted that the amazee.io local development environment is called `pygmy` (for MacOS). Lagoon is our deploy and orchestration system for OpenShift

I use Docker on Mac - I just want to see the world burn