My blog with Jekyll, Part 1 : Introduction

6 minute read

LET’S WRITE A BLOG

For two years, I’ve been thinking about writing a blog. I wanted something like an online journal of my experiments and thoughts about my journey in the IT World. I had the conviction that it may help me getting better at acquiring, manipulating and sharing knowledge. I’m an avid reader and not only was I comforted in these thoughts by the books and articles I read but reading these great contents lead to the arousing of the feeling of writing to express. But I’ve never started… until recently, when my current favorite person metaphorically kicked my ass about that blog thing.

So, after professionally procrastinating for 2 more month min, I’ve finally begun to actively think about how to do it (mean to skim internet for ideas) until I found some satisfactory things. And since this blog is a kind of experiments journal, my first (series of) article(s) will be about the decision, making and customization of this blog.

To keep it simple and focused, let’s break it into three articles:

  • Part 1: Introduction - This page, which is all about why I wanted a blog and why I choose Jekyll over the others.
  • Part 2: Setting things up - Step by step details on how to install everything… kidding ! Let’s just say I will talk about installing and configuring Jekyll and all the other the tools I’ll use with for a pleasant experience. In one word focus on the infrastructure.
  • Part 3: Customization - The theme choice, the plugins I’ve installed, the design.

JEKYLL, BLOG-AWARE STATIC SITE GENERATOR

Jekyll is in essence a static website generator written in Ruby language and created by Github co-founder Tom Preston-Werner. Using some raw files (markdown, scss, js, html, with template engine code/markup/variables), it generates some good old html, css and eventually js (for a cough ‘more dynamic’ static website). Jekyll website are generally written using a combination of markdown, html, scss and js file. In 2017, Jekyll was the number one static website generator according to Netlify.

Where it’s great

  • Since the files are static; that means that the server doesn’t need to waste time computing the files. It directly serves it on every request making your website a bit more fast by design.
  • Still thanks to the fact that these files are static, the website is a bit more secure by design. Since you don’t need a server to do computation, nor do you require a database there’s not many ways nor need to hack your server to fetch confidential information.
  • You can write in Markdown, a markup language that is mean to be translated in html. It’s light, easily readable and translatable for botch machines and humans, for short I’m in love with the shape of it. The traditional Readme file of git repositories are written in markdown.
  • It’s light. It starts with minimum functions, then you can add the things you want piece by piece. That way you are almost sure to avoid end up with a cumbersome blog with no desired functionalities.
  • It has some really nice concepts (posts, draft, layout, partials, variables, data, collections etc.) that really helps to properly code a website of a short to medium high size.
  • Free and performing hosting can be achieve easily thanks to a plethora of offers. The most notables are Github Pages, Gitlab Pages and Netlify.

Where it falls short

  • Ruby sucks Nope but hey, I wanted to write a silly line here.
  • The absence of an online managing interface for writing articles and managing your website out-of-the-box à la WordPress.
  • The need for a blog contributor to have a copy of the website VCS repository and a functioning Ruby environment to be able to contribute. These contributors need to be comfortable with the used VCS system.
  • Installing plugins to add missing functionalities require to mess with site files and rebuild the website.
  • Every change require to rebuild the website.
  • Overall you need a good IT background to setup your website, but also to add content.
  • The time needed to generate your website will go exponentially with the content quantity.

THE OTHER ‘BLOGGING PLATFORMS’

WordPress, bloggers’ default choice

The number one blogging platform, being used on almost 30% of the web. It’s ecosystem is insanely large, with plugins and themes in all genres, hosting platforms offers tailored for it and developers proudly labelling themselves ‘WordPress developer’. Not only great for blogging, WordPress is a Content Management System and people use it for blogs to enterprise website.

While WordPress is great when you find the right themes and plugins and even offer you free hosting under conditions, I didn’t choose it mostly because I really don’t like it. Yep, personal preferences. I found it a bit cumbersome, too hack prone and owning a really messy code base when coming to extend it. And the content management system thing… nothing wrong with that… just beating a dead horse… did I say personal taste ?

Medium is the new (hot) blog

Medium is an online publishing fancy way to say en-masse-blogging platform which claim to be all about focusing on user experience and time spent reading your posts than size of user-base. Their theme is gorgeous and since Medium have a large user-base (According to the company, as of May 2017, Medium.com had 60 million unique monthly readers), their promise is something like ‘We have a great user base avid of great content, so post some great one and let the user flow rocks !’. Their website and offers are really interesting and great tech companies but also blogger are moving there blogs on it. An they even remunerate authors…

Medium was a close call. Their promises really had a hit on me but I wasn’t fond of having my blog solely depending on it. Their theme is gorgeous but they’re no way to change it. Moreover they don’t support my beloved Markdown code highlighting functionality (easily circumvented with Github Gists) and last but not least the Mediumisation may just be a hype. So I decided to cross-post some of my articles on Medium because sure you can’t chase two rabbits at the same time when these two darlings run straight ahead of you…

Ghost : eat, sleep, think blog

Ghost was founded by John O’Nolan, former deputy lead of the WordPress User Interface Team, frustrated by the complexity of WordPress as a blog. To summarize, Ghost is like medium, minus the community part and the popularity and plus the possibility of hosting it for free (as in not paying for Ghost).

Have I not fallen for Jekyll, I would have surely go with Ghost, self-hosting or paid plans as I found it after being really advanced with Jekyll. But there’s this little feeling that Jekyll is more customization ready than Ghost, which is a big requirement for me.

Hugo: Need for Speed static-site-generator

Hugo is yet another static site generator this time written in Golang the language with the world’s ugliest mascot. It is accepted as one of the fastest if not the fastest static site generator ; at least they market themselves as such.

There’s nothing much to say about it. It lost the competition mainly because although it was like Jekyll, it wasn’t big enough and all it seemed to offer more was speed of build. So I’ve decided to just keep it on watch.

Blogger…

slap-blogger-evangelist

The picture say it all. But hey, uptime seems great because Google… I think.

Finally, why Jekyll ?

With all the reason I precised above, I want to own my content and use a platform with a really minimal base that I might extend if the need arose. Moreover, I’m confident that I can address most of the challenges posed by Jekyll. And it’s seems fun.

Now that we have chosen the blogging platform, let’s rock ‘n’ roll.

ACKNOWLEDGMENTS

Thanks to Mariam Nourya Koné for reviewing and suggestions.