He moved dotfiles from GNU Stow to Chezmoi. The thread climbed to Nix

The complaint that triggered the switch is tiny and specific: symlinks cut both ways, so every edit writes straight back into the repo and silently makes the tree dirty. The fix opened a 116-comment ladder where every rung tries to sell you the next tool up.

In brief

The post explains why GNU Stow's symlink model broke down: edits flow back through the link into the repo, and files like ~/.zprofile already exist by the time Homebrew runs, so Stow refuses to manage them. Chezmoi's copy-and-template model fixed both.

Then the thread did its thing. Every Chezmoi pick drew a 'you're 6 months from Nix' reply, which drew a developer who rewrote Nix from scratch calling Home Manager 'demonstrably ill-posed,' which drew a wall of people who just use a git repo, Make, or rsync and never looked back.

Cover image from the migration post
Cover image from the migration post

The post "Migrating from GNU Stow to Chezmoi" is precise about what broke. Stow manages dotfiles by symlinking them out of a repo into your home directory, and the author's grievance is mechanical:

"The trouble is that symlinks cut both ways. Every edit on every machine writes straight through the link into that machine's clone of the repo."

The second problem is bootstrap order: "By the time Homebrew and a couple of tools have run on a new Mac, files like ~/.zprofile and ~/.gitconfig already exist," and Stow won't adopt a file that's already there. Chezmoi sidesteps both by storing a source copy and applying it (with templating for per-machine differences) rather than linking. That's the whole article. The 116-comment thread is where it gets interesting, because it turns into a status ladder.

Every rung sells you the next tool up

The recurring move: whatever you use, someone insists the tier above is where you really belong.

"Once you hit the Chezmoi stage, you're only about 6 months from Nix and Home Manager. I mean, why climb almost to the top of a mountain and then just sit down?" — pkulak, an engineer at Vevo

The ladder bends in the other direction too, and the most credentialed voice on it was a warning, not an endorsement.

"I rewrote nix from scratch… I can't endorse it in its current form… home-manager is maybe the most glaring instance of a tool that is demonstrably ill-posed where the 'you're holding it wrong' from the community is a community problem, not anyone holding anything wrong." — a developer who rewrote Nix from scratch

A long-time Chezmoi contributor staked out the middle from experience: "I've bounced off Nix every time I tried it… Given that it has first-class integration with secrets managers, I suspect that it does things that Home Manager can't."

The dirty-tree problem is a feature, depending on where you stand

The author's central complaint, that symlinks silently leave the repo dirty, got flipped into a virtue by people who never leave the working tree.

"I find this is a key feature. If a file is edited, git shows it as dirty, and I get to decide if I discard or commit the change. No extra steps required." — a developer who keeps dotfiles in a plain git repo

The rebuttal pinned exactly when that breaks, and it matches the author's original pain:

"you don't really see the git dirty/clean status, because you are rarely/never inside the actual git working tree… months and months later I'll pop into ~/.dotfiles and see the tree is dirty, with all these random changes I've made that I don't remember." — kelnos, a core Xfce developer

Chezmoi's own ergonomics took fire here too: several long-term users admitted chezmoi edit never became muscle memory, so they edit the live file, forget, and end up merging diffs anyway, the same friction in a new coat.

The quiet majority: a git repo and twelve lines of shell

Underneath the tool war sits a large, unbothered camp that finds the whole space overbuilt. One reply named it bluntly: "I've never really understood why people get so fancy with their setups when you can just plop a git repo into your home directory." The thread is full of these: make dotfiles that symlinks in five minutes, rsync of the whole home directory across laptops for 15 years, syncthing watching the repo via inotify so edits propagate in real time, plus yadm, rcm, mise, and a dozen hand-rolled POSIX scripts. The counter to "just use git" was equally crisp: "Git works until you need conditional logic such as platform-specific files or templating." Even the maintainer of mise showed up to demo new bootstrapping features and, unprompted, conceded chezmoi is "a darling of the community."

What the ladder is really measuring

Strip the recommendations down and they're not really about dotfiles. They're a proxy for how much complexity you're willing to host to make a new machine feel like home. The article's actual lesson is the cheap one: Stow's symlinks fail in two specific, nameable ways (writes flow backward, pre-existing files block adoption), and any copy-or-template tool fixes both. Everything above that, Chezmoi templating, Home Manager, a from-scratch Nix rewrite, buys per-machine power at a steepening cost the thread itself can't agree is worth paying. One commenter closed the loop perfectly: after reading the thread he abandoned his happy Stow setup, eyed Chezmoi, then talked himself into wanting Nix instead. "That's the HN experience for you."

Get breakdowns like this every day

The top Hacker News stories, unpacked — by email, Telegram, or RSS.

Next story · 24 of 31 Read more
🚀Tech

Zero-touch OAuth kills the MCP consent screen, and the maintainers showed up

The friction of MCP was the per-server consent dance: authorize every tool, mix up personal and corporate accounts, give security teams no central trail. The new Enterprise-Managed Authorization moves the decision into the identity provider so the screen never appears.

★ 188 · 💬 65 · blog.modelcontextprotocol.io · 4 min