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.