# What is Devbox?
Source: https://www.jetify.com/docs/docs/devbox/index

Devbox is a command-line tool that lets you easily create isolated shells for development. You start by defining the list of packages required for your project, and Devbox creates an isolated, reproducible environment with those packages installed.

In practice, Devbox works similar to a package manager like yarn – except the packages it manages
are at the operating-system level (the sort of thing you would normally install with brew or
apt-get).

<Frame>
  <img alt="Devbox isolated shell environment" />
</Frame>

## Why Use Devbox?[​](#why-use-devbox "Direct link to Why Use Devbox?")

Devbox provides a lot of benefits over pure Docker containers, Nix Shells, or managing your own
environment directly:

### A consistent shell for everyone on the team[​](#a-consistent-shell-for-everyone-on-the-team "Direct link to A consistent shell for everyone on the team")

Declare the list of tools needed by your project via a `devbox.json` file and run devbox shell.
Everyone working on the project gets a shell environment with the exact same version of those tools.

### Try new tools without polluting your laptop[​](#try-new-tools-without-polluting-your-laptop "Direct link to Try new tools without polluting your laptop")

Development environments created by Devbox are isolated from everything else in your laptop. Is
there a tool you want to try without making a mess? Add it to a Devbox shell, and remove it when you
don't want it anymore – all while keeping your laptop pristine. Removing or changing a package in
your dev environment is as easy as editing your `devbox.json`.

### Don't sacrifice speed[​](#dont-sacrifice-speed "Direct link to Don't sacrifice speed")

Devbox can create isolated environments right on your laptop, without an extra-layer of
virtualization slowing your file system or every command. When you're ready to ship, it'll turn it
into an equivalent container – but not before.

### Good-bye conflicting versions[​](#good-bye-conflicting-versions "Direct link to Good-bye conflicting versions")

Are you working on multiple projects, all of which need different versions of the same binary?
Instead of attempting to install conflicting versions of the same binary on your laptop, create an
isolated environment for each project, and use whatever version you want for each.

### Take your environment with you[​](#take-your-environment-with-you "Direct link to Take your environment with you")

Devbox's dev environments are *portable*. We make it possible to declare your environment exactly
once, and use that single definition in several different ways, including:

* A local shell created through `devbox shell`
* A devcontainer you can use with VSCode
* A Dockerfile so you can build a production image with the exact same tools you used for
  development.
* A remote development environment in the cloud that mirrors your local environment.

[Edit this page](https://github.com/jetify-com/devbox/tree/main/docs/app/docs/index.md)