WriteFreely and my quest for a blogging engine
This post has been brought by the “How's this for an open-source software review?” department.
Today, we talk about blogging using open-source software, comparing my previous workflow with the one I use today.
Chapter 1: The problem
When the blog consisted of nothing more than a single “Hello, World!” post, it was simply a static website stored in a git repository. Publishing a new post required many steps: cloning the repository, editing the source files, generate the static files, commit and push changes, and pull those changes in the server deploying the website.
Although this worked, it was cumbersome, especially if you wanted to publish articles frequently. More importantly, it was impossible to write posts in devices that were not setup, e.g., computers with no git and no admin rights, mobile phones, etc.
What I really wanted a web-based blogging engine easily deployable on my home server and satisfying a few modest requirements: – an online editor, – appearance customization, – automatic RSS generation, – integration with the Fediverse.
After searching for engines like that, I narrowed the choices to three projects: – Wordpress with the ActivityPub plugin. – WriteFreely, the free and open-source version of Write.as. – Ghost with the promised ActivityPub integration.
Chapter 2: The solution (or not)
After studying each solution, I chose WriteFreely for my blog. Wordpress uses PHP and I don't want to deal with that, and Ghost's ActivityPub integration is still in development, although they have announced it for “soon”.
The initial experience felt like a breeze. Writing drafts and posts from any device felt liberating. I also discovered that we could share link to drafts with other people, allowing them to see the draft, but not editing it.
However, issues started appearing quickly.
First issue: customizing the appearance. WriteFreely allows users to provide a CSS sheet, but it's slightly difficult and limited. In fact, there exists a theme website with beautiful themes, but if you look closely they all resemble each other.
Going beyond CSS customisation is even more difficult. I believe I could modify the HTML and Javascript server-side, but that defeats the point of the tool. For instance, you can see in the footer of this post that the “Copy Link” button is disabled. That's because I couldn't make it work with the customisation tools given.
Second issue: WriteFreely supports only basic markdown. Although that already allows a fair deal of formatting, I'd love to have the colored quote blocks that GitLab uses with the > [!NOTE] or > [!WARN] syntax.
Third issue: there is no comments section. I later saw that there is another software by the author, Remark.as, but it's another standalone service that does not embed in the same web page.
Finally, fourth and last issue: there are lots of small, inconvenient bugs. Nothing that could erase all your data (at least I hope), but I find that they're really annoying and prove that WriteFreely is not deployment-ready: – There's no side by side editor and preview. – Navigation is broken, as in a subset of buttons in the navigation bar only works from a subset of pages that they should work on. – It's ugly, really ugly. – Planifying releases is not particularly difficult if one follows the documentation, but it's very inintuitive. – Fediverse handle is tied to the subdomain of the website, e.g., @luis@blog.luis.marques.me, whereas I'd rather have @luis@luismarques.me on all my subdomains. I'm not sure whether this is a WriteFreely or an ActivityPub limitation.
For some of these problems, I have created issues in WriteFreely's GitHub, but for now I haven't received a single word in return. – https://github.com/writefreely/writefreely/discussions/1681 – https://github.com/writefreely/writefreely/discussions/1682 – https://github.com/writefreely/writefreely/discussions/1685
Conclusion
Despite these shortcomings, WriteFreely greatly improved my blog workflow, and I am now much more motivated to maintain the blog I have wanted to do for a long time.
That said, the project feels more like a prototype then a mature blogging engine. It is certainly “usable”, but I am not entirely satisfied by it. If you know of another open-source blogging engine that meets my requirements while addressing these limitations, I'd love to hear your recommendations by mail or over Mastodon!
Thank you for reading. Reach me for further discussion and updates!