Practices and tools for creating productive development environments on the developer's machine, replicating production as closely as possible.
Local development is the environment where developers write and test code before sending it to CI/CD. A good local setup replicates production enough to catch problems early while maintaining a fast feedback loop.
| Component | What it includes | Typical tool |
|---|---|---|
| Runtime | Correct language and version | nvm, pyenv, asdf |
| Dependencies | Databases, caches, message queues | Docker Compose, devcontainers |
| Tools | Linters, formatters, test runners | ESLint, Prettier, Vitest |
| Configuration | Environment variables, development secrets | .env.local, dotenv |
| Strategy | Pros | Cons |
|---|---|---|
| Native installation | Fast | Version conflicts |
| Docker Compose | Isolated, reproducible | Resource overhead |
| Dev Containers | Fully reproducible | Requires Docker |
| Cloud dev environments | No local setup | Latency, cost |
make dev, pnpm dev)The quality of the local development environment determines the team's daily productivity. If compilation takes minutes, if dependencies fail, or if setup requires a 20-step document, every developer loses time that multiplies by team size.
Specification for defining reproducible development environments in containers, eliminating 'works on my machine' problems and accelerating onboarding.
Tool for defining and running multi-container applications with a YAML file, simplifying local development of systems with multiple services.
Personal development environment with devcontainer, Docker Compose, Python backend, and React frontend.
Minimal devcontainer template for quickly starting projects with a clean base configuration.
Collection of custom Dev Container features with automated testing, CI/CD, and GitHub Container Registry publishing.
Amazon Linux-based devcontainer template for AWS-compatible development environments.
Structured process for new developers to become productive quickly, from environment setup to understanding team architecture and processes.