Jekyll is a static site generator. It lets you make a website without a database and all the complexities that entails. That sounds pretty old and boring but it’s actually a modern technology. With Jekyll you create a simple text file and it gets transformed into a page on your website. If you enjoy simplicity then you’ll enjoy Jekyll. It’s very well suited to personal or portfolio style websites… which is quite a lot of websites!
There’s no PHP or database. It’s just folders of files. It’s easy to build and manage a Jekyll site. There are no forms to submit and buttons to click through. Once you’re used to typing in a text editor it’s surprisingly fast to create content.
Because the web server is just serving up static HTML files there’s no time spent generating a webpage. Think of how many steps are involved in the typical dynamic CMS; Initializing the application, authentication, querying the database, generating templates. None of that happens when someone views a Jekyll page. The site is built beforehand in one command and the server serves this prebuilt file.
It can’t be hacked
DNS spoofing aside, there’s very little to hack on a Jekyll website. There’s no authentication, there’s no database to SQL inject, there are no back doors. Content is uploaded to a server via Git. It’s unlikely someone would gain access this way but if they did you could revert to a previous commit.
It will never go out of date
It’s retro. It will never go out of date because it’s already out of date. The concept of generating a website from a bunch of files has been around since the beginning of time itself :)
It’s surprisingly flexible
Check out my Music page, there’s an audio player that streams a song and a cool looking chart of musician’s voices. You can build complex things with Jekyll but there are some drawbacks.
Jekyll isn’t dynamic, it has no database and there’s no code executed at run time to do different things on different conditions such as the current date. It can’t display the current date when a user views a page because it doesn’t know what the current date is. It only knows the current date at build time when you generate your site, not on each page view.
Jekyll can’t do comments. That’s a pretty fundamental thing! But thankfully you can embed a service like Disqus at the bottom of your page. Technically your site is now using a database… just someone else’s database.
Maybe I’m sentimental and pine for simpler times when websites were just HTML. But for me Jekyll is so refreshing to work with after years of making websites with increasingly complicated machinery going on. At the end of the day a website is just a page of text, why not build it that way.