gitmyhub

devbox

Go ★ 12k updated 21h ago

Instant, easy, and predictable development environments

A command-line tool that creates isolated, reproducible development environments for each project using the Nix package registry, so different projects can use different tool versions without conflicting on your laptop.

GoNixDockersetup: easycomplexity 2/5

Devbox is a command-line tool that creates isolated, reproducible development environments for your projects. You define a list of tools and their exact versions in a devbox.json file, and Devbox sets up a shell with exactly those tools available, without touching anything else on your computer. When you leave the Devbox shell, those tools disappear from your path. Your laptop stays clean.

The problem Devbox solves is common: different projects need different versions of the same tool (one project needs Python 3.9, another needs 3.12), or a tool you install for one project breaks something for another. Devbox handles this by keeping each project's tools in a fully isolated environment. It draws from the Nix package registry, which contains over 400,000 package versions, so you can pin tools to very specific versions and know they will install the same way on any machine.

Under the hood, Devbox is powered by Nix, a package manager designed around reproducibility. Devbox adds a friendlier interface on top: instead of writing Nix expressions, you run commands like devbox add [email protected] and devbox shell. You commit the devbox.json file to version control, and anyone who clones the project and runs devbox shell gets an identical environment.

Once you have a Devbox environment defined, you can use it in several ways beyond the local shell: as a VS Code devcontainer (a container VS Code opens your project inside), as a Dockerfile for building a production image with the same tools, or as a remote cloud development environment.

Installing Devbox takes a single curl command. The project is maintained by Jetify and released under the Apache 2.0 license.

Where it fits