Halley / Why I Still Run Hugo on Bare Metal

Created Thu, 03 Apr 2025 11:18:00 +0000 Modified Sun, 31 Aug 2025 22:17:24 +0000
237 Words

Everyone loves the promise of “no-ops.”
Push to a repo, watch the pipeline do the work, let someone else worry about uptime.

But for this site, I kept it simple: Hugo on my own machine, published via WebDAV to Fastmail.

Not because I hate convenience. Because I don’t trust it.

The Case for Static

Static sites don’t break in the middle of the night.
No database migrations, no unpatched runtimes, no surprise billing from cloud usage.

A Hugo build is files in a folder. That’s it.

Local First, Always

By building locally, I:

  • Know exactly what produced the output
  • Don’t rely on a cloud pipeline behaving as expected
  • Can rebuild anywhere with the same binary and the same content

It’s reproducibility in the simplest form.

Publishing as a Copy, Not a Deployment

WebDAV to Fastmail is laughably low-tech.
But low-tech works:

  • Sync the files, the site updates
  • Rollback is just restoring the last folder
  • No vendor lock-in, no API key rotation, no “maintenance mode”

The fancy pipelines scale better. But for one human and a text-based site, this stack is enough.

The Principle Beneath It

Every stack is a bet.
Mine is a bet that simplicity outlasts convenience.

When the pipeline fails, someone else files a ticket.
When my copy script fails, I fix it in minutes.

That’s why I still run Hugo on bare metal.
Because the fewer moving parts, the fewer places it can break.