When I originally created GeoJS back in 2017, it ran on DigitalOcean and Vultr clouds with traffic being load-balanced by AWS’ Route53 DNS service. I was extremely lucky that DigitalOcean sponsored the project for the first few years, completely covering the cost of the servers hosted by them.
GeoJS ran like this for two years until the amount of all the DNS lookups meant the Route53 bill started exceeding $50 AUD a month. I was lucky enough to qualify for Cloudflare’s open-source program, so GeoJS moved behind Cloudflare. With Cloudflare soaking up the majority of the DNS requests, only forwarding the ones from their POPs onward, costs came back down again to a more manageable level. GeoJS still runs behind Cloudflare today, which I’m extremely thankful for.
One year later, and DigitalOcean’s sponsorship had run out, so I ended up removing the Singapore node to further save costs.
Two years later as the platform got more and more popular, AWS Route53 costs started rising, again hitting ~$100 USD per month. Route53 costs combined with DigitalOcean’s sponsorship running out meant a further reduction was required and the Australian hosted backend got removed. This wasn’t a huge problem as it received the least traffic of all the backend servers.
At this point I’m paying for the GeoJS servers out of my own pocket along with bandwidth overcharges1 of ~1TB per month and to be honest, I just wanted to simplify the whole setup. AWS Route53 complicated things beyond what the platform required. A small amount of downtime in the event of an outage for a free platform is more than fair, and given how stable everything was, I didn’t need to continue to load-balance.
Running GeoJS itself doesn’t require anything major. Servers with minimal resources are more than adequate thanks to OpenResty’s amazing performance. Due to its popularity, GeoJS does however require a decent amount of bandwidth, using anywhere from 3-4TB per month. I also wanted servers in the US due to that being where the majority of the traffic originates from.
Enter Hetzner. US servers ✅ Lots of bandwidth ✅ Good prices for dedicated CPU machines ✅ (Technically, GeoJS doesn’t need this, but it was a really nice bonus).
So a few months ago GeoJS made the move and has been running solely off Hetzner since September 2024. Route53 is no longer involved in the setup which means Cloudflare no longer has to do DNS lookups just to route traffic and lower costs to run the project.
GeoJS now runs from a single CPX11 machine running in Hetzner’s Ashburn, VA data center. There hasn’t been a single problem.
There isn’t much more to say. The previous servers used to struggle under the load, but there hasn’t been any outages since the move (apart from me patching the servers). I couldn’t be happier.
TL;DR: GeoJS is now hosted on Hetzner, and things are going great. The move was a success, costs are now lower, and everything is more stable. Any questions please contact me.
If you or your company uses GeoJS, please consider sponsoring the project on GitHub Sponsors. Help make the platform sustainable. ❤️
-
Funnily enough Hetzner have now announced bandwidth changes which mean I will have to start paying bandwidth overcharges again but they’re a lot lower than what I was paying previously. ↩︎

Comments
Nothing yet. Say the first thing.
Sign in to join the conversation.