Why I chose Jekyll to develop my website

Estimated reading time: ~4 mins

The problem

Today I’ll be sharing why I chose Jekyll to develop my website and why it wasn’t trivial for me.

I had problems, the biggest one was I want to write more in English so I had the idea to start a development blog, where people could find me, read about my projects and my learning on front-end.

First I thougt to start blogging in WordPress, but after using it for some projects I felt like my idea of front-end and web development is to make things from scratch when possible.

I like making things, not using Boostrap or other frameworks which are good tools for some people or to solve some problems but not for this one. I made a list of things I would like to have after dismissing few ideas:

  1. Blog
  2. Projects
  3. Interviews with web developers
  4. About
  5. Twitter
  6. Github
  7. RSS Feed
  8. Email
  9. FAQ
  10. Search
  11. Resources
  12. Styleguide (pending)

I realized that having this sections would easy be managed via static files so I started looking for a tool and found one, Jekyll a Static Site Generator, which isn’t officially supported on Windows but it is still possible to run it as I did because I use Windows 10 for now.

Having only static files on the server means its fast and secure and with no needs of data bases to serve assets dynamically.

Advantages of static site generators over dynamic sites

While Jekyll manages your content, it is not a CMS in the way Wordpress is. Since there is no back-end GUI, Jekyll relies on hand coding which I love. This has its pros and cons depending on the site you want to build.

How Jekyll works

Jekyll then works its magic by combining YAML front matter with the Liquid Tempting System. Jekyll will search for files with YAML front matter, any file that has it will be able to use variables from Liquid. That, in combination with your HTML, CSS, and JS files will tell the site how to look and behave.

Finally the importance of its modularity helping you follow the DRY principle of programming from a folder that begins with an underscore like so:

_includes
	footer.html
	head.html
	header.html
	reading_time.html

Furthermore, any time I want to make a change to either, I only have to update it in one place and it’s pushed out to the entire site.

Sublime Text Editor

Of course, dynamic sites have their advantages as well, with no back-end GUI tu manage updates, plugins and for no tech-savvy people would be more difficult to admin the website, write content and push changes to the server.

Github Pages to the rescue

GitHub Pages accepts static HTML but can’t execute languages like PHP, or use a database in the way you’re probably used to, so you’ll need to output static HTML files. T

You can host your static website for free directly from your GitHub Repo.

Iterating is the key

I then spent the following 7 months iterating and iterating. During this period, other projects fell by the wayside as I got distracted by yet another feature addition, performance improvement or design detail.

I have lot of things to do:

Jekyll resources and further reading

What now?

Well, you can grab the RSS feed, follow me on Twitter and keep an eye on the project on GitHub.

Thanks, Ignacio.

This post was written under:

Did you enjoy this?

HIRE ME