Maintenance

The boring stack is the one that's still running

ยท 4 min read

When you work alone, you are also the on-call engineer, the support desk, and the person who has to remember how the deploy works eight months from now. That last one is the one that gets you.

I used to pick tools for how nice they were to start with. Now I pick them for how little they ask of me later.

Every moving part is a future chore

A framework upgrade, an expired API key, a build step that depended on a version of Node you no longer have installed. None of these are hard problems. They're chores, and chores compound. A project with ten dependencies has ten separate things that can quietly stop working on a random Tuesday while you're focused on something else.

So I count moving parts. For a small tool, the question isn't "what's the best stack?" It's "what's the fewest things that have to keep working for this to keep working?"

What that looks like in practice

This site is a good example. It's plain HTML, one CSS file, and one small function that logs visits (the Privacy Policy says exactly what it records). There's no build step, no package manager, and no framework. A push to the repository is the whole deploy. If I need to fix a typo from my phone, I can do it in the browser in a couple of minutes.

The same principle scales up a little. For tools that need a backend, I reach for one serverless function before I reach for a server. For data, a single hosted table before a cluster. For scheduling, the platform's built-in cron before a job queue. Each of these can grow later if it has to. Most of the time it doesn't.

Boring fails loudly

The underrated benefit of a boring stack is that when it breaks, you can tell why. A static page either loads or it doesn't. A function either returns or throws. There's less room for the worst kind of failure, where everything looks fine and nothing works.

A test I actually use

If I can't redeploy a project from a clean machine in five minutes, with nothing but a browser and my notes, it's too complicated for one person to own. That rule has talked me out of more clever architecture than any post about clever architecture has talked me into.

Boring isn't a lack of ambition. It's what lets a solo founder keep shipping new things instead of maintaining old ones.

โ† All notes