Dylan Myers

I left the hyperscalers for Europe. It wasn't so simple.

A person holding the flag of the European Union atop of a snowy mountain peak
Credit: Antoine Schibler/Unsplash

For me, the priority with hosting personal projects has always been to run them as cheaply as possible, because I don’t monetise them (partly out of a lack of confidence but mostly because I don’t need to). This naturally skews toward American offerings, with multiple variables leading to unbeatable prices - Hyperscalers earning higher margins on enterprise customers who are locked in, “free tier” pricing to entice developers to adopt platforms, high venture capital liquidity, etc. My monthly AWS bill is less than £0.50 a month, and I’ve never paid Cloudflare a penny. Recent incidents and developments in the US legal environment (gestures broadly at everything) have given me the motivation to move my deployments closer to /home.

The strong data privacy laws of the European Union and interest in supporting the underdog has led me to find the best balance between EU hosting and affordability.

The research

Thankfully, I haven’t been alone in this, I had a few resources to work off of. Steve Frenzel shared his similar journey. Meanwhile Peter White and Thilo Maier shared some alternatives they found and difficulties they encountered. As always, a number of Reddit threads provided a glimpse into the hivemind on this subject matter.

The main themes I found from my research are that:

The requirements

First, I took inventory of my digital estate, so to speak. I run a couple of static generated sites, including the one you’re reading this on right now (fourth wall break!) and projects like ISA Eye. Some of these sites make use of serverless compute, object storage (and a CDN fronting said storage), and more niche services like image optimisation. I turned this into a map:

A chart of the "before" infrastructure.
A chart of the "before" infrastructure.

I distilled down my needs to these three guiding principles:

  1. The provider should be headquartered in a European country: just having a point of presence in Ireland isn’t enough, Microsoft. That being said, I’m not going to research the CEO’s family tree.
  2. A budget of £8 a month, overall: £100/year feels like more than enough for some simple web apps and light workloads including serverless functions. Prioritise free tier availability and pay-per-use pricing.
  3. Loading times should not be affected: Even for hobby projects, speed is important because I still want people to look at what I’m doing and not bounce. Solutions should still prioritise low latency as much as possible.

(I drew up some bonus criteria as well: Terraform/OpenTofu support, free email/Discord support, (meaningful) carbon offsetting, and good ratings on platforms like Trustpilot, G2 and Capterra.)

This should be easy peasy, right? Wrong!

The struggle that ensued

I found some fantastic resources for researching possible solutions for this project. European Alternatives is run by Austrian developer Constantin Graf and was a great starting point. There’s also the European Cloud Alternatives wizard and Georg Kalus’ European Cloud project, both of which cover some services not listed on the former’s directory. Finally I trawled through search results, Reddit and recommendations from friends and colleagues.

The first struggle I encountered was the number of services aimed at enterprises rather than individual developers. The telltale sign of this was request-only and flat-rate pricing offers, which just aren’t feasible for an individual developer’s budget.

Some American services are truly unique: Vercel’s serverless deployment of server-side rendered web apps has no competition in Europe. Instead you’re expected to run the server as a Node.js app in a custom Docker setup. That means no one-click deployments (without deploying solutions like the aforementioned Coolify), no auto-scaling and no tight platform integration. Similarly, it was a real struggle to find a decent European domain registrar with the level of control that Porkbun provides. That was probably the most painful service to leave behind.

You’ll also find that not everything is as it seems: I ended up abandoning multiple providers due to being misled by pricing (minimum spend requirements, hidden up-front fees, etc) and nonexistent/unprofessional support. To focus on one facet of the setup, many of the most popular object storage services don’t support an S3-compatible API, which is a must for me because so many tools and CDNs depend on it. But I’m not here to slag off anyone.

The final setup

Here’s what I got up to over the Christmas break:

A chart of the "after" infrastructure.
A chart of the "after" infrastructure.

Starting from the bottom up:

Generally, I’ve found that this setup is serving me well: budget-wise I’m paying around £5 a month which is significantly more than before but certainly manageable; speed-wise, I cannot see any meaningful difference in Lighthouse tests.

I’m not missing the extreme level of detail and labyrinthine setup processes that AWS offered. As someone who didn’t make much use of the nooks and crannies AWS offered (like Lambda Layers), I can’t tell you if these solutions are right for you and your needs but certainly for my personal projects I’m happy with where I am. ∎