Show HN: Home Maker: Declare Your Dev Tools in a Makefile

One-file setup sparks Nix vs Make vs AI smackdown

TLDR: A developer shared a one-file way to reinstall all your tools, using plain Make commands. Comments split fast: Nix fans say it already solves this, Mise users pitch a lighter path, and one voice shrugs that AI now installs everything—simplicity vs full systems vs bots, in one spicy thread.

A dev dropped a super-simple idea: list every tool you use in one Makefile and reinstall them with one command. No new app, no fancy format—just a text file and the commands you already use. It’s a tidy fix for the “new laptop amnesia” problem, and fans rushed to the repo like it’s spring cleaning. But the comments? Oh, they lit up.

The loudest chorus: the Nix crowd. One early reply barked, “I think you are re-inventing the wheel,” linking to Nix Home Manager, which already turns your whole setup into a reproducible recipe. Meanwhile, a rival fanbase hyped Mise, pitching it as a lighter, user-level way to manage tools without going full Nix. One commenter even warned this Makefile feels like “putting your dotfiles in the code repo,” a salty burn only developers can love.

Then came the plot twist: the AI crowd. One user said five-years-ago-them would’ve loved this—but now they just ask “codex” (an AI helper) to install everything. Translation: why write a recipe when a robot chef will cook on demand? Others chimed in with DIY scripts like misc-updater, proving the “roll your own” spirit is alive.

Beneath the memes—“one Makefile to rule them all” was everywhere—the real fight is clear: simplicity you can read, heavyweight reproducibility, or let AI do the chores. Welcome to Tool Wars: Kitchen Edition.

Key Points

  • Home Maker uses a single Makefile plus modular .mk files to declare all dev tools across multiple package managers.
  • Tools are grouped by manager via variables (APT, CARGO, UV, GO, NPM), with optional PKG_ overrides for differing package names.
  • The Makefile defines install commands, helper functions for name@version parsing, and generator macros per manager.
  • Foreach expansions produce .PHONY targets so running make <tool> executes the correct package manager command.
  • The system avoids pre-checks; package managers handle idempotency (apt-get skips, cargo upgrades, uv reinstalls).

Hottest takes

"I think you are re-inventing the wheel" — ekropotin
"these days, I just tell codex to install things for me" — theowaway213456
"Your solution is akin to putting your dotfiles in the code repo" — bargainbin
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.