I have used GitHub pages before, so technically I have used Jekyll, but until now I have always just written everything directly in HTML/CSS/JS. Mostly I wrote helper functions in JS to populate the DOM dynamically, but that’s not what today is about. Today I am making a website in a more standard way by using GitHub Pages’ built-in Jekyll website builder.
Why not just keep doing it with my homemade process? As with any web technology, it basically boils down to separation of content and presentation. This website is a blog. My contribution to creating it should be (as much as possible) solely on generation of content. It’s very hard to only generate content when you also have to create and maintain the engine on which the website runs. So this time around I am going to offload as much as I can to Jekyll so that I can really separate my content from its presentation.
This is a major development for me. I love building tools. I am very comfortable building tech engines from scratch and I thoroughly enjoy the process. But it would be naive to believe that I can just build all my future projects from scratch in place. That’s a recipe for future disaster when the time comes to modify something, and modification is inevitable in any living product.
It’s much better to know what tools are available and how to use them before building your own tools in your work. In the long run it is almost always a time saver to use existing tools. Also – and this is big – using existing tools offers community support. When you build everything yourself you force that you are the only one available to maintain the project, and that is a death sentence for its longevity.
It’s a crucial skill to be able to use existing tools, especially for common tasks. I want to strenghten my own abilities with this and a great way to do this is to learn how to use Jekyll to build sites. I’m pretty sure I will still end up creating some tools myself which will turn out to be redundant versions of stuff already available, but the main goal of this Jekyll project is to not do that.
Also, if I do it right, I will end up with a nice website which showcases my progress learning different technologies. And that’s pretty cool.