explaingit

jetify-com/devbox

11,560GoAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

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.

Mindmap

mindmap
  root((devbox))
    What it does
      Isolated environments
      Reproducible tooling
      Clean laptop
    Under the hood
      Nix packages
      400k package versions
      Go CLI
    Use cases
      Version conflicts
      Team environments
      Devcontainers
    Audience
      All developers
      Team leads
      DevOps engineers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Isolate each project's tools so Python 3.9 for one project doesn't conflict with Python 3.12 for another on the same machine.

USE CASE 2

Commit a devbox.json to version control so every team member gets an identical development environment by running one command.

USE CASE 3

Use a Devbox environment as a VS Code devcontainer or Dockerfile to keep local development and production tooling identical.

Tech stack

GoNixDocker

Getting it running

Difficulty · easy Time to first run · 5min
Apache 2.0 license, use freely in any project, including commercial ones, with attribution.

In plain English

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 python@3.10 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.

Copy-paste prompts

Prompt 1
How do I add Python 3.10 and Node.js 18 to a Devbox environment and open a shell with both available?
Prompt 2
I want everyone on my team to get the same dev tools when they clone our repo. Walk me through creating and committing a devbox.json file.
Prompt 3
How do I convert my Devbox environment into a Dockerfile so I can use the same tools in production builds?
Prompt 4
What is the difference between Devbox and Docker for managing development environments, and when should I use each?
Prompt 5
I have version conflicts between two projects on my laptop. Show me how Devbox isolates their dependencies so they don't interfere.
Open on GitHub → Explain another repo

← jetify-com on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.