Hacker News Viewer

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

by sthottingal on 3/29/2026, 6:56:04 AM

A developer&#x27;s machine accumulates tools fast. A Rust CLI you compiled last year, a Python formatter installed via `uv`, a language server pulled from npm, a terminal emulator from a curl script, a Go binary built from source. Each came from a different package manager, each with its own install incantation you half-remember.<p>I wanted a way to declare what I need without adopting a complex system like Nix or Ansible just for a single laptop. The result was a plain old Makefile.<p>I wrote a short post on using Make (along with a tiny bash script and fzf) to create a searchable, single-command registry for all your local dev tools. It’s not a new framework or a heavy tool—just a simple way to organize the package managers we already use.<p>If you&#x27;re tired of losing track of your local environment, you might find it useful.

https://thottingal.in/blog/2026/03/29/home-maker/

Comments

by: bargainbin

If you haven’t tried it, I highly recommend Mise. It manages everything at the user level so it’s not as “all encompassing” as Nix and is readily compatible with immutable distros.<p><a href="https:&#x2F;&#x2F;mise.jdx.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;mise.jdx.dev&#x2F;</a><p>Your solution is akin to putting your dotfiles in the code repo, which is going to cause issues with languages with poor version compatibility (such as node and python) when switching between old projects.<p>Also, bold of you to assume developers know make and bash just because they’re using Linux!

4/3/2026, 4:53:28 AM


by: theowaway213456

Five years ago, I would&#x27;ve loved this. I love the simplicity and power of good old Make. And I obsess over my workstation&#x27;s configuration. I used to have a massive bash script I would use to reprovision my workstation after every clean upgrade of Ubuntu.<p>But these days, I just tell codex to install things for me. I basically use it as a universal package manager. It&#x27;s more reliable honestly than trying to keep up to date with &quot;what&#x27;s the current recommended way to install this package?&quot;<p>I also have it keep a list of packages I have installed, which is synced to GitHub every time the list changes.

4/3/2026, 4:46:11 AM


by: tpoacher

I have something somewhat similar here: <a href="https:&#x2F;&#x2F;git.sr.ht&#x2F;~tpapastylianou&#x2F;misc-updater" rel="nofollow">https:&#x2F;&#x2F;git.sr.ht&#x2F;~tpapastylianou&#x2F;misc-updater</a><p>The main difference is I initially only needed a mechanism to check if my &quot;Manually-Installed or Source -Compiled&quot; (MISC) packages have updates, but now it also supports install&#x2F;upgrading too.<p>In other words, things I am forced to do by hand outside of a package manager, I now only do by hand once, save it as an &#x27;install&#x27; script, and then incorporate it into this system for future use and to check for updates. Pretty happy with it.

4/3/2026, 5:54:46 AM


by: tmarice

I’ve been using devenv.sh for the last year for this, and never been happier.

4/3/2026, 6:16:42 AM


by: ekropotin

I think you are re-inventing the wheel <a href="https:&#x2F;&#x2F;github.com&#x2F;nix-community&#x2F;home-manager" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;nix-community&#x2F;home-manager</a>

4/3/2026, 4:45:24 AM


by: esafak

you can declare tools and tasks with <a href="http:&#x2F;&#x2F;mise.jdx.dev&#x2F;" rel="nofollow">http:&#x2F;&#x2F;mise.jdx.dev&#x2F;</a>

4/3/2026, 4:52:58 AM


by: rheakapoor

[dead]

4/3/2026, 6:17:56 AM