• Author: Katacc
  • Description: "How nix changed my development"
  • Date: 2026-03-20

  • Me and Nix

    In this blog post I will talk about how I decided to adopt Nix into my daily life

    Background

    I have been using Linux and developing software for ~10 years now. For Linux, i've been using it on and off since then, and i've allways some sort of programming. I have allways been annoyed at the fact that when I change machines, reformat my current one or use two machines, its a hassle to setup my development environments again every time.

    I also do use a lot of different technologies at the same time, so I need a lot of different tools and packages on my systems. Things might break bc of version differences and tooling overriding with other packages.

    What is Nix?

    Nix is a Linux package manager in its heart, but it's also a lot more; It guarantees reproducible declarative environments. Nix is a package manager that stores packages completely different than your traditional linux package manager. It uses its own special /nix/store to store package "derivations" and their own required dependencies. This means that every package lives as their own set of packages and nothing can breaks because of some other updates!

    Nix is also configured decratively, you can write a "declaration file" and then build your system or *development environment (a nix shell)* from that declaration file. You can also pin package versions and share the declaration file to coworkers or contributors and with a single command, they have indentical development environment.

    Nix has a lots of superpowers, like able to easily modify packages, having development shells for every project and be reproducible allways.

    So>?

    I used Arch Linux for a long time, but having to setup my dev environments all these years made me miss
    stability and **reproducibility**. At the end of last year,I though about doing install scripts,
    but then I saw a video that reminded me of a distribution I tried out a long time ago; NixOS.

    I remember the distribution as this hard to use pain-in-the-ass distribution that doesn't follow FHS (**F**ilesystem **H**ierarchy **S**tandard) where nothing works properly. But I was still curious, I kept the idea in the back of my mind for the next time I need to reinstall my stuff.

    Well, just the start of this year, I found a new Linux youtuber: [TheBlackDon](https://www.youtube.com/@TheBlackDon),
    who had recently switched to NixOS and was sharing his experiences. I was hooked from the first video from him and saw that he had published his configuration files into gitlab. Just so happens, that previous day, my Pacman had nuked itself and the database was a mess; I was going to reinstall my stuff anyways and thought "After all, why not"

    My experience

    In the beginning, it was very rough, setting up my Nix development shells and trying to get all my software to work was really hard. Nothing really worked like I was used to. But I kept at it, slowly overcoming environment after environment and modified my configs all the time, it was honestly exciting, I have never had as much fun with computers.

    After 2~ months of using Nix daily both on my personal PC and my laptop, its finally starting to click; i'm doing things the Nix way and everything is generally starting to work. I've fallen in love with the workflow of declaring my environment and only the stuff I need for the project once and then kinda forgotting about it, it works really well. After i'm done with a project, or after a long day just want to game some World of Warcraft, I just exit the development shell and all the tools are gone from my sight and I can focus on gaming!

    Updating my system has also gotten better, I generally update a few times a month, and the same version of everything transfers to my laptop because my laptop uses the same declaration files and packages pins as my PC! It's really convenient having the guarantee of having the same exact environment all the time.

    Conclusion

    This blog was a bit of just me randomly rambling, and thats what you can expect for me, im not trying to sell these tools or be a tutor, I just want to freely write what I think without thinking much of the structure

    Regarding Nix, i've loved it, and if you are a developer, or someone who likes stability and guarantee of reproducibility. Try it out :)