Background by @jennie_raI wish reply articles worked better

I wish reply articles worked better

Posted on Nov 23, 2025 by Maddy Miller

In Programming with tags Retrospective, Web, Writing

976 words, 4 minutes to read

Something I’ve always loved about writing articles is that it can start a conversation. Whether it be centralised discussions on link aggregator sites like Hacker News or Reddit; individual discussions on social media sites like Twitter or Facebook; or brand new articles expanding or replying to the covered points. I find these so valuable that I wrote a script that auto-runs once a day, to try scraping link aggregator sites so that I can link them from the relevant articles. For example, my article on motion sickness accessibility includes a few of these at the end of the article.

The discussions around the internet section
The discussions around the internet section

Something that I felt was missing however, was the ability to find actual “reply articles”. Articles written in reply to mine. These generally are my favourite kinds of conversations to see, because it means someone was motivated enough by the topic and/or my writing to actually write an article of their own. In the past, I’ve mostly found these many months later, either by chance, backlink detection systems, or direct contact from the author. I don’t like that it works this way. Not only do I not get to read these replies at the time, but readers who come across my article aren’t aware that these wider discussions are going on.

Webmentions

I asked about this problem in a chat that I’m in, and someone suggested Webmention. Looking into it, it honestly felt like a good solution. The big downside of course is that like many other things, it needs to be widely adopted to actually function the way I would like it to. From what I can tell, a small number of publishing platforms support optional integrations, but nothing super widescale at this point. The main audience for it currently appears to be smaller independent websites, like mine. This does make sense to an extent, as the technology did come out of the IndieWeb community.

So rather than longingly wish for a perfect solution to my problem with 100% adoption, I decided to implement Webmentions into my site. It ended up being fairly simple to do. I was also easily able to integrate it into the existing systems that I’d setup to scrape for discussions on link aggregator sites. I found this article which covers adding Webmentions, and used it vaguely as a base. My goal was more to link to other articles rather than collect likes/etc, so what I ended up with looked fairly different.

Receiving

To actually receive Webmentions, I needed to add a link tag to my HTML that pointed to a web server which would handle the incoming requests. Luckily, a hosted service that’s free and open source already exists for this, webmention.io. I signed up for this, inputting both my full and short URLs into it, and added the given HTML link tag to my site’s head element.

I could then query for any Webmentions via the API and filter it down to the mention-of and in-reply-to event types. It’s possible once I start receiving more (or really, any) mentions that I’ll refine that filter, but for now those feel like two good events for my use case. Adding that URL to my scraper script, I’d now set my site up to automatically crawl for Webmentions. Given I have no actual live data at this point due to just signing up, it might end up that I need to tweak it further, but it appears to be correct based on example data.

Due to the much less moderated nature of Webmentions, I also added a manual approval system to these, with an “approved” Boolean value that defaults to false in my discussions manifest. When something new pops up, I can manually check whether it’s something I want included, and either approve it, or update the filters to exclude content like that in the future (or delete it from the webmention.io platform if the filters are fine but it’s not a good mention for another reason).

Sending

Sending was also fairly easy to setup, although I found that none of the sites that I’ve linked to in the past near decade of writing articles actually support Webmentions. This was slightly demotivating, but hopefully that’ll change in the future. I found the site webmention.app, which similarly to webmention.io provides an API, but this time to handle outgoing Webmentions.

I already had a script that I run when I post a new article or heavily update an existing one, mostly to notify search engines to index the page. As ideally Webmentions should happen at those same points in time, I’ve just added a call to that API from my same script. It’s also possible to implement it in more automated ways however, such as via RSS feeds, which might work better for other people’s setups.

Conclusion

Overall, this was a very easy process to setup. I did it in one evening and even had time to draft up this article afterwards. It has potential solve the problem that I wanted to solve, but it does need significantly wider adoption to do a good job at it. If you’re reading this and run a site, I’d highly encourage you to implement it yourself. Even if you don’t want to include these links on your site, it’s still great to send out Webmentions to sites you might link to, or to have a list of sites that have sent you Webmentions on the webmention.io dashboard.

While this doesn’t get us anywhere near the “reply post” functionality of something like Tumblr’s reblog button, I feel it has the potential to encourage more reply articles to be written in the future. I love reply articles, they’re great for learning more about the topic of an article. I’ve written them myself, and learnt a heap from ones written in reply to my articles. I do hope that it’s something that continues in the future.

About the Author
Maddy Miller

Hi, I'm Maddy Miller, a Senior Software Engineer at Microsoft. I write articles and develop Minecraft mods including WorldEdit, WorldGuard, and CraftBook. More about me, and contact info.

My opinions are my own and do not represent those of my employer.