This site runs on Jekyll. Why Jekyll? After all I am a software engineer, why not “roll my own” and build a blog from scratch. I’ll be honest, the thought did cross my mind. It would be a fun little project to do. But that is a trap, focusing more on the tech than on what the goal should be. My goal was to write, not code, but actual human words.

The main criteria I had for this blog was that it should be a static website. No fancy front-end stacks, backend processes, or databases to manage. I wanted the posts to be regular files. There really is no need for a WYSIWYG editor, Markdown in plain text files will do just fine.

I also wanted as much of a turn-key solution as possible. I didn’t mind if I had to setup some software locally, or maybe write a little automation code to make it easy to publish articles, but this should not be all consuming.

I looked at several static site generators – Hugo, Pelican, and of course Jekyll. Any of these would have been a fine choice. To me, Jekyll seemed like it had the right mix of features, ease of use, and configurability. This was really just my preference, I didn’t do a deep dive into all the features and usage of these, so your milage may vary.

The nice thing about having all the content as simple Markdown files is that, if at some point in the future I find that Jekyll is no longer working for me, it should be pretty easy to switch. This is the main reason why I didn’t put on my serious developer hat and comb through the minutiae of each of these. Remember, the goal was to get writing.

Since this was going to be a static site, it could be hosted anywhere. Linode is my go to hosting solution. Right now, seeing as I really have no audience, this site only costs me $5.00 a month to run.

Being a developer my plan was to use a git workflow. As I am intimately familiar with using git, this made the most sense.

So, I settled on using Jekyll, git, and Linode.

Jekyll runs on Ruby. The last time I needed Ruby for a project was 2 laptops ago (yes I sometimes measure time in laptops), so I needed to get that installed.

My current workflow is to write an article locally using a text editor. I switch between Sublime and emacs. I will have Jekyll running in live reload mode, so I can see what the final product will look like. Once I am happy with it, I will commit it to git, generate the the site, and for now just copy it to my web server.

It is a bit manual but it is not too bad. Eventually the developer in me will take over, and I’ll set up a GitHub repository, and setup a hook so after I commit the change I could just push it to GitHub, and, with a little automation glue, it will get pulled down onto the web server automatically. I’ll be sure to detail that in a future article.

The whole process only took a couple of hours. From setting up Ruby, installing and configuring Jekyll, provisioning a new Linode as a web server, writing this article, and publishing it to the world, the process as a whole was easy and enjoyable. However, there were a few stumbling blocks along the way which I will explain in another post.

Thanks for visiting.