Anyone for Webmention?

Do you have any synopsis of the best way of getting webmentions integrated into a Hugo site?

WebMention integration needs a multi-part solution:

  • You need to set up an “endpoint” for your site where you plan to receive the Webmentions. This includes your indieauth setup.
  • Once your site can receive Webmentions, you need to show them somehow. Normally people use JavaScript to show the live fetched Webmentions in an iframe or something. But I didn’t want any JavaScript and any fetching delay. That delay is one of the reasons I gave up Disqus. I simply regenerate the site with static rendering of the Webmentions each time WebMention.io sends a trigger. So there is a delay of about a minute or so, till the sent WebMention actually appears on the site. I’m fine with that delay on sending as the static Webmentions keep the site snappy… but that might not be the best option for everyone.
  • If you want to send Webmentions too, you first “need” to add the microformats2 metadata at right places in your template. I’m quoting the “needs” because you don’t necessarily need that. But it you don’t microformats2 your site, your sent Webmentions will just go as link pings. If you do have the meta-data, the receiving WebMention endpoint will parse stuff like tags, content, author, etc. out of your sent WebMention.

I have started some work on documenting these, but still far away from finishing. But hopefully going through my theme helps you. Once again, I don’t know if this is the best way, but it is the way that worked for me :slight_smile:

2 Likes

Many thanks, kaushal!

1 Like

I must be missing something basic. I have a rel="me" with my email in the page; I authenticating using this at indieauth and registered the code it emailed me; but I don’t seem to be able to ‘get’ webmentions. (I used essentially your hugo theme, so I assume the microformats2 metadata should be in the right places).

Edit: So I realised I hadn’t also registered at webmention.io but only at indieauth, and once I did so, I can now see webmentions if I rebuild.

Can you say something about how your rebuild trigger method works? I’m assuming that requires something beyond the hugo-refined theme itself.

I cannot verify the rel="me" with email as I used the shortcut approach to authenticate myself with GitHub.

The webmentions showing up on your site comes later. You need to first verify if you can see your received webmentions on your endpoint. See Webmention.io.


That tells how focused reading I do :stuck_out_tongue: … I didn’t even read that edit and started answering the above. Anyways, now that I typed it, I’ll leave it there :slight_smile:


I have this diagram that summarizes my flow.

Yes, a combination of:

  1. Make webmention.io trigger Zapier hook on receiving each mention. See Webmention.io.
  2. I user Zapier to send me emails on receiving mentions + trigger Netlify’s build hook. Create a Netlify build hook at: https://app.netlify.com/sites/YOUR-SITE/settings/deploys#build-hooks. This of course requires that you deploy your site using Netlify.

I could have even made webmention.io trigger the Netlify hook directly. But I wanted Zapier so that I can spawn off multiple actions (like sending me email + triggering Netlify) from that one trigger from webmention.io.

Thanks, @kaushalmodi. I think I’ve finally figured more of it out. I ended up back just having webmention.io trigger the netlify hook directly, but I tried some other combinations. Zapier looks like one is limited to 100 actions on the free account (though likely many blogs will be below 100 comments/month). I found that that though IFTTT doesn’t seem to be able to receive webhook POSTs, and though Integromat doesn’t seem to be able to send webhook POSTs, one can have Integromat receive the webhook POST from webmention.io, and then send an email to IFTTT which can act as a trigger for IFTTT to send a webhook POST to netlify (and whatever else one wants it to do) – in case other people are looking for solutions that don’t end up costing $120+/year… (this combination seems to be free).

1 Like

Thanks. Yes, that’s a good point about Zapier (limit of 100 tasks per month). I never reached that limit in past few months, and I completely forgot about that. :stuck_out_tongue:

I hadn’t heard about Integromat before. Now I know what to look into if I ever reach that 100 tasks limit. Thanks! :slight_smile:

It does receive both POST and GET requests. However, I believe that the parameter names are limited to value1, etc.

You would need to take some care with them if you don’t want charges. Free is limited to 1000 “operations” per month but a single flow can result in many operations. This could be a problem if you had a flurry of mentions which might easily result in several operations per mention if you weren’t careful.

https://www.integromat.com/en/kb/operations.html

Still, it looks like a really interesting option that I hadn’t seen before.

Another possible option would be Microsoft Flow. Microsoft Power Automate

The limits on Flow are a little tricky to track down. I think they are 750 flow executions per month. I believe there is a maximum complexity for a flow though I’ve not hit it. If you are an Office 365 subscriber or use Azure, you get some more features though some of those have additional charges.

For the “If this” part, I couldn’t find “webhook” anywhere for IFTTT. It pointed me to “Maker”, which seems overly complicated for just POST requests.

So does processing a POST and sending an email count as one or two (or more?) operations? I saw the 1000 operation limit, but thought that that was much higher than Zapier’s free tier 100 limit, but I suppose it depends on how they count things.

I didn’t know about Microsoft Flow. Though I don’t think that’s one I myself would be likely to use as I try to steer clear of Microsoft (for both ideological & pragmatic reasons). Does it have a similar range of functionality to Zapier and others?

Yes, that’s what they renamed their incoming hook to. Aimed at IoT and maker folk. It is free after all, so hard to complain too much :face_with_raised_eyebrow:

Well, it depends :frowning: - I think it would count as 2 ops. But if your POST resulted in 2 emails or an email and and ongoing POST, that would be 3. You would get more problems if you were, for example, processing a Twitter feed because you couldn’t predict how many tweets you might pick up. If that feed processing resulted in multiple output records, you could use up many ops in a single run.

Well, the ideology of Microsoft has massively changed since the removal of Balmer and the arrival of Satya. Their commitment to open source and particular commitment to listening to customers has revolutionised them as an organisation. Though, of course, they are so large that the message still hasn’t quite filtered through to the whole beast. Without wishing to disappear down an off-topic rabbit hole, I think that it would rather disingenuous to object to Microsoft on ideological grounds without objecting to all of the other big players including Apple, Google, Amazon, Oracle, etc.

It does have a similar set of capabilities to the others though you can create much more complex flows, more like Integromat in fact. You can do splits and options so that a trigger can result in many actions. Zapier free tier only allows a single trigger and a single action. If you need to integrate to Microsoft services such as Dynamics or SharePoint Online, unsurprisingly, it has better than average capabilities.

The point is that it gives you another way to get some free web automation.

Do you know of any good guide to setting up incoming hooks on Maker? I tried, and got lost.

What you say is of course true, but even so it’s not like Microsoft is really a bastion of open source. I also try to avoid a lot of the other big players to a large extent, but (on the issue of software freedom) Microsoft (and Apple) are still in a different category than, say, Google. Those issues aside, from a purely pragmatic standpoint, I have yet to find any Microsoft software or service which actually works well or reliably, so I would also be dubious on those grounds.

In terms of ‘free tier’ services, IFTTT seems to offer the most, though I am (as per my other post) finding their ‘Maker’ service confusing.

To be honest, I’d forgotten about how to do an inbound connection. They haven’t made it any easier because they’ve well and truely mixed up webhooks and maker names.

They are trying to drive you to https://platform.ifttt.com first. But that is for creating a new applet.

This tutorial for an Arduino should give you the clues you need: IFTTT Webhooks on Arduino – Arduino, ESP8266, ESP32 & Raspberry Pi stuff

As you can see, it is actually very simple once you know how :slight_smile:

1 Like

Have you seen their presence on GitHub? Certainly not all of Microsoft is onboard but certain, large, parts certainly are. I’ve been working closely with them for a good few years now and I’m all to aware of their failings but I have to say that most of the people I’m dealing with - in the Office 365 and Azure world - are very much behind the concepts of open source and are doing their best to follow that path.

They are rapidly working out how to make (shedloads) of money now that their traditional business models are tailing off and they’ve seen how open source can work in their favour.

Anyway, enough on this topic. Happy to discuss over DM if you like but doubtless we are now boring other people who, rightly, want to hear about Hugo.

This helped a lot - I got confused on platform.ifttt.com .

So I now have two services, both triggered by a webhook POST from webmention, one that triggers the netlify build hook and one that sends an email. Unfortunately, I can’t get IFTTT to pull any of the info from the POST from webmention - as it only allows reference to {{value1}}, {{value2}}, {{value3}} and I don’t seem to be able to change that. So I can trigger a rebuild and I can get an email notification - but I won’t know which post got a comment (well, I can find out from the webmention page, but not in the email).

Why would we use IFTTT or such centralized hosted platforms? I don’t think it should be too hard to interface with a self-hosted solution.

After looking at a few different projects, i think i will try with fisher, which allows to have a hooks dir with the hook config located at the top of every hook itself like so:

#!/bin/bash
## Fisher-Standalone: {"secret": "ABCDEFGHIJKLMNOPQRSTUVWXYZ"}

The docs about integration with external providers are sweet :slight_smile:

Well, probably it is either for people without programming skills or for people without the time to implement and maintain yet another set of tools.

There are many easy ways to create a microservice, if you already use NodeJS, Python, PERL, Ruby, etc. you can get one running in a few minutes. But then you have to secure it so there is more time in configuring your web server (or reverse proxy) - same is true for Fisher.

If you are using NGINX, you could easily implement something using the LUA plugin.

But all of that takes time to set up, ensure it is secure, maintain it, …

This is the same reason I will not be using webmentions at all - until it is greatly simplified with an easy-to-use wrapper. I already have too much on and too much to maintain, I can’t afford to take on another complex set of services just to get some mentions on my blog.

Services like IFTTT should simplify these things.

2 Likes