One cool implementation of Mastodon-as-comments was with the G-Droid frontend app for the F-Droid ecosystem.
F-Droid apps don't have comments or ratings on the default F-Droid app. They're generally less necessary because the apps don't have ads or severe privacy concerns like the ones from Play Store do, but it's still nice to hear others' experiences and comments on them.
G-Droid introduced a commenting system by simply redirecting you to a mastodon URL when you clicked "Add a comment". That URL will by default add "@gdroid@mastodon.technology" and a hashtag based on the app package name to your post. For eg., for the Markor app, it would add
@gdroid@mastodon.technology #net_gsantner_markor #fdroid_app_comments
at the end of your comment post. The @username will notify a bot to pickup this comment, the hashtag will help it attribute it to the right app, and so your comment will get collected and displayed below the app listing in G-Droid.Sadly, G-Droid itself doesn't seem to be actively maintained anymore, the last update being a few years old, but it's a really cool example of what is possible when you have open, flexible systems that can be plugged in together in many ways to create the features you need.
I’ve seen a few times the option to email your comment, which I thought was a really elegant solution. So much in fact that I built that into my own site https://spenc.es/writing/email-as-a-commenting-system/#comme...
This is a nice idea!
I ended up doing something similar, but statically, and searching for discussions dynamically rather than using a single hardcoded thread. Essentially it's a script that searches for recent posts linking to my domain name on Reddit, HN, etc, and then updates a file with the URL of that post and some information about when it was made and how many posts there are. Then there's a Hugo template that converts the data in this file to HTML.
The script runs every few hours using free GitHub runner time, and if it makes a change, it commits it and creates a pull request with the contents so that I can review it. (I could automatically commit straight to the main branch but I like having the manual review just in case.)
I couldn't get it to work for Mastodon because there's not really a public search for Mastodon (for all sorts of reasons), although at some point I want to get it working for Bluesky. I did try hooking it up with Twitter for a while, but that required all sorts of API keys and things that I didn't want to deal with so I gave up. You also need API keys for Reddit, but that was easier to get hold of and manage.
I wrote a post about how I implemented it here: https://jonathan-frere.com/posts/adding-discussions/
When I publish something I like not shouting into the void so I want comments , but I also don't want to give a platform to anyone and everyone on my blog.
What works best for me is to add a link to the fediverse, linkedin and sometimes HN threads of comments when I publish a post. It's also a very low tech solution :)
I took a similar approach to linking to a comment thread, see e.g. Reddit links from https://p.migdal.pl/blog/2025/02/markdown-saves.
At the same time, I am an opportunist — sometimes it is Reddit, sometimes it is ix Xm, and sometimes it is here, the Hacker News. Different posts resonate with different audiences; and I don't want to link to a ghost town.
One issue is that there is no such thing as "the default platform for discussions"—no matter which one you choose, only a small fraction of readers will be interested in participating.
After spending far too much time integrating third-party comment systems into my website, I finally decided to roll my own in Common Lisp [1].
I’m quite happy with the result. It’s simple, minimal, and fast. It does exactly what I need and no more.
Plus, everything is held for my review before being published, so I don’t have to worry about spam, cross-site scripting, or off-topic comments. It’s been a satisfying solution.
If you want to use Matrix instead of Mastodon for your blog's comments, there's https://cactus.chat/
There's a rather long list of other solutions over at https://darekkay.com/blog/static-site-comments/
And there's https://github.com/carlitoplatanito/disgus for adding Nostr based comments to your static blog.
Aren't they 2 very different things? Matrix is live chat, similar to IRC, whereas Mastadon is a microblogging platform similar to X.
While they seem different, they can be used in similar ways. Sorta like how Delta Chat turns email into something like IMs with a conversation view. It's all passing around text/media at the end of the day.
Yes, quite different concepts, but both are federated services that offer the necessary functionalities to be used as comments. One is a bit more "real-time" than the other.
I should perhaps also add a little disclaimer/warning: When i had a closer look at cactus comments a while ago, it seemed to be broken / "assembly required" in various parts and blogs that use it.
Nice write-up! That the “View comments” simply redirects to the source post when JavaScript isn’t available — it feels very natural, more than I’d have expected!
I wanted to do something similar a while back, but while avoiding JavaScript; so I wrote a shell script that outputs fedi/Mastodon threads as HTML. It’s almost certainly less stable than your approach, but it works well enough for my use-case: https://hak.xwx.moe/jadedctrl/fedi2html In action: https://jaded.xwx.moe/lib/haiku-k-esperanto.html?en
I've been doing this on my site for a couple of years: https://github.com/offbyone/ideas/blob/3f50f69494aca01f21aeb...
It's pretty easy to do. I recommend it, if you already use Fedi for anything.
I think this is a pretty great step in the direction of not being wholly dependent on one platform; makes you start thinking about your website as the source and the social media networks as just a representation.
https://micro.blog has a good implementation of this for both the Fediverse and Bluesky. A random example of mine that has an array of 'em if you want an example: https://zacwe.st/2025/02/12/amazon-is-removing-the-ability.h...
Nice! I'm waiting for (/ thinking of building) something similar for #atproto/Bluesky. You could even use OAuth to allow users to add responses inline, which would then also show up in the Bluesky feed (if you wanted), with a UX pretty similar to Disqus.
Mastodon is great, but the "pick a server" step is a pretty hard filter for most users, who just want to sign up for something.
You'd also get to benefit automatically from Bluesky's blocking/moderation tools.
But bluesky is a proprietary service based in the US. A less privacy friendly choice for your readers/commenters.
The protocol is fully open and adoption is picking up rapidly. You can easily host your own data server in your preferred jurisdiction if that is important to you.
If you're using Quarto, I've got a plugin that adds bsky and masto comments
https://andreasthinks.me/posts/quarto_comments/open-social.h...
I did something similar recently - and was inspired by others who did it:
https://blog.nawaz.org/posts/2025/Jan/adding-fediverse-comme...
Reminds me of this post on adding BlueSky likes: https://whitep4nth3r.com/blog/show-bluesky-likes-on-blog-pos...
If I would want comments on my blog I would try to integrate BlueSky and Mastodon comments.
I found this similar project recently as well: https://danielpecos.com/2022/12/25/mastodon-as-comment-syste...
Great read. I posted some thoughts on the pros and cons of using Mastodon for comments. Overall, it's been a positive experience for my blog.
I wonder how that scales. I'm sure it wouldn't matter too much for a small personal blog but I assume the mastodon server wouldn't be very happy if the API was queried at a high rate.
The author made some sane choices by having the user press a button before loading the comments
Yeah, I made a note of that. I'm not sure anything I've written to my cheesy blog has hit HN before, so this is probably the biggest test I'm going to get.
If it were going to get any bigger, I'd want my own Mastodon server.
Edit: this is also why I made it an explicit user action to load the comments.
I like caches with a short TTL. Even caching for a single second will cap the amount of API requests. Just setting an expiry a minute out when you generate the page and put it behind a decent caching reverse proxy, is a decent option. Or just write the API response to a file and stat that file to check age before you respond (if so, just make sure to avoid race conditions; e.g. write to a separate file and rename). If you have something like Redis running, that's of course a great option too.
(but just having users click a button is likely to be more than enough)
I really like GitHub comments on blogs.
As in "utterances" and "giscus"?
Github is a proprietary service owned by Microsoft. Storing comments there is a less privacy friendly solution than this one.
mastodon is a fediverse client
I can't think of something more hostile than requiring an account on a 3rd party, totally unrelated, platform to post a comment on a blog.
I'll literally take ads and tracking over it.
I could add a button to swap the comments out for ads and tracking. ;)
To your point, though, I don't expect anyone without an account already to post, but my target audience largely already has such accounts.
Mastodon is part of the fediverse, meaning accounts are federated (accounts on services can communicate with other accounts on other services).
You can run your own server, on your own hardware, make your own account, own every step of the stack, and can comment on there.
It's not just 3rd-party login, it's YOUR-party login.
Lol I knew I would get this kind of answer and downvotes.
You still have to make an account on a totally unrelated website. It's the shittiest experience one can think of.
But your excuse is "Hey actually you can also setup the whole application yourself before making the account to post a blog comment on an unrelated website, so that's actually super awesome!".
Absolutely ridiculous, and if any company you didn't like were to do something similar you would screech.
You would prefer to create a new account on every blog you visit and wish to comment on?
Usually blogs don't require creating an account to leave comments. Why present this false alternative when the common thing to do is just leaving a comment without creating an account?
why would you need to create an account to leave a comment? the site owner can own the entire flow if they so wish, including creating an anonymous actor for the comment.
Disqus requires an account on their system, too.
Optionally it does not, see https://help.disqus.com/en/articles/1717211-guest-commenting