This is my first blog post in many years but I figured a great first topic would be how I created this blog. In the past when I was blogging the platform de-jour was Wordpress (does this date me?) however like most things blogging technology has newer and shiner options avaliable. The rest of this post will try and capture my thoughts throughout the design process and why I opted for what I did in regards to this blog.
Choosing a Platform
My first real step was deciding which platform I was going to use. I have fairly simple aspirations for my blog really I just want it to serve as a portfolio and a place to write down my thoughts on various topics. Really when it came down to it I only had the following requirements,
- Lets me write in Markdown
- Can be hosted easily.
- Can be hosted cheaply.
- Is simple to customize for me.
With all of that in mind I think some of the big names in blogging are mostly out things like
Wix I mostly removed these from the running because 1 I dislike PHP and 2 I don’t really need most of the features on offer from these platforms as they’re targeted at non-developers mostly. This left me with quite a few options but ultimately I wanted to use some sort of static site generator as they’re fairly simple to use mostly use
Markdown formatting. The other big benefit of a static site is I can host them where ever I want. So with that in mind I started looking into the following options,
So my first option was Jekyll mostly because it’s used widely by Github pages and is known to work for this sort of thing. I don’t really have anything massively negative to say about Jekyll but it seemed a bit complex for what I wanted to do and a tad legacy-ish not that there’s much wrong with that in fact typically I prefer it. The thing that really inspired me not to use Jekyll is that it’s based on ruby and I wanted the fastest possible site generation so it was off the list.
Okay so Next.JS really isn’t a Static Site Generator at all in fact it’s a fairly opinionated JS web framework. But it can generate static sites… so I thought why not take a look? In the past I’ve been a full stack developer and I’m not afraid of React and JS I thought maybe it would be a good option to look into NextJS. Honestly I pretty much gave up after about 2 hours of research, most the posts I saw regarding doing a simple static blog site in NextJS looked overly complex and I saw nothing but hacks to make it work. So onto the next one.
If I’m being honest I didn’t really look too deeply into 11ty their homepage itself is busy and this was enough to turn me off. The second issue I took with it is that it’s more NodeJS which honestly is probably great for the vast majority of people (myself included) but for me and my minimalisitc desires with my blog it wasn’t needed.
So this was my final stop on my journey into Static Site Generators and it’s ultimately the framework that I decided to use. It seemed straightforward, widely used and it leveraged go-lang and a simple binary to generate my site (yay!). Honestly I can’t compare the complexity of Hugo to many of the other platforms but I have a strong suspicion it’s more straightforward then the majority of them as long as you stay within the confines of what it’s good at.
Choosing a Theme
Okay so I’ve nailed down my choice to Hugo but now I’m left with a bit of a conundrum… what theme do I want to use. I took I browse through Hugo’s Themes page and nothing really spoke to me. After looking around a good bit I found a site that really resonated with me but the complexity seemed a bit high. So this lead me to end up creating my own theme
Panoply. I’ll probably reserve information about what that process looked like for another post as it’s complex enough to warrant one but I had to write CSS… and it’s been a while but I think it mostly turned out okay.
Out of everything this was the most straightforward. I love GitHub and GitHub Pages let you host any sort of static site you want and there’s even GitHub actions pre-configured for the vast majority of SSG frameworks. So I setup the GitHub action for Hugo and simply pushed my site’s basic content. Behind this there was really only one step left which was configuring DNS records on my registrar of choice (Google Domains) and then generating an SSL certificate which is a simple one click process to do with GitHub Pages (they use LetsEncrypt yay!)
Honestly this process took me more or less 3 days, the actual process of building a theme and setting everything up was probably about 4 hours of work but finding the inspiration to get the site setup in the way that I wanted was pretty time consuming. I think for most people this process could be done in a single afternoon with some coffee though.