DevOpsToolsConfiguration 4 min read Jan 23, 2026
A minimalist terminal window with configuration files and tools displayed
Photo by Lukas on Unsplash

Why I stopped "Nixifying" Everything

The Purity Trap

For a long time, I was convinced that if I just spent enough hours writing Nix expressions, configuring modules, and debugging evaluations, I’d eventually arrive at the promised land - a system that was perfectly reproducible, entirely declarative, and essentially finished. So I kept going. I Nixified everything. My packages, my shell, my editor config, my window manager. All of it.

Recently, though, I did the exact opposite. I took a bat to the whole thing, ripped out the abstractions, and moved my dotfiles over to Chezmoi, keeping Nix around mostly as a package manager.

Here’s why.

More Code, More Problems

There’s a basic truth in software engineering that we all know but conveniently forget: more code means more maintenance. By using Nix (specifically Home Manager) to manage not just my packages but the internal configuration of those packages, I had turned every dotfile into a little program. I wasn’t writing a config file anymore. I was writing code that generates a config file.

And for what? A VS Code JSON setting or a Helix TOML file isn’t a complex software dependency that needs to be compiled and pinned. It’s just a file. Nix is genuinely excellent at packaging software, but wrapping every dotfile in a Nix expression added a layer of indirection that created more friction than it removed.

The Golden Handcuffs

There was another problem I didn’t notice for a while: I had locked myself in.

NixOS cured my distro-hopping habit, but it did so by building a wall around me. My entire digital life was encoded in Nix modules, which meant I couldn’t casually test drive Fedora or Arch or even just a fresh Ubuntu install without feeling like I was starting over from nothing. I had traded freedom for reproducibility, and I wasn’t sure that was a good deal anymore.

I like trying new things. I want my configuration to be portable - something that travels with me - not a hard dependency on one specific operating system.

Stepping Back

Every now and then you have to challenge your own assumptions. Two posts in particular helped me see the friction I’d gone numb to:

The more I read, the more I recognized problems I’d been quietly tolerating. So I stripped Nix back to what it’s actually great at - being a package manager - and handed dotfile management over to Chezmoi, a tool that was built specifically for the job.