Switching from Jekyll to WriteFreely

General Information

Previously, I had used Jekyll to host my blog and I had been mostly satisfied with it; yet, as my server was deleted for apparently violating my hoster's Authorized Usage Policy, which meant I was forced to set up everything once again on a new server, I decided to switch to something else, namely WriteFreely.

The main reason behind this is that writing posts using Jekyll can, frequently, be rather cumbersome, as you are required to edit a Markdown file, run bundler exec jekyll build and then copy the created _site folder its appropriate location — i.e. /var/www/blog.mysite.com. This entailed me creating and editing a new post on one of my computers, thereafter push the changes to my repository; then ssh-ing into my VPS, pulling the changes, running the aforementioned command and copying the _site directory — truly, not something you can easily do.

Indeed, this made writing blog posts much more of a chore than it needed to be, and whilst it would have technically been possible to run a CI job within the GitLab repository, I found that to be much too troublesome for a mere blog; thus, I simply decided to scour the web for a better alternative.

The most important aspects of blogging software to me are that it is not too bloated — Wordpress being, in my opinion, infamous for being much too bloated —, that I can write posts in Markdown and that there is no clutter; and it appears WriteFreely fits this description very neatly.

The Installation

Installing WriteFreely ended up being simpler than I had at first feared, as you are simply required to download a tar.gz archive wherein the writefreely executable can be found. Thereafter, following WriteFreely's instructions is quite simple and straightforward; yet, as I have a regular website running on my VPS as well, I was required to set up a so-called reverse proxy.

I was initially somewhat intimidated by this, as the example configuration provided by WriteFreely using ngix is rather long. As it turns out, however, such a configuration can be easily accomplished using Apache2; which is, incidentally, the server which had already been running on my machine anyway.

One must simply create a new Apache virtual host within /etc/apache2/sites-available with the name of one's subdomain (such as blog.marvinjohanning.de.conf) and thereafter add the following contents (which, obviously, must be changed accordingly): —

<VirtualHost *:80>
        ProxyPreserveHost On
        ServerAdmin [email protected]
        ServerName blog.marvinjohanning.de
        ServerAlias babbleon.marvinjohanning.de

        <Proxy *>
                Order allow,deny
                Allow from all
        ProxyPass / http://localhost:WriteFreelyPortHere/
        ProxyPassReverse / http://localhost:WriteFreelyPortHere/

You are then required to enable this virtual host by typing a2ensite site-name whereafter you should restart your apache server with sudo systemctl restart apache2. What I would then highly recommend, is using certbot from the EFF, which will automatically install an SSL certificate and create the necessary redirects. You should then be able to access your blog under the domain specified, so long as you correctly specified said domain during WriteFreely's initial configuration; should you not have done so, run it again and this time enter the correct information.

Importing and Exporting Posts

As I have mentioned earlier, WriteFreely's blog posts are written using Markdown, which is my preferred way of writing shorter things, such as notes or blog posts. Indeed, Jekyll requires one to write posts in Markdown as well, which meant I already had a nice collection of posts available. Initially, I had thought I would be required to copy-and-paste the contents of every file into a new post on my newly created WriteFreely instance, but, as it turns out, one can simply import existing Markdown files, whereupon WriteFreely automatically converts them into posts. Thus, I could simply upload all my Markdown files and they were immediately available on this new blog as well.

In addition, you can easily export your written posts in numerous formats, including plain-text Markdown files — which I find fantastic. Though I must admit, I would much prefer having these files stored in the same folder which also houses WriteFreely's executable; but apparently, they are not located there. Honestly, I am quite unsure where exactly they are located, but as long as I can export them, all is well.

RSS Feed

With Jekyll, you could spot the RSS feed link at the bottom of the page quite quickly; with WriteFreely, however, it was nowhere to be found. Instead, I quickly figured out, it appears to be hidden but can be accessed under the following URL: https://blog.marvinjohanning.de/feed.

I thus integrated my blog into my Goodreads account, so that they are always synched and I do not have to maintain two different blogs.


I find WriteFeedly much nicer than Jekyll and I am quite sure I will, from now on, post much more frequently, as it has now become much less cumbersome.