Over my parental leave I migrated my personal website from Wix to a Hugo site hosted on GitHub pages. Wix ended up costing too much for the value it provided, but I’m sure it’s great for professional companies who need a no code solution.

This site runs entirely on GitHub Pages which offers free hosting, automatic updates via GitHub actions, generation and rotation of SSL certificates, and best of all gives me full control over the layout and content of my own personal website.

The Hugo theme I landed on is Terminal which is minimal with no frills. There are a lot of cloud options available on where to host a Hugo website since it is static in nature. You can pick AWS S3, GCP GCS, Azure storage, etc. Normally I would go that route and deploy to a cloud storage service and configure a load balancer for SSL, but I wanted something where I had to do as little as possible. Enter GitHub Pages.

Per the Hugo documentation: “GitHub provides free and fast static hosting over SSL for personal, organization, or project pages directly from a GitHub repository via its GitHub Pages service and automating development workflows and build with GitHub Actions.” After migrating my domain from Wix to GCP Cloud Domains I was ready to deploy.

To deploy and configure end to end I followed the below steps:

  1. Wrote the content in Markdown
  2. Created a GitHub repo with my username and “github.io”: jdyke.github.io
  3. Followed Steps here
  4. Read GitHub’s documentation about custom domains
  5. Configured DNS via the docs
  6. WAITED A DAY!! <- This is key for DNS to propagate and GitHub to fully deploy SSL and infrastructure.
  7. Verified my domain via the docs

Now to update my website it is as simple as merging code into the main branch and allow the GitHub Action to deploy.