Jekyll is a static website generator
Photo by Nicole Honeywill on Unsplash

Jekyll is a static website generator best used for blogs, magazines, documentation and portfolio websites. It’s build on top of the Ruby programming language and uses Markdown and Liquid templating languages.

How it works

Jekyll is a compile time instrument, which means that Jekyll does it’s magic before your website is finally served by the web server. The Jekyll compilation of your website happens before you upload your website files to the web host or with certain web hosts ( like Netlify ) just before it’s published. Jekyll doesn’t do anything once your website is published and online. The advantage of this approach is that you can upload your website to virtually any web host on the market. There are no Ruby dependencies, just your plain HTML, CSS, Javascript and assets files.

No backend service

What HTML files comes out of Jekyll compilation is the final version of your website. What Jekyll outputs is what you get. There is no backend service, database or backend server to dynamically generate new HTML pages. There are some limitation to this aspect. You can’t have dynamic content generated by the visitors of your site. Things like comments, users or search have to be done through and external service ( like Disqus, Algolia Docsearch, etc), which means your site displays data from other web services.

In the case of search functionality, there are some workaround using plugins which generate an index file of all your blog posts contents, and then a Javascript script shipped with your site can fetch that file and perform search, but it’s a workaround and slightly hacky and it doest work very well. Remember that Jekyll is a static website generator, not a dynamic one. But usually using Disqus or other comments services is enough to make your web blog user friendly.

Conclusion

Jekyll is a unsophisticated system, easy to use with a bit of programming knowledge. It’s easy to setup and deploy so you can focus on your content rather than the platform. With just a few command lines, you can have your website up and running.