Set Up a $4/Mo Hetzner VM to Skip the Serverless Tax
In this technical retrospective (2024), @tosh shares practical architectural lessons learned from running, scaling, or migrating production software under lean constraints.
Core Principles for Independent Builders:
Defaulting to simpler architectures (such as monolithic frameworks, SQLite, or managed VPS) prevents early engineering bankruptcy.
Evaluating true compute and egress costs reveals that high cloud bills can often be slashed by 80%+ through judicious re-platforming.
Code you write at 2 AM as a solo engineer must be easy to debug six months later without complex microservice dependencies.
Community Debate Themes:
HN engineers debated the tradeoffs between cloud convenience and raw server economics, database indexing strategies, and resisting premature architectural complexity.
CATEGORY Frugal Engineering →
HISTORICAL ERA Post-ZIRP & AI (2023–2026)
COMMUNITY SCORE ★ 89 points
TOTAL DISCUSSIONS 86 comments
The title is clickbait or maybe simply misguided in my opinion. A cheap VM and Serverless services are very different things and not directly comparable.
But I do sometimes get the impression that the simple approaches are discarded too easily today. You can rent a lot of hardware pretty cheap from Hetzner and the raw power you get is much higher than what you get with cloud services for the same amount of money. Of course the cloud also provides more stuff, but you really pay a hefty price for some of the things you get there (cough traffic).
The difference gets even larger when you look at the Hetzner root servers, that's a lot of CPU, RAM and storage for little money. And renting actual servers does seem to be overlooked a bit at times, often the comparison is between the cloud and actually buying servers and doing everything yourself.
That feels so wrong to me:
1st to install node, an arbitrary script is downloaded and executed without having a look into it. Could do anything with the system.
Then `sudo npm install -g pm2` is called. That means the stuff is installed as root "somewhere" in the system - bypassing debians package management.
Then a "process manager" is installed to start/stop/manage a service - on a system that already has systemd doing the same job.
Is that really the way things should be done? Waiting for the day when the tutorial starts with modifying grub.cfg to directly boot into node.
I’m so disillusioned with cloud/serverless/Kubernetes these days. If I were building a startup I’d just build a monolithic service, plonk it on a Hetzner VM, boom done. You can start making money.
So many startups are bleeding cash because they’ve been convinced by AWS and others they need auto scaling and self healing from day one. Just build the thing, get it running, make it good later.
I would use Hetzner more but most of my user base is in the USA, and there is a lot of added latency to having your servers in Europe. I sort of think of Hetzner like a Costco for servers - does anyone know the closest equivalent in the USA?
Update: Hetzer does have USA servers, but apparently not dedicated bare metal servers in USA (only shared/VM).
What if I'm nervous about my SQL db? I pay 12$ onwards to RDS so I can do one click backups and restores to any point in time. With a VPS, I have to make a script to cron to generate backups and test that the VPS backup has backed up the file and the file is useful. Is there a "set and forget" solution?