Comment on this post on Fediverse to see your comment on my blog post
I have been using Cactus as the commenting system since migrated to the current blog system (PandaBlog), but that’s changing.
Recently, there were some issues with the backend of Cactus, and on the matrix room it’s stated that the public hosting of it is currently in an unmaintained state, and the developer’s focus has shifted to other projects.
While I could self-host it to keep using it, self-hosting Cactus is quite a pain. So while I’m sad to see it came to this (I really liked the idea of generating a matrix room for each blog post’s comments), I was looking for alternatives.
Since I already am using Bridgy Fed to bridge the blog posts to Fediverse (and also AT protocol), the obvious choice is to bring back Fediverse comments to the blog posts, so I made a feature request on the project.
Ryan, the author of Bridgy Fed, pointed out that it’s already possible via Webmention, a W3C standard that’s kind of like pingback from 20 or so years ago. Having a web standard for this feature is certainly nice! But to implement it also means I have to handle and store all the comments/interactions received in some kind of database, which would be quite a pain for PandaBlog, or other statically generated blog systems (like Jekyll).
Luckily, as Ryan pointed out, there are also long running 3rd party systems you can use to handle webmentions for you, the most notable one being Webmention.io.
So I implemented support for Webmention.io on PandaBlog yesterday.
As the nature of using a third-party system, a lot of things cannot be tested locally, so I have to do it kinda publicly in 3 steps:
Auth
The first step is to be able to auth with webmention.io, so I can create a dashboard there and start receiving webmentions: 1aec408.
The authentication they support is called IndieLogin, so what that commit does is add an IndieLogin URI to the configuration of the blog, and add that data to the pages, so Webmention.io can know how to auth me.
Handle webmentions
After authenticated with Webmention.io, the next step is to start using Webmention.io to handle webmentions on the blog posts: cf0bd86.
After that’s deployed, when there are new interactions from bridged blog post on the Fediverse, the webmentions will be send to Webmention.io, and it will store them for me (I also tried interactions from AT protocol, but those are not sent to Webmention.io, or not stored correctly, but I don’t care much about AT protocol anyways 🤷. UPDATE: It seems some AT protocol interactions still got to Webmention.io and shows up here, but I haven’t dug into why some dropped).
One nice thing about Webmention.io is that it also handles moderation via the dashboard mentioned in the 1st step, so you can go to your dashboard and delete spam or otherwise unwanted webmentions.
Also important to note is that this obviously can only store webmentions after the blog system enabled Webmention.io to handle webmentions. All the interactions before that were not stored.
Render webmentions
The final step is to render webmentions stored on Webmention.io back under the blog posts: 752700e.
For that I used webmention.js. You can see the results at the back of the previous post I used for testing:
So, when you see this post in your Fediverse feed, comment it there to see your comment back to this page.