Requirements for my blog

I had several requirements for my blog

  1. I had to own the domain
  2. SSL Support
  3. Static Website
  4. Low Friction
  5. Under source control

Overview of Software Used

Github

Github is what I used for source control. I have a plan with them and there are a wide variety of tools that support git/github. This solves the source control problem.

Hover

Hover is my domain registrar. I have no problems with them and have roughly 10 domains under them.

Firebase

Hosts the blog and provides free SSL. I also use the free plan!

CircleCI

Handles the generation of the blog

Hugo

Software used to generate the blog

Flow

  1. Write Post
  2. Commit and Push the blog to github
  3. CircleCI automatically sees this change and runs a script
  4. Script pulls the code from github
  5. Hugo is ran which generates the HTML
  6. Website is then uploaded to firebase
  7. Site is available! Yay!

Problems

I found a lot of problems in switching versions of Hugo. I have pinned Hugo to v30 with Windows, OSX and Linux executables checked in with the blog. This allows me to generate and preview the blog on all platforms without worrying about version problems. I had a problem with version differences that caused the in memory to work perfectly but the production version would only create xml files. It is a bit complex but now it is all automated.

Pluses

The website is quick and lightweight. Automated, source controlled and I own it. Ownership, ease of use and cost are reasons I don’t use Medium, Ghost, Wordpress and other platforms.

Why am I doing this?

I wanted to go over the process for building my blog.