my nixos experience
July 6, 2026

its been two months since i installed nixos and i've loved it so far, the nix-shell, flakes (experimental in holy 2026), dev environments using devenv, overlays, package pinning and several other features that i never thought existed (and would've never found out) in an operating system.
why did i broke up w arch? i install a lot of packages during development or to run any project, and after using i either uninstall it or sometimes forget about it, this leads to unwanted packages or dependencies or some kind of config files sitting somewhere in disk. i always dreamt of an operating system that lets me develop in some kind of virtual machine that i can kick out later.
so after my college ended i decided to reset my system (as it was highly bloated due to college projects), so i booted up archlinux pendrive, formatted drives, and unfortunately the manual installation failed due to AUR downtimes. i was stuck atp, so i thought i should give another distro a try, and it was (drums rolling) NIXOS!!!
after installing nixos, i changed the configuration.nix file according to my needs (just added few packages) and built it, and voila it worked. so i started digging up how to customize ts and came to know about flakes, so i setup'd a basic flake with one nixosConfigurations.nixos output and the same system was built, later i added overlays for nixpkgs unstable so that i can get updated builds of some packages.
later i discovered home manager and configured git, zed and other applications using it, the best part of home manager is that nix provides a set of options that translates to application specific config files. also in arch i used to run a bash hook after every pacman -Syu that replaced discord's app.asar to openasar for disabling auto update checker, but there's always a nix way of doing things better i.e. discord.override.withOpenASAR = true; and now the discord app uses the openasar. cool right?.
there are more things such as you can run any packages using nix run and create a temporary shell using nix shell or pin a package to a specific commit from nixpkgs, reproducible builds, nixos generations, etc.
there are some downsides tho, such as if there's a cache miss on nixpkgs hydra the entire package will be built on your machine and the nixos-rebuild switch will take your entire day to complete, also there might be some packages that are not available on nixpkgs (so you have to use nix way of packing apps manually and waste entire weekend, lol).
i have created a memo containing all links and guides i followed along and will be updating once in a while, also you can check out my nixos config.
p.s.: header image is a joke, i still like arch.