Building Infrastructure Skills: A £3.93/month Learning Lab

For £3.93 a month, cheaper than a pint, I'm running a complete production infrastructure stack. Here's what I'm learning about container orchestration, service discovery & production systems.

The Project - personifi

For a long time I've been interested in personal finance & how to utilise your money & wealth to live a life of your own desires. As a young adult, that involved saving aggressively to purchase my first house. To then strict budgeting, planning & forecasting into my twilight years.

I've been tracking my family's net worth & budget since the 26th of September 2016, when I was working my first big boy job after graduating, all the way to now in two Google Spreadsheets (I'm too cheap for Excel). However I feel that now is the time to graduate from this platform to something a bit more mature & purpose driven [my Net Worth sheet goes to column XE].

It's for this reason that I'm creating a personal finance web application called personifi.

The initial users of this application will be my Wife & I, but I'm planning on opening this up to the world to utilise if they so wish (because the world is short of personal finance apps 😉).

The Stack

I've decided to use Next.JS (because I know it well), .NET (because I like it) & Postgres (because you don't need anything else). I'm utilising other tools as well, such as Claude Code, but my main stack is Next.JS, .NET & Postgres.

The Deployment

To make this come to life, I've been thinking about how to deliver this to end users & have arrived at a solution. I'm going to utilise a Hetzner VPS, running Hashicorp Nomad to orchestrate my front-end, back-end, Traefik & utilising Supabase for the DB.

I did a lot of thinking about this, considering Vercel for the front-end & Koyeb for my back-end, but ultimately thought it may be worth it to spend a (very) small amount of money to get both my front-end and back-end colocated while also evolving my infrastructure & DevOps skillset.

What does £3.93 a month get you in 2025?

For the low, low cost of €4.55 a month (~80% the price of a pint in Scotland) you could lease a server from Hetzner with:

  • 2 VCPUs (Intel® Xeon® Gold)
  • 4 GB of RAM
  • 40 GB of NVME storage
  • 20 TB of traffic
  • One IPV4 address (You can save €0.60 if you can go without it. Turns out I can't because my ISP is Plusnet)

Now I, personally, think that's a pretty good deal.

That set of resources can either be a lot or not very much, depending on what you want to do with it. Looking to run a social media platform with 5 nines of uptime? Probably not going to get you very far.

But running a small (2-person) front-end and back-end with intelligently chosen orchestration tools? Well for that purpose it fits the bill. I reckon that this setup could probably handle a couple hundred DAU without too much of a struggle (my previous record is 0) and if/when it starts to struggle, then it should be easy enough to vertically scale with a click of a button & flick of my credit card, before starting to think about real scalability.

Why not Kubes?

Kubernetes is the obvious choice for container orchestration, but it's overkill for this setup. K8s excels when you're managing hundreds of services across multiple nodes - I have three services on one server.

The control plane alone would consume 1-1.5GB of my 4GB RAM before running any actual applications. Nomad uses around 50MB. That's a significant difference when resources are constrained.

Beyond the resource overhead, Kubernetes introduces operational complexity that doesn't provide value here. Pod disruption budgets, horizontal autoscaling, and complex RBAC policies are powerful features when you need them. For a personal finance app with two users, it's just extra configuration to maintain.

Nomad gives me the orchestration I need want (service scheduling, health checks & rolling deployments) without the enterprise-scale complexity. When this grows to require multi-region deployments or thousands of services, I'll consider Kubernetes. For now, Nomad fits the scale perfectly.

What I'm learning

Running your own infrastructure forces you to understand the components that managed platforms abstract away. When Traefik can't route traffic to your backend, you learn how service discovery actually works. When a container crashes and doesn't restart, you understand the difference between health checks and readiness probes.

This setup teaches operational thinking rather than just development skills. You start considering questions like: What happens when this service is unavailable? How do I ensure zero-downtime deployments? How much memory does each component actually need? These aren't academic exercises when your application stops working.

Resource constraints breed better architectural decisions. With only 4GB RAM, every service needs to justify its memory footprint. You can't just throw more resources at performance problems - you have to understand where bottlenecks actually occur and optimize accordingly.

The full-stack perspective is invaluable. You understand how DNS resolves to your load balancer, how SSL certificates are provisioned and renewed, how containers communicate across the network. There are no black boxes. Every component is something I configured and can debug.

Perhaps most importantly, you develop genuine problem-solving skills. When something breaks, there's no support ticket to raise or managed service to blame. I will need to debug, fix, and learn. That hands-on experience with production systems is difficult to replicate in any other way.

Conclusion

This isn't the right approach for everyone, managed platforms exist for good reasons.

If you're building revenue-generating applications that need guaranteed uptime, the operational overhead isn't worth the cost savings. But if you're an engineer curious about what happens beneath the abstractions, £3.93 is a small price to pay for a complete infrastructure education.

You'll understand systems in a way that no amount of documentation reading can teach, and that knowledge scales far beyond this single project.

I'd like to acknowledge my companion while creating this article, Claude. While the content of this story is true to my life as I remember it, Claude helped me in crafting it into an engaging text that I hope you enjoy.