This is post number 1 in my 100 Days To Offload challenge. View all posts or subscribe via RSS.


Over the past few months I’ve made a few changes to my blog, prompted by this comment on Lobste.rs. This part really got me going: “Definitely feels more like “underperforming CMS with database” than static site.”

Since then, I have:

  • Moved from DigitalOcean Kubernetes to Vercel
  • Updated the theme to the latest release
  • Made some generic performance improvements, based on Lighthouse reports

Most of this has been to reduce load time, so that the site should load instantly.

As much as I love messing around with Kubernetes and having a complicated pipeline to deploy changes to my blog, there’s quite a few downsides:

  • The complicated pipeline
  • Unnecessarily large container images. Despite this being a static site, if I’m using Kubernetes, I still need to use a container to serve the files. I’m using nginx to do this, which also lets me do some fancy URL rerouting. Ultimately, this means requests are routed via a load balancer, to an nginx ingress deployment, and then to another nginx container that serves static files. That’s a lot of effort!
  • A more complex process means I focus less on content. You’ll notice I only managed three posts last year.
  • My Kubernetes nodes are hosted in a single data centre in Singapore, so content isn’t available at the edge. Some visitors will inevitably experience poor load times.

Vercel is quite the opposite by comparison:

  • Simple pipeline. All I had to do was log into Vercel with GitHub and click a few buttons to set up a new deployment. It worked out I’m using hugo on its own, and there was zero configuration. I now get a free deployment for every commit, and even pull request previews.
  • Build times are astonishingly fast. Where I used to have to wait up to 4 minutes for a build, I now wait roughly 30 seconds.
  • Edge caching. Vercel deployments get pushed out along their edge network. Regardless of where a visitor is, this blog should load quickly.

So, what do you think of the load times? Is there anything else I should change? Let me know via Twitter, Mastodon, or email