Phew, this was a lot harder than I imagined. But let me say a few words on the general setup of the website itself.
aberer.io uses the Ruby-based website generator Jekyll. Overall, I am indifferent about Ruby as a language (Python is fine, do we really need 100 more scripting languages?). Although, some experiences implementing the RogueNaRok web service using Ruby-on-Rails still haunt me (cue Ruby-RoR-Gem hell). But I am rather enthusiastic about static website generators.
I used wordpress for my previous blog. And while it is easy to install and to use, wordpress just does not fit the average coder’s workflow. As a Linux/Emacs user, you belong to this exotic group of users who prefer to edit raw text files only. Then, extension and configuration of wordpress is rather opaque. It is hard to establish automated pipelines.
That’s where static website generators come into play. You add some pages and blog posts (written in Markdown), fill in some variables and fields and run the generator. Voilà, there’s your static website (i.e., pure HTML, no dynamic content, thus perfect for caching and generally faster than wordpress sites which are loaded from a database typically). Jekyll is blog-aware, that is, it is particularly well-suited for your personal blog served with some portfolio sites around it.
Compared to wordpress, it is straight-forward to apply a version system to your Jekyll site. Regenerating a Jekyll site can be executed as a hook whenever you commit to your repository. Github even offers hosting for your Jekyll site managed via a git repository.
Naturally, I would prefer a website generator written in Python such as Hyde. However, Hyde appears to be vastly less popular than Jekyll and I do not know if there are many themes available for it at all. At this point, I would like to highlight the diversity of themes out there for Jekyll. Moritz Sauer has done an awesome job providing his theme Feeling Responsive which is the basis of this site.
Comments And Non-Staticity
One of the defining aspects of the Web 2.0 is that information flows both ways: you read an article and you instantly can provide feedback which may have even more impact than the original post. Yet, if you want to have comments, your site cannot be purely static and HTML-only. If you add a comment form, there needs to be something that handles the data.
You could hypothetically use discourse as your comment engine (which in its form is potentially superior to any forum) and if you host it yourself, you would be in full control over the data. For installation, discourse requires docker which effectively runs a virtual machine. Virtualization for a comment engine on an otherwise purely static HTML website? Perfectly reasonable!
Static Comments: What is Available
So we finally, come to the few alternatives that exist for static commenting. For one, there is the purely non-dynamic possibility of having users just send comments to token email addresses (e.g., firstname.lastname@example.org). Actually, from the 80ies bearded unix-guy’s perspective, this just seems right: “Send me a message, if it goes through my spam filter, I’ll put it on my page.” And in fact this is the only purely static solution. The downside is that users are not really interacting with your site any more.
Then, finally, alas, finally, there is Jekyll::StaticComments by Matt Palmer (also announced here). Basically, it boils down to: users send you an email via a comment form. Thus, it requires the entire PHP machinery. In principle, you can pass the comments through your mail spam filter, automatically commit the comment to your git repository and auto-regenerate the website. So far, I like the outcome and the possibilities.
But let me open the <rant>-tag: Although the implementation is not too involved, it strikes me as extremely odd that there does not seem to exist more than one static comment plugin for Jekyll. Unexpectedly, the installation was quite tough and did not work without quite some source code inspection. Code from the original git repository is not maintained intensively, but works for Jekyll version 1. For each of the subsequent Jekyll major versions there exist forks that fix the code for this version (here and here). That brings back the old Gem hell memories. To top it off, the feeling responsive theme (using disqus by default) appears to delete the comments in its Ruby code. After fixing, I literally have the following 2 lines in the code:
So, here it is. Feel free to comment.
jekyll comments rant