Concepts

Local Development

Practices and tools for creating productive development environments on the developer's machine, replicating production as closely as possible.

seed#local-development#dx#docker#environment#productivity

What it is

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.

Components

ComponentWhat it includesTypical tool
RuntimeCorrect language and versionnvm, pyenv, asdf
DependenciesDatabases, caches, message queuesDocker Compose, devcontainers
ToolsLinters, formatters, test runnersESLint, Prettier, Vitest
ConfigurationEnvironment variables, development secrets.env.local, dotenv

Strategies

StrategyProsCons
Native installationFastVersion conflicts
Docker ComposeIsolated, reproducibleResource overhead
Dev ContainersFully reproducibleRequires Docker
Cloud dev environmentsNo local setupLatency, cost

Best practices

  • One command to bring everything up (make dev, pnpm dev)
  • Data seeds for development
  • Hot reload for instant feedback
  • Mocks for expensive external services

Why it matters

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.

References

Concepts