You know why you’re here. Because reproducible environments make you tick but too much friction? makes you.. sick 🥁.
After 12 years of containerizing / virtualenv-ing, I’ve finally found something that ticks all the boxes. I’m talking about throwing out npm, rvm, nix-env, virtualenv and yes, even (or, especially) Docker containers for local dev to reach a state of absolute Zen.
It’s not all sunshine and rainbows, but it is almost perfect.
The “Works on My Machine” Spaghetti
We have a massive problem in development. We want isolation, but we want it to feel native. Usually, we end up with a mess of global versions or we (well, I) reach for the heavy hammer: Docker.
But let’s be honest Docker for local development involves latency and that disconnect between your shell and your tools. The alternative is Nix, the most powerful package manager on earth (can't argue with that...). I’ve done videos on Nix. I wanted to love it. But to put it bluntly: Nix is just way too much hassle for my workflow.
Achieving Environmental Zen
Devbox is a CLI, written in Go that wraps Nix. It gives you the raw power of the largest package repo in the world without the complexity.
Here is how it completely changed my game:
"Isolation without Virtualization" - I can spin up a project-specific environment in seconds with:
devbox init
This creates a devbox.json file. Now, let’s say I need ripgrep version 13, but my machine runs version 15.
devbox add ripgrep@13
Now, the magic happens.
In my normal terminal:
$ rg --version > ripgrep 14.1.1
But inside Devbox:
$ devbox shell $ rg –version > ripgrep 13.0.0
Two different versions. Same machine. No containers.
“What.. Do I have to type `devbox shell` every single time?” If that thought came across your mind, you're like me, and... No. Devbox integrates with direnv!
devbox generate direnv
Now, simply entering the folder activates the environment. I cd in, my tools are there. I cd out, they’re gone.
I'm so special
The case for replacing Makefiles
If you hate Makefile syntax, Devbox has you covered: You can define scripts in your devbox.json. Just like `npm run` or `make build`. Instead of remembering flags for a build, you just define it once and run:
devbox run build
It’s language-agnostic and lives right in your config.
Services & Plugins (The Killer Feature) Ever had to juggle Postgres versions or Nginx configs?
devbox add nginx
This pulls a standard plugin. But here is the twist: all the config files live inside your project (in a .devbox folder). You aren’t touching /etc/nginx. Need to change the port? Just set the env var in your config:
sets nginx web port to 8082
Then:
devbox services start nginx
The Global Problem (and the Fix for Nushell Users)
Devbox isn’t just for local projects; you can use it to install tools globally on your machine. Yes, replacing your Nix packages Homebrew or Pacman.
Maybe installing something like the TUI file explorer ranger.
devbox global add ranger
For bash users, this works via a simple shell hook. But I’m a special snowflake. I use Nushell.
Nushell handles environment evals differently, so the standard Devbox global shellenv hook fails. It expects to run an eval on shell start, and Nu just stares at you blankly.
The Fix: I didn’t want to give up, so I forked Devbox and wrote a fix. If you are a shell hipster like me, here is the workaround:
Check out my PR here: https://github.com/jetify-com/devbox/pull/2743 Fork it and run go build -o devbox ./cmd/devbox. Use the new binary to generate a Nu-compatible script: $ devbox global shellenv --init-hook Save that to a devbox.nu file and source it in your config.nu.
It cost me about 4 bucks in LLM credits to figure that out, but hey, now I have global Nix packages in Nushell 🤓
The Bottom Line
Devbox checks all the boxes. It gives you the reproducibility of Docker, the power of Nix, but the ease of use of a simple CLI.
Give it a shot. Your RAM (and your sanity) will thank you.
I hope this was valuable! Thank you for reading.
Feel free to reply directly with any question or feedback.
Wait... NGINX can do WHAT?! This issue is brought to you by: Reliable DNS hosting & domain name managementWith DNSimple! From a streamlined interface to single-click integrations, DNSimple delivers the tools you need to simplify your day. Developers and system admins love our single-click integrations and automation tools for domains, DNS, and more. Enterprise teams simplify management of the most complex domain environments through our NEW Domain Control Plane. Try FREE for 30 days! Most...
Redis is Not What You Think It Is. This issue is brought to you by: Securing Vibe Coding: Addressing the Security Challenges of AI-Generated Code As AI coding tools become embedded in daily development, they bring a new wave of productivity, and new security risks. On November 20 @ 11AM EST, Snyk Staff Developer Advocate Sonya Moisset will break down the security implications of vibe coding and share actionable strategies to secure AI-generated code at scale. Attendees can earn 1 CPE credit...
Give me 10 minutes and I'll make you a REGEX expert. This issue is brought to you by: Warp is a fully fledged Agentic Development Environment. From prompt → production “The IDE is dead. The ADE is in”.Coding tasks start with a prompt in Warp, not a heavyweight IDE that takes up 3/4 of your screen with code. Warp is free to try but for a limited time, try Warp Pro free for 7 days with 2,500 Al credits-no card required. Click here to start (It’s Free!) Regex has been around for years -...