Why I'm Ditching Nix Home Manager And What I'm Using Instead


Why I'm Ditching Nix Home Manager
And What I'm Using Instead

This issue is brought to you by:

Ready to Take Your Testing to the Next Level?


Don’t let complex testing slow you down! With Squish, you can automate your entire UI testing process across multiple platforms, ensuring both speed and accuracy. 

For the longest time, my dotfiles felt like a junk drawer: essential, but keeping them in order is a constant battle.

Like many developers, I've been through the evolution of dotfiles management systems, from a basic git repo to more sophisticated tools like Nix Home Manager.

But sometimes (or, more precisely - almost always), simpler is better (this should be a t shirt).

One British researcher noted on his post "Using GNU Stow to manage your dotfiles":

GNU Stow is a symlink farm manager which takes distinct packages of software and/or data located in separate directories on the filesystem, and makes them appear to be installed in the same place.

This post was written back in 2012 (!) and was one of the resources, leading me to my stow flow 🎶.

This straightforward approach has stood the test of time, even as more complex solutions have emerged, like Nix Home Manager, and the popular open source Chezmoi. Each with its own set of features and functionalities, appealing to a slightly different audience.

Here's what I've learned

While Nix Home Manager offers powerful features like system reproducibility and declarative configuration, it comes with significant drawbacks.

Every configuration change requires a complete system resync. Now, mind you, if this would be a 100ms operation we wouldn't be here in the first place. But much like I recently discovered I can "burn" my keyboard's layout changes instantly without waiting like I'm used to with my Moonlander, having to wait long seconds for every simple dotfiles change can be frustrating, especially when testing out new plugins and setups.

Not only that, the tool takes ownership of your dotfiles, making them inaccessible to other processes without special permissions. For many developers, including myself, this creates more friction than function.

One example that drove me nuts was Neovim's Lazy inability to change its own lockfile due to home manager taking over it. I mean, a lockfile! Quite literally a dynamic file that's sole function is keeping up to date and being managed by its creator...

One sunny Satureday, with yet another wait for a neovim's config change, followed by a lockfile error blocked due to permissions, I've had enough. Home manager is out.

The solution?

Going back to basics with GNU Stow. It's lightweight, doesn't lock you into an ecosystem, and most importantly, keeps you in control of your files.

Setting it up is straightforward: create a .stowrc file pointing to your ~/.config directory, configure file ignores, and run a single command to manage your symlinks.

No constant resyncing, no permission issues, and no complexity overhead.

This experience has taught me that sometimes the most sophisticated solution isn't the best one.

While Nix Home Manager is powerful, the simplicity and flexibility of tools like Stow often prove more practical for day-to-day use. Your dotfiles should work for you, not the other way around.

One more tip

Do you have something in your setup that hinders your work instead of supporting it?
Maybe a file sync system of some sort, a home manager of your own, perhaps a plugin you're used to but is actually taking long seconds to load and if you're honest with yourself, isn't doing the best service. I suggest this set of questions:

  • Is it supporting my workflow?
  • Is it only here because I'm used to it?
  • Does its features outweigh its flaws?

In my scenario, it was no, yes, no. Leading me to an easy decision, and back to my flow, and I'm not looking back.

Thanks for reading!

See ya next week.

What Squish offers:

  • ✅ Increase test coverage and efficiency
  • ✅ Trusted by leading companies worldwide 
  • ✅ Full CI/CD compatibility for seamless integration
  • ✅ Free up your team's time for higher-value tasks

ESPRESSO FRIDAYS

Every once in a while I send hand picked things I've learned. Kind of like your filter to the tech internet. No spam, I promise!

Read more from ESPRESSO FRIDAYS

Redis is Not What You Think It Is. This issue is brought to you by: Securing Vibe Coding: Addressing the Security Challenges of AI-Generated Code As AI coding tools become embedded in daily development, they bring a new wave of productivity, and new security risks. On November 20 @ 11AM EST, Snyk Staff Developer Advocate Sonya Moisset will break down the security implications of vibe coding and share actionable strategies to secure AI-generated code at scale. Attendees can earn 1 CPE credit...

Give me 10 minutes and I'll make you a REGEX expert. This issue is brought to you by: Warp is a fully fledged Agentic Development Environment. From prompt → production “The IDE is dead. The ADE is in”.Coding tasks start with a prompt in Warp, not a heavyweight IDE that takes up 3/4 of your screen with code. Warp is free to try but for a limited time, try Warp Pro free for 7 days with 2,500 Al credits-no card required. Click here to start (It’s Free!) Regex has been around for years -...

You’ve been parsing JSON wrong your whole life This issue is brought to you by: Secure Your AI Future at DevSecCon 2025 Software development is undergoing a seismic shift as AI transforms how we build, deploy, and secure applications. Register for the 1st-ever Global Community Summit on AI Security, covering critical strategies to empower AI innovation without compromising security. Register for DevSecCon 2025 (It’s Free!) Ever opened a massive “.log” file and realized it’s just one long,...