We strongly recommend to use a docker-based local development environment unless the project is a pure Node/React project that does not require a local DB.
We use DDEV or Lando as tools to quickly spin up local development environments. Both of these tools have templates for Drupal, Wordpress, Laravel and other frameworks. Both also allow to add additional services like MongoDB, Redis, Solr or others. Both of these tools also have routines to integrate with hosting providers such as Pantheon or Platform.sh.
At times, the tools mentioned above might not work on your local computer. An alternative to get an environment up and running could be to use Gitpod. We at Mellenger will closely monitor this technology to evaluate how we can use Gitpods more in our workflows.
At times there is a need to quickly switch the Node/NPM version on your local system in order to comply with project requirements. We recommend using nvm or n as tools to accomplish this. As general rule though, new project should be started with the latest LTS version of Node. We also prefer using yarn as the package manger instead of npm.
When hosting sites ourselves or when creating development sites we usually use Forge. This service allows us to quickly set up a virtual server on Digital Ocean. When adding a new server, choose "Digital Ocean" and "Mellenger DO" for the credentials, and 1 GB RAM / 1 CPU as the settings. Once the server is created, you can add "Apps" to the server that can be connected to a git repository. When code is pushed to the repository a build process is triggered. By default this will run a composer install, thus the vendor directory does not need to be included in the git repository. The DNS entry for all development domains (*.m3mm.com) can be managed via Digital Ocean.
We use Pantheon on a number of client projects. This service offers development/staging/production environments as well as the option to create an instance for a specific branch. When working with Pantheon we use the git-based workflow. Changes that are pushed to the main/master branch are deployed to the development environment. From there, changes can be pushed via the Pantheon dashboard to staging/production. Note that the vendor folder in composer-managed projects needs to be committed to the git repository. The git repository is provided through Pantheon.
Platform.sh is a similar service to Pantheon. It also offers multiple environments for development/staging/production. However it runs the composer process when code is pushed to the git repository, so the vendor folder should be ignored in the git settings. The git repository is provided by Platform.sh.