Now my site supports webmentions too. blog

Now my site supports webmentions too.

Yesterday, during my usual evening web surfing — a habit that's completely reborn since I rebuilt this blog — I stumbled upon Bubbles , an aggregator that led me to Mike's site, and specifically to his post: My site now supports webmentions .

I had already run into Webmentions and the IndieWeb before, but I’d always put it on the back burner. You know, one of those long-term to-do list items? But seeing Mike's really clean implementation was probably what finally convinced me. Let's take a look at how it works and how to implement it in my SSG.

To get started, you need to register your site on webmention.io . To do that, your site has to support IndieAuth , a system that lets you verify your identity using an existing supported profile. In my case, I used my GitHub account. Just a tag in the page header (honestly, just the main page would be enough), and step one was done.

Once registered, I added the Webmention.io tag in the header

<link rel="webmention" href="https://webmention.io/www.steo.it/webmention" />
<link href="https://github.com/stearci" rel="me">

With the groundwork laid, I added the form you see at the bottom of this post. A bit of JavaScript with defer loading — so it doesn't weigh down the page performance — takes care of checking for existing mentions for the current page and handling submission when the form is used.

Interesting links on the topic:

Another little piece of the puzzle added! 🍺


June 13, 2026 Update: External Images and CORB (Cross-Origin Read Blocking)

Yesterday I noticed that Mike's avatar and an emoji inserted at the end of the text weren't loading properly.

I can’t do anything about the emoji; I verified that it’s already marked as “????” in the data transmitted by Webmention.io—there’s an initial encoding error that I can’t fix. The situation is different for the avatar: for security reasons, the CORB system blocks the image from loading because it comes from an external site.

The solution I found is to create a local cache of the avatars, which is feasible in Python, but obviously the new images would only appear when the site is rebuilt, and at the moment I don’t have a service that does this automatically; the procedure is manual.

So I opted for a PHP script that acts as a proxy, called by the JavaScript that loads the mentions; if the image is new, it downloads it and saves it to a folder on the server, otherwise it passes it to JavaScript from the local cache. Basically, after the avatars have been downloaded for the first time, all images are loaded locally.

At this point, I could take it a step further and download the JSON file containing the mentions locally, updating it if it’s older than a certain time—an hour, for example. I’ll add that to my to-do list…


Webmentions

Have you written a response? Send a Webmention

Paste the URL of your post (which must contain a link to this page) to make it appear in the mentions.

Loading reactions and mentions...

Related posts:

FROMTHEWEB Blog to visit: kiko.io

Personal blog of Kristof Zerbe, Developer & Photo Enthusiast located in Wiesbaden, Germany

FROMTHEWEB Blog to visit: Robin Wong

I am a photography enthusiast who believes that photography is a lifestyle and a personal creative expression.

FROMTHEWEB Blog to visit: Essential Thinker

In a world drowning in noise, Essential Thinker stands as an oasis of clarity.