Enabling Webmentions

Well, everyone’s doing Webmentions these days. So, there’s a bandwagon here to jump on.

All this is really my fault. It is a good idea that, when I write a post which links elsewhere, that the elsewhere gets told that I linked to it. This way, the web stays connected — obviously, a link from A to B is one-directional, and these notifications allow links to be two-directional.

So, 12 years ago, I invented Pingback. Sorry.

Pingback uses XMLRPC because that was the cool thing at the time and because I was young and foolish and had a peanut for a brain. Ian Hickson took my vague spec and kicked it in the arse to make it a proper spec, and it got adopted really quickly. Back then, when the world was young, everything got adopted really quickly; there was so much new ground to be broken that coming up with a reasonable way to do something (permalinks, RSS autodiscovery, pingbacks) meant that it got picked up by everybody.

However, XMLRPC is considerably less popular than it was, and is really heavyweight for this sort of thing. We’ve learned since then that HTTP can actually do all this stuff for us way more simply1 and we’ve learned how best to use HTTP to express the whole bunch of loosely-defined agreements and protocols that we now call the Open Web. Hooray! And I should get on board, partially as penance and partially because it’s just a jolly good idea.

Jeremy implemented this for his stuff ages ago (and I defer to his post for a more detailed explanation of what webmentions are), but the thing which prompted me to actually get off my arse and make this happen was Aaron writing up how he did it2 with Jekyll, a static site generator. Now, adpb is also a static site (with Pelican, a Python site generator), and I really liked Aaron’s idea of baking one’s incoming webmentions into the page at build time and then re-fetching them live with JavaScript at run-time to display any webmentions which have come in since the last time I regenerated the site. Also like Aaron, I didn’t want to run my own webmentions endpoint (because databases are hassle), and so looked at Pelle Wessman’s webmention endpoint which he’s spun up on Heroku. One quick signup and I was good; I could send webmentions and Pelle’s app tracked them for me. Nice.

I then, of course, needed to fetch the webmentions for my whole site at build time — the initial version of the endpoint didn’t do this and instead required requesting the webmentions for each individual URL, but I have about eighteen hundred posts on this site and so a quick patch submission later and I could grab all the webmentions for kryogenix.org in one request. Pelle graciously fixed, merged, and deployed said patch, and now we were off to the races.

I put together something approximating a Pelican plugin for webmentions3 and wrote some JavaScript to do the live fetching, and also pinched Jeremy’s idea of being able to manually submit an incoming link. And there we have it. I’m part of the Indie Web.

It would be nice if this stuff were in core WordPress, I’d say. Also, people have started thinking about webmention spam and how to avoid it; Vouch seems a reasonable approach, and it’d be interesting to see where that discussion goes and whether we can fix this before it becomes a problem. Also, I have added myself to the indieweb IRC people list and am hanging out on freenode IRC in #indiewebcamp.

  1. ok, ok, Roy Fielding, you knew already
  2. because Aaron and I were having a blog-to-blog conversation, and that sort of thing is the perfect environment for webmentions to thrive and prove their worth
  3. code is in a gist on github rather than a nicely submitted plugin project, because it’s got too much stuff in it which is hardcoded rather than generic, but it would be a useful start for someone wanting to build something proper
I'm currently available for hire, to help you plan, architect, and build new systems, and for technical writing and articles. You can take a look at some projects I've worked on and some of my writing. If you'd like to talk about your upcoming project, do get in touch.

More in the discussion (powered by webmentions)

  • Tantek Çelik responded at tantek.com @sil welcome! As inventor of #pingback your support is a huge milestone for #webmention. Let's see how soon this shows up. Posted 17:32-0800.
  • Aaron Parecki responded at aaronparecki.com @sil Congrats! This is exciting to see! #indieweb
  • Aaron Parecki responded at twitter.com @sil Congrats! This is exciting to see! #indieweb (aaron.pk/r4ZP1)
  • Jeremy Keith responded at twitter.com @sil @voxpelli @AaronGustafson Woo-hoo! Nice one!
  • A response was written at Enabling Webmentions (aaronparecki.com) “So, 12 years ago, I invented Pingback. Sorry. Pingback uses XMLRPC because that was the cool thing at the time and because I was young and foolish an…
  • Michiel de Jong responded at michielbdejong.com Cool! Inventor of pingback jumps on the webmention bandwaggon. Hadn't heard about Vouch yet, that's smart as well. Totally agree WordPress and other C…
  • Ryan Barrett responded at as days... (snarfed.org) awesome! now that you accept webmentions, feel free to try brid.gy next to pull back comments, retweets, +1s, etc. too!
  • Aaron Parecki responded at Aaron... (twitter.com) favorited this.
  • jason responded at jason... (twitter.com) favorited this.
  • Peter Gasston responded at Peter... (twitter.com) favorited this.
  • Bret Comnes responded at Bret Comnes... (twitter.com) favorited this.
  • Kris Noble responded at Kris Noble... (twitter.com) favorited this.
  • Tantek Çelik responded at twitter.com @sil welcome! As inventor of #pingback your support is a huge milestone for #webmention. Let's see how soon this ... tantek.com/t4ZP2
  • Tantek Çelik responded at Tantek... (twitter.com) favorited this.
  • Pelle Wessman responded at twitter.com @t @sil Full CRUD is unfortunately still on my todo :/
  • Christophe Ducamp responded at xtof.withknown.com via @t : @sil l'inventeur du #Pingback active les #webmentions > http://www.kryogenix.org/days/2014/11/29/enabling-webmentions/ ...) when I write a po…
  • Christophe Ducamp responded at twitter.com via @t : @sil l'inventeur du #Pingback active les #webmentions > kryogenix.org/days/2014/11/2… ...) when I write a post .. xtof.withknown.com/2014/via…
  • Aaron Gustafson responded at twitter.com @sil This is great! Congrats and thank you! I may implement the submission idea too.
  • Aaron Gustafson responded at Aaron... (twitter.com) retweeted this.
  • Aaron Gustafson responded at Aaron... (twitter.com) favorited this.
  • Joschi Kuphal 吉 responded at Joschi... (twitter.com) favorited this.
  • Webrocker responded at Fiddling... (www.webrocker.de) Wow, Steward Langridge, inventor of the pingback mechanism, has enabled webmentions on his blog, as he tweetedjust a couple of hours ago. I think this…
  • Vedran Rudelj ≠ ☃ responded at Vedran... (twitter.com) favorited this.
  • A response was written at as days... (adactio.com) Stuart has implemented webmentions on his site, which is great. It’s also fitting, as he is the inventor of pingback (of which webmention is a simpler…
  • An unnamed person responded at vacilando.org
  • Peter Molnar responded at WordPress,... (petermolnar.eu) A long time ago, as many still does, I had my own CMS. It was fun and it was needed since the ones available that time - like PHP-Nuke – were pretty t…
  • Jeena responded at Jeena ♥... (jeena.net)
  • Pelle Wessman responded at Den... (voxpelli.com) Sociala medier. Synonymt med Facebook, Twitter, Instagram. Vad händer när en av dem försvinner? Är det game over då? Jaiku i repris, fast denna gång u…
  • Stuart Langridge responded at twitter.com @slicknet I did, for the same reason. kryogenix.org/days/2014/02/1… (and I have webmentions, kryogenix.org/days/2014/11/2… for blog-to-blog conversati…
  • An unnamed person responded at imaginationeverywhere.info
  • Stuart Langridge responded at twitter.com Webmentions might also have a spam problem; that's discussed more in kryogenix.org/days/2014/11/3… along with one potential way to help solve.
  • Jonathan Dowland responded at twitter.com Thanks. I guess Wordpress was the biggest adopter. I’ve just realised my bug/wishlist/todo item for pingbacks in ikiwiki is approaching 10 years old.…
  • Stuart Langridge responded at twitter.com yup. That's exactly what webmentions are trying to be :)
  • Drei aka Bitcoin Master responded at It’s 2019 -... (oliodigest.com) So I was browsing around for more information about Webmentions, its implementation and popularity. I happened to land onStuart Langridge’s old post a…
  • Stuart Langridge responded at twitter.com Adopting the concept, yes. Better would have been for them to use Webmentions, which are what Pingback should be; that is, not using XML-RPC, I think…
  • David Sasaki responded at twitter.com Ooh, it *would* be nice if @wordpress adopted webmentions in the core code — maybe with @akismet integration to deal with the inevitable spam? Well, S…
  • Barnaby Walters (waterpigs.co.uk) responded at twitter.com
  • Aaron Parecki responded at twitter.com
  • David Sasaki responded at twitter.com
  • Pelle Wessman responded at mastodon.social
  • Pelle Wessman responded at mastodon.social
  • doug responded at mastodon.social
  • Josh Dick responded at mastodon.social
  • Oliver responded at mastodon.social
  • Charles Roper responded at mastodon.social
  • Oliver responded at mastodon.social
  • ge ricci responded at mastodon.social
  • Stephen Kellat responded at mastodon.social
  • Stephen Kellat responded at mastodon.social
  • Bruno Girin responded at mastodon.social
  • axemonkey responded at mastodon.social