I've rebuilt my website for the last time (hopefully)

I think I’ve finally done it.

I’ve finally settled on system for my personal portfolio/blog website.

In the past I’ve tried a few different approaches, from self-hosting static pages on a Raspberry Pi, to hosting WordPress (and the LAMP stack) on bare metal in the cloud.

While I’m a big proponent of self-hosting whenever possible, I feel that services designed for public access are best left in the cloud. This allows for high availability without any of the risk that comes with opening your home network to the world.

Plus, I’ve been using Starlink as my primary internet provider for the last 15 months, and let’s just say the service isn’t up to the challenge of hosting public interfaces just yet.

Enter Hugo

I first heard about Hugo when I learned about automatic document generation with Pandoc. Hugo is an open-source static website generator that can take markdown files and turn them into a fully functional website.

A lot of websites these days have become slow and bloated (cough WordPress cough). And after trying dozens of WordPress themes, I just couldn’t find one that was simple and provided a snappy user experience.

That’s where Hugo comes in. Using Hugo I can generate static pages that load fast and provide a great user experience without any of the bloat. These static pages also require much fewer resources, so if I wanted to I could even go back to hosting on a Raspberry Pi. However, I’ve found a much better way to host my website, and it’s free!

Free Hosting?!

After building a local Hugo server with Docker, my first plan was push content to my GitHub where I could then build and host a container on AWS. But then I learned that DigitalOcean offers an automatic workflow to deploy Hugo sites directly from GitHub. Using their “Starter Plan”, up to 3 static sites can be hosted for free.

Keep an eye out for my future posts. I’ll be putting together a detailed guide on how to get your own Hugo site up and running. I’ll also be backfilling the site with some projects I’ve worked on in the past.