More Frankenstein than Jekyll, but where is Hyde?
Tags: webdev, jekyll
Published: 2020-01-11 20:17:15

---
title: "More Frankenstein than Jekyll, but where is Hyde?"
published: true
description: "Thoughts from a game programmer who decided to dive into web development by creating his personal blog"
tags: webdev, jekyll
---

When I said in my mind '*Let's make a blog, I'd love to write about stuff, it shouldn't take long these days.*', I imagined that as a professional programmer I would have been well prepared for anything was expecting me, there's no need to use a CMS ([Content Management System](https://en.wikipedia.org/wiki/Content_management_system)) like any geek would do, I can certainly craft something from scratch on my own. 

How naive I was and I still am, but you know, technology moves on faster than anything else nowadays so I thought that surely some framework was made to ease the process since the first good ol' internet years, isn't it? Well yes and no, let me explain.

![easy](https://media.giphy.com/media/3o7btNa0RUYa5E7iiQ/giphy.gif)

Just a premise before starting, I never deepen my technical knowledge in web development, I left it there to get rot, years ago, while I was studying at University and when websites were still laid out as tables, [Adobe Flash](https://en.wikipedia.org/wiki/Adobe_Flash) and [ActionScript](https://en.wikipedia.org/wiki/ActionScript) were a thing and techies were talking amazed about the future of internet with AJAX ([Asynchronous Javascript And XML](https://en.wikipedia.org/wiki/Ajax_(programming))). 

Since then I focused mostly on what brought me to be a game programmer, keeping a quick look around to stay updated but without dirtying my hands at all. So imagine me today, reading about amazing new frameworks that are thinning the borders between websites and apps, making everything shiny and animated but still very interactive, smooth and responsive independently from whichever device you're surfing with, besides all of this can now be even virtually always available thanks to PWA ([Progressive Web App](https://en.wikipedia.org/wiki/Progressive_web_application)). Doesn't that sound almost like magic?

![magic](https://media.giphy.com/media/12NUbkX6p4xOO4/giphy.gif)

Then I started googling and I found out the harsh reality: 
###**Web Development is a Jungle!**
Please take this statement with a grain of salt, it's a personal opinion made from a game programmer who thought a carpenter could work some iron too 🤦‍♂️, have I already said how naive I am? Probably in ten years' time, I'll read again this post and have a big laugh but now that I look around to find a simple way to start blogging, the smoothest solution seems to be a static site generator. Yeah, but which one, there are so many! Let's go with the most popular which usually is even the most supported and spread out, don't you think? 

Here's when I discovered [Jekyll](https://jekyllrb.com/) and oh boy, look at the [Showcase](https://jekyllrb.com/showcase/)!!! I can't believe how many BIG companies are using it too, I thought they were all writing their stuff from scratch to have as much control as possible, but again, who said you can't do what you want by even using a framework like Jekyll? This reminds me of the differentiation Steve McConnell makes in **[Code Complete](https://en.wikipedia.org/wiki/Code_Complete)** between programmers who *program 'into' a language* from those who program with a language.

Once I started to dig deeper into it I noticed a shift in the development paradigm I'm used to working with. Keep in mind that I'm mostly used to code in C#, Java or Objective C/Swift, so OOP ([Object Oriented Programming](https://en.wikipedia.org/wiki/Object-oriented_programming)) is my day to day mindset which kind of fight against the web development building blocks. Effectively if you think about HTML and CSS they are not even programming languages, there's no logic control in it, it's just presentation, what you see is what you write (WYSYWIW, new acronym coined 😜), there's no inheritance, polymorphism and all those crazy things that took a while to grasp properly. Doesn't it look too limited then? Then how is this generator supposed to create a whole working website with posts, proper navigation and so on 🤔? 

Well, Jekyll uses [Liquid](https://shopify.github.io/liquid/), a template language to effectively let you write some logic and make actual HTML pages as a Frankenstein of various HTML bits. Just split a website into logical parts: head, header, page, post, footer and so on. Now imagine using a skeleton of a website, a sort of container you properly fill with all these parts, here's what Jekyll makes you do!

![mind blow](https://media.giphy.com/media/xT0xeJpnrWC4XWblEk/giphy.gif)

So where's Hyde then 😨? Wrapping my head around this way of thinking wasn't so straightforward at first but then it all made sense when I started to experiment and see what it is capable of. You can still write actual HTML, CSS, Javascript and whichever other language or piece of web tech you want to stick with it or don't bother at all and choose the plugins that fit better your needs. It's leaving you free and not closing you in a cage of limitations but that also means you can easily grow in complexity to the point where the beast will be unleashed 👹. 

This doesn't happen only with Jekyll though, the 'Hyde' part of every tech can suddenly come out and we all should always beware of the risk it implies. Don't be fooled by the potential, complicating things has never helped anyone, rise against Hyde by staying Jekyll or Frankenstein if you prefer 😅.

Good craft you all! 🧐 

*Post initially posted on my personal [blog](https://silviosavino.com/)*