Table of contents

Why?

As mentioned in other parts of the site, I have decided to re-instate my website after a break of several years. It is logical to wonder why? Why now and why use Jekyll for it?

I have used most website technologies in the past, and I have also hosted and supported sites for others. I have used everything from writing a simple site with handcrafted HTML and CSS using vi, fully dynamic sites using PHP, Joomla and WordPress with a database backend or static PHPwiki based sites for my various projects.

Gradually, I reduced my presence to the bare minimum of a bare-bones blog hosted on blogger.com. This blog is used for publishing snippets and ideas of various useful things i have come across. You will rarely find any long form posts here and these are mostly notes to myself that might also be useful to others.

The question remains.

Answer

Back when i created my first website, the Internet was very different from today. People were using Yahoo and Hotmail, Facebook did not exist, Google did not exist, or it was in its very early days and had as its motto the phrase

Do no evil

Back then, everyone had their own websites and the social network of the time was IRC. Having your own site back then was not that simple, it required a lot of manual work and as things evolved we moved from static hand build web-sites, to dynamic web-sites with database backends.

This increased the complexity considerably and even for us who were into technology it was not a very enjoyable task to keep one or several dynamic websites up to date.

Around that time, lots of people discovered what we think of today as social networks and thought, since i already have a presence in Facebook, or Twitter or Google +, i do not need to maintain my own personal website that only a handful of people read anyway.

When i post something on Facebook, it is viewed by thousands of people. Surely i don’t need that website anybody reads anymore.

So the Internet has transformed.

Lots of small websites were deleted, and our digital presence was transformed into a social network presence.

The problem

Of course, these days everyone knows why this was a bad idea. Social networks have caused myriad of problems. Firstly, they have changed the way people perceive reality. They are the main method of misinformation across the developed world and are highly manipulative. They do not care at all for their users, they only care about profits and engagement.

They do not respect people’s privacy. They are promoting racist and anti-scientific agendas that are responsible for the deterioration of social cohesion across the western world.

They are responsible for the deterioration of the mental health of millions of teenagers. I can go on for hours.

The solution

The solution to this problem is obvious: We need to return to the former, more open, more democratic and more respectful form of the Internet.

The one where multiple voices existed. Where people are able to express their views from their own medium. This does not mean that we should travel back in time. This is not yet possible, but even if it was, maybe it is not the right thing to do. There may be other ways to tackle the issues of discoverability and social networking.

Today we have tools that did not exist in the early iterations of the Internet.

We have Fediverse, we have RSS and the cost of hosting your own services has dropped dramatically. Based on what i have written so far, it will come as a surprise to no one that I am a strong believer in Fediverse generally and self-hosting services specifically.

Fediverse is a credible answer to the question of networking and discoverability and self-hosting is the answer to who controls your content. Open source and free software have excellent solutions for all of these and these days the cost of a VPS has dropped dramatically, and a small website can be hosted for as little as €6 per month.

For technical people, even that is not necessary because they can host their services from a PC that lives in their closet.

How?

Having said all the above, we still need to answer the original reason why we stopped hosting our own stuff back in the day.

Setting up a static website that you have to update manually by editing HTML is not acceptable anymore, and after a while, maintaining a dynamic with all the effort needed so it is not patched is tedious. The answer is somewhere in the middle. It is OK to maintain a dynamic site as long as its dynamic element is not during runtime. Meaning that if a website is dynamically generated, but this dynamic element is not exposed to the wider Internet, then we are OK.

There is no database to exploit, no form to inject malicious code into, no secrets to steal. That is why a static website generator is ideal for this use case.

Of course, this is not enough for everyone, but it is enough for me. I have no need to track visitors, serve ads or customize my content in real-time based on who is reading it.

There are several static website generators out there. i

First i tried Hugo, a very popular open-source website generator written in Golang. Unfortunately, I could not make it work in the way i wanted it, and i found that its documentation was out of date. Maybe it is a work in progress, but when you followed the instructions from the documentation, Hugo failed to generate the site.

After Hugo, i tried Jekyll, a static web-site generator written in Ruby. Even though Ruby is not my favorite language, i have used it quite a bit in the past for work and i am familiar with its ecosystem. I was able to customize Jekyll’s minima settings to produce the type of website I was after. I needed a blog-oriented website that supported tags and an XML feed so whoever wanted could read my posts via a RSS reader.

The fact that the website is static will make it very easy to host with Yunohost and also very easy to cache via Cloudflare.

What is next?

Eventually and after some tweaking, i managed to persuade Jekyll to do what i wanted, so I now have a functional setup that allows me to write my posts in Markdown and have automated generation of tags, categories and the actual HTML. Now its time to focus on content.

I have many hobbies, and many ideas that may or may not be of interest to people. I will use this site to document them and, who knows, they might be useful to other people except myself.