Local development has been an unsolved problem since the days of MAMP, XAMPP and BAMP. This problem has been tackled over and over by some of our smartest engineers but the state of the art hasn't advanced much beyond a bundle of scripts duct-taped together and maintained in-between real work. It's 2023 and setting up your workstation for a new project and sharing config between developers is still a hit or miss prospect.
In this session we'll look at a new approach to local development that uses containers and config-as-code best practices to define everything about the local operating environment from software versions to IDE plugins.
By defining our tech stack in code we can create a Drupal site repository that can be spun up by any developer on any Windows, Mac or Linux machine and including fully configured and working versions of our favorite development tools such as XDebug, Lighthouse and PHPMyAdmin.
Using Microsoft's Dev Container standard we will create a config that can create a fully functional devlopment stack locally with just VS Code and Docker Desktop or in the cloud using Github Codespaces.
We will also look at how a fully defined runtime environment can improve security, ease deployments and reduce maintenance costs by locking down the production environment to only the software that is needed to run Drupal and nothing more.