web development

Why I chose a self-hosted comments plugin for my personal blog

The Commentions plugin for Kirby CMS

Throughout this long pandemic, I’ve spent far too much time building my new blog — much more than either writing it, or promoting it.

But, I’ve enjoyed taking the time to learn basic PHP code, and slowly evolving my blog’s simple design and structure.

And now, although my traffic is still very low, I want to add just one last feature, before I start using my blog ‘for real’ — readers’ comments.

Why a self-hosted plugin, instead of a hosted app?

  • I originally chose to use Kirby CMS for my blog because I liked the simplicity of its flat-file, text-based system. So it makes sense for me to want the same advantages for my commenting system. With a self-hosted plugin, all the files for my blog, including all the comments, are held on my own computer and server, in an easily-readable, highly-portable, text-only format. They are completely under my control, using an FTP app, like Transmit, or the macOS Finder.

  • The design I’ve evolved for my blog has prized simplicity above all else. I’ve added as little as possible to its blogging interface — no fancy icons, Unsplash images, extra sidebars, or animations — just plain typography, directly-relevant images, and a simple layout. So I wanted a commenting system that either has exactly the same design (unlikely), or which allows me to fully customise its styling and options.

  • I’m not sure what I’m aiming for in readers’ comments. I don’t expect it to become any kind of ‘live’ discussion forum. More likely — just a few occasional contributions that add to (or correct) my original posts. So, I’m hoping that I won’t need powerful moderation tools to manage its low volume feedback and conversations.

A choice of two plugins: Commentions or Komments?

After learning and using Kirby for the last year, I’ve come to see it as a ‘perfect’ blogging platform — but with one missing feature: readers’ comments.

So huge thanks to these two developers who have put months of their own free time into creating the two currently available Kirby plugins:

I’ve only tried out Commentions so far — but I’m equally grateful that the Komments plugin exists as an alternative.

How I’ve customised Commentions

  • I’ve stripped my comments’ layout and styling to the minimum, so that it’s well integrated with the rest of the post, yet still visually different.

  • When the comments styling closely matches the site design, it becomes important for the headings text to match the author’s ‘voice’ too. So I’ve followed Sebastian’s super-detailed instructions to personalise a few of the translation strings in the site config.php file.

  • I love the concept of Webmentions, but I’ve not yet got my brain around its underlying mechanisms. And in honesty, I don’t want to end up with a messy UI, and too much detail. So, for now, I’ve used Commentions’ toggle switch in the control panel to suppress all the webmentions options.

  • I’ve also hidden Commentions’ Markdown help dropdown, and replaced it with a link to Mark Cone’s excellent Markdown cheat-sheet. (I even toyed with the notion of a ‘Comments Policy’ page, like Dave Winer’s when he had Disqus comments.)

Moderating Commentions in Kirby’s control panel


New comments queued on the blog page
Approved comments on the post page

New comments are all queued together, awaiting approval, on the blog page in Kirby’s control panel. At the same time, I should get an automatic email to tell me that a comment is waiting. (I’ve still to test this properly). Comments can then be individually approved, deleted, or even edited here, using controls that are well integrated into Kirby’s panel UI.

On approval, comments are automatically moved to their individual post page, below Kirby’s main text entry field, and the options to un-approve, re-approve, delete, and edit, all remain here for the life of the post.

Some comments about Commentions

  • It’s great to have comment moderation tools ‘live’ in Kirby’s control panel, instead of having to log on to a separate site with a completely different UI.

  • But it would be even nicer to be able to ‘bulk-select’ several comments in the control panel, to be approved or deleted as a group. This would be the first timesaver I’d look for if I had more comments traffic.

  • Live preview of Markdown text would be a tempting enhancement. However, its absence keeps my blog layout simple, and encourages readers to keep their comments minimalist too!

My new comments system

My very first comments panel is now ‘live’ below. Will my optimistic assumptions about comments prove to be naive? Do you like my minimalist design? Let me know what you think.

Readers’ comments

  • Brian Liddell

    14 May 2021

    This is a test comment, to show how these comments will look when readers use Markdown.

    • Italics, bold, blockquotes, lists, links, code, and code blocks are all supported…
    • but headings, images, and any other files are ignored!

    There’s a Markdown link above the comment field for more help, which I think is less messy than the default dropdown.

  • maurice renck

    29 Dec 2021

    Hi Brian,

    Thank you for the kind words.

    Great to see that there still are blogs with active comments. I have the feeling more and more blogs are moving away from that. Sebastian built a great comment plugin with a slightly other featureset than mine. I think it’s a good thing to have different views/approaches on topics like this. Good to see this is working fine for you.

    Have a good start into 2022!

    Maurice

Add your comment…

Available formatting commands

Use Markdown commands or their HTML equivalents to add simple formatting to your comment:

Text markup
*italic*, **bold**, ~~strikethrough~~, `code` and <mark>marked text</mark>.
Lists
- Unordered item 1
- Unordered list item 2
1. Ordered list item 1
2. Ordered list item 2
Quotations
> Quoted text
Code blocks
```
// A simple code block
```
```php
// Some PHP code
phpinfo();
```
Links
[Link text](https://example.com)
Full URLs are automatically converted into links.