I started using Drupal in 2012 (version 6) to build and maintain some websites for my college alumni class (Dartmouth '69) and some local community non-profit and advocacy organizations. It was a fun hobby, something I could easily squeeze into chunks of downtime during my on-call nights and weekends as a primary care family doc. Drupal has evolved into a much more powerful - and complex - platform and about a year ago (late 2019) I realized I had to either up my game substantially or move to a simpler platform. Ego and ISD (intention surplus disorder) won out and I decided to transition away from managing Drupal with SFTP, tarballs, and the online GUI interface to Composer. It was a much bigger climb than I'd anticipated, but I have no regrets. I had to (not necessarily in this order):

  • Get comfortable working in Terminal with the command line interface (CLI).
  • Learn to use a package installer (Homebrew).
  • Install and learn ddev to build local containers for website development.
  • Learn Composer, Drush (the Drupal shell), GIT and a little SQL. I'm still working on getting comfortable with VIM and PHPStorm (which may replace BBEdit in my workflow).
  • Composerize my (seven) gui-based sites.
  • Migrate three sites from Drupal 7 to Drupal 9.
  • Develop a whole new set of workflows for updating, upgrating, and deploying.


I have been using Evernote to collect and modify the basic install and use information for these new tools and my workflows, which has been quite helpful. A friend recently asked me for help with something, and it occurred to me that some of the work I had done to document my processes might be useful for others. So, I've decided to collect, review, and share some of what I have learned.

CAVEATS: I am not a professional coder or developer. I am far from an expert. There are undoubtedly things that worked for me in my specific context that would not work or not be ideal for others. I make no claim that what I have documented is the best practice - only that it worked for me. In the internet and web development spaces, things change wicked fast, so I can't guarantee that all of this is current. And, of course, my posts will contain errors.

REQUEST: if you find errors or would like to suggest better or alternative approaches, please feel free to let me know. I continue to use the information for reference and everyone benefits if I improve it.