I've been using Nix for 3 years now. First month was hell, now I can't go back to npm breaking my environment every week.
Nix is a functional package manager that stores everything in /nix/store
with weird hash names like /nix/store/b6gvzjyb2pg0kjfwrjmg1vfhh54ad73z-firefox-33.1/
. First time you see this, you think it's broken. It's not. This is how Nix prevents the "install something, break everything else" problem that plagues traditional package managers.
What Actually Makes It Different
Traditional imperative package managers are stateful - they run install scripts that modify your system state. Nix is functional - packages are immutable values that can't interfere with each other. Sounds academic, but it means you can:
- Install conflicting versions of the same library
- Roll back changes without reinstalling your OS
- Share exact development environments with teammates
We're on version 2.29 now (September 2025). NixOS 25.05 "Warbler" dropped in May and actually works great. The community actually gives a shit and keeps things moving.
Learning Curve Reality Check
Expect to be confused for 2-3 weeks. The Nix language is functional programming on hard mode, and the error messages are cryptic garbage that make you question your sanity. Documentation ranges from excellent to "figure it out yourself," usually when you need it most.
But once it finally clicks (and trust me, it will), you realize every other package manager is fundamentally broken and you can't go back. I now use Nix for:
- Dev environments: `nix-shell` gives me isolated environments that actually work consistently
- Production deployments: Same packages, same versions, no surprises
- Personal machines: Home Manager lets Nix manage my dotfiles and user packages
Real-World Gotchas
- First install downloads everything from source. Takes hours.
- Flakes are "experimental" but everyone uses them anyway
- Some software doesn't play nice with Nix's isolation model
- Learning resources are scattered across wikis, forums, and incomplete docs
- Binary caches sometimes fail, forcing source builds at the worst times
Companies like FlightAware, Shopify, and Tweag use Nix because it prevents "works on dev, crashes in prod" disasters. The isolation guarantees are worth the learning curve.