I’ve had a few generations of websites in my time, most recently, an oldskool handwritten HTML site.

Here’s that whole site in an iframe:

I had opted for a handwritten html site for a few reasons:

  • I wanted very cheap (free) hosting
  • I’d heard that you could host a website for free in an Amazon S3 bucket provided it was a static site (and it felt like valuable experience using S3, given that I was interesting in learning all things AWS)
  • I wanted total control of the site without my choices being limited by the capacities of a CMS like Wordpress
  • I could throw something together quickly and get it online

So what happened?

Unsurprisingly, I quickly ran up against the problems that had led humanity towards the invention of the CMS, and away from handwriting html websites.

I didn’t want to have to manually write an html document each time I put out a blog post, nor did I want to fiddle with manually copying the core structure of the page (e.g. the header and footer) for each page I wanted.

Instead, I wanted:

  • To write my posts in something code-light like Markdown, using a system which could compile that markdown into a static site.
  • To be free to edit the site and its content locally, whether or not I have an internet connection.

Looking into this concept led me to Jekyll - a CMS written in Ruby and incorporating Sass & Liquid, which compiles a collection of Markdown documents into a static site. On top of that, it can be used to power a free-hosted site on Github Pages - which is how you’re reading this post. I can add and update posts locally as Markdown documents, then compile the whole site and push to Github, automatically updating the site.

I’m using a heavily modified version of the Minima theme, which provides many sensible defaults and a useful structure for creating your own site.

Everything in this site can be seen in its Github repository.