Hugo and Me

Posted on Apr 22, 2024

This site is built using Hugo. It was an extremely painless experience. (So far) I’m quite impressed how easy it is to host your own site these days.

The process, for me, has approximately been:

  1. Buy your domain from a domain registrar
  2. Get a static IP from your ISP
  3. Set up a DNS to point to your server (I choose Cloudflare because it was free)
  4. Get some old computer and install an OS and web server (I choose Ubuntu Server and Nginx)
  5. Get a static site generator and build your site (I choose Hugo)

For me, configuring the DNS was by far the most arcane step. There are a few items that are not very intuitive. Like, what is the difference between the record types and what do I need to configure? Part is also figuring out what is marketing from your registrar, marketing from Cloudflare and what you actually need. For instance, one of my registrars offers DNS in two different ways and it was not obvious which option was to have DNS externally (at Cloudflare) and which was to pay the registrar to manage DNS.

Installing an OS and web server can be a long and frustrating process, but I’ve found DigitalOcean has very good tutorials for this, at least for web server installation. They generally also include information how to configure firewalls and other things you should consider. Someone with a little programming experience and have worked with a terminal should be able to figure it out, though.

What’s the upside?

So, why go through the trouble when you can just create a blog at Medium or Substack?

For me, it boils down to one thing: I completely own the site. If I need to switch from a static site generator to a web app, I could (with a bit of effort) migrate all content. I’m owning and controlling the data as well as the functionality.

Downsides?

Of course, the main downside is that you are responsible for the maintenance of the site. If it goes down, no one is going to fix it for you. If you see a lot of traffic, you will need to handle that somehow. I’m running this site, and a Django web app, on a 10 year old laptop. How much traffic can it handle? How much traffic will the site(s) realistically get? I don’t know.

You also won’t get automatically get new features or tools. And security is your own responsibility.

Summary

I must say I’m quite optimistic with this. I already had the server set up, so it took me about an hour to have this blog up and running. (Not quite, as I mismanaged some git submodules and discovered an issue with the selected theme) Once you have the basics figured how (what pieces are needed to move from the user entering a domain name in their browser, to the user being presented with your site) it’s fairly straight forward.

There are many options for each piece of the puzzle. I don’t think it would be very difficult to change down the road if you want to. Compared to switching from Medium to Substack, I think migration between these technologies is easier. 1

I’m not locked in to a specific platform. I don’t really have a purpose with this site at the moment, so whatever direction I feel like taking it I can likely do that. I’m aware of the limits with a static site generator, but for what I need now it feels appropriate.


  1. Caveat: I haven’t actually done any of them ↩︎