Creating a Personal Website and Blog in an Hour

Recently, the inimitable Geoff Huntley, a colleague of mine, gave an internal presentation talking about how he manages his online persona and brand. One thing I was inspired by in his talk was how deliberate Geoff is in this space, and the value he gets from his brand, and his website.

I asked Geoff what he used for his website - half expecting it to be some crazy Rube Goldberg like technological marvel.

I use Hugo for the static site, as it has a lot of built in bits. And I use Netlify for hosting.

That sounded reasonably palatable. So come Sunday, and a small window of spare time, I went tech-shopping.

  • First I went to Hugo to retrieve its latest release in binary form
  • Next I added hugo to my PATH variable
  • I then followed the Hugo quick start

Now I had a functional blog platform running locally. A little bit of theme shopping (hot tip: don’t use submodules as suggested for themes, they cause Netlify some angst), and a self-portrait and favicon later, I had something I could push out as the skeleton of my website.

My website was now housed somewhere where I, and others, could contribute to it.

  • I then went to Netlify and signed up using my GitHub account
  • I clicked the large, prominent New site from Git button
  • Selected my repository from GitHub, which required no further authentication thanks to me having signed up with my GitHub account
  • Set up Continuous Deployment of the site - Netlify correctly identified it was a hugo repository and added the correct settings for this, so there was nothing for me to actually do to enable this
  • Enforced HTTPS for the site by clicking a button, which Netlify does via LetsEncrypt
  • Set up custom DNS

Upon setting up DNS I paused and purchased a domain name via my account on DNSimple. Netlify helpfully supplies you CNAME and ALIAS instructions for primary www and secondary bare urls, so without much thought I was able to plug those into DNSimple’s domain management.

Total time was little more than an hour. It would have been less if I didn’t have to stuff around with submodules.

Total cost was $14 for the domain name. That is all.

And it all. Just. Worked.