
2025-11-25Outdated view of mine, many wrongs lol, but that’s okay, learning journey!
It’s unreal when you can say Arch is relieving after driving NixOS, it’s real… I’m only one month full diving in its ecosystem, yeah, I’ve encountered so much pain that’s unnecessary.
My good experience:
- Flakes
- Package management
- Nix shell / devshells
- Rollback & preview
My mixed feelings:
- Nix language, very DSL, I’ve had to fetch libraries for simple things like lib.mkBoolean, lib.mkIf, mkDefault etc. imo it’s hard to make pretty code with nix, and it’s confusing just from the looks.
- Documentation, glad i’ve encountered the sane part, it mostly takes from users experience and learning notes.
- 120,000 nixpkgs feels like an illusion. So many unmaintained, dropped, unavailable. it’s chaotic.
My worst experience:
- The noises on the internet, hell.
- Home manager, it only adds another layer of complexity. Every time I want to see a small change, I’m rebuilding my system, the evaluation is so slow. Outside there are much more convenient and humane systems like Stow and Chezmoi. Dotfiles are already declarative btw. Home manager only feels right for managing user package and dependencies.
But the great thing about NixOS is, “If this way didn’t work out, there is another hundred’s way.” that’s why it can’t be easily opinionated, people just put duct tape with another abstraction and scripts. Each flake scattered on git has a distinct style. If one clueless slapping flakes without looking at the source, the chance they’ll get a wonky system is 90%.
Nix and its ecosystem is great for infrastructure as code and servers, but for desktop use cases, it’s unforgiving, I feel like I’m in stockholm syndrome chasing Nix purity. If the user only using without documenting/taking notes on their own journey, it feels like arguing with an abusive ex in an infinite maze.
That’s why I like it, it makes me feel something.
I need to go to therapy before it’s too late, just to confess my skill issue and say “I use NixOS btw”