![]()
Webmention is an open web standard (W3C Recommendation) for conversations and interactions across the web, a powerful building block used for a growing distributed network of peer-to-peer comments, likes, reposts, and other responses across the web.
Why
Enables cross-site conversations. When you link to a website, you can send it a Webmention to notify it. If it supports Webmentions, then that website may display your post as a comment, like, or other response, and presto, you’re having a conversation from one site to another!
”… an @ mention that works across websites; so that you don't feel immovable from Twitter or Fb.” — Rony Ngala
How to implement or display
When you publish a post with links to other sites, your site can send a webmention notification to sites that accept them to inform them that they were linked to.
A webmention receiver provides discovery of their webmention endpoint so it can be found by others who link to the page. When a receiver’s endpoint receives a webmention notification, it looks up the sender’s post and may display it as a response.
Mentions mainly require a link to the recipient on the page, but they can be enhanced into more meaningful responses (such as comments, reposts, or likes) by adding microformats to the sender’s post.
Guides to adding webmentions:
Want to learn more about the technical details? See:
IndieWeb Examples
Indie Web sites that have implemented webmentions and display them nicely!
Aaron Parecki with p3k
- Aaron Parecki using p3k on aaronparecki.com as of 2013-05-26. Details:
- Posts have an input form for pasting in your comment URL to conveniently send a manual webmention (as of 2013-10-12)
Ben Werdmuller with Known
Barnaby Walters with Taproot
Jeremy Keith with adactio.com
Barry Frost with barryfrost.com
Bear with bear.im
- Bear on bear.im as of 2013-12-01.
- All posts accept webmentions and send webmentions for new and updated posts
- Full Discovery for link headers, links in html head and body
- webmention handling done by the Python library ronkyuu
Kartik Prabhu with kartikprabhu.com
Jeena with jeena.net
Pelle Wessman with webmention.herokuapp.com
Christian Kruse with wwwtech.de
- Christian Kruse using a home grown Phoenix app on https://wwwtech.de as of somewhen in 1998. Details:
- All homepage, blog posts and notes, photos, comments accept webmentions
- Discovery with
rel="webmention"in HTTP header and HTML document - Sends webmentions on create and update, no salmentions yet
Andy Sylvester with WordPress plugin
gRegor Morrill with ProcessWire plugin
- gRegor Morrill sending and receiving webmentions on gRegorLove.com as of 2014-02-04.
- Using a custom plugin I developed for ProcessWire; previously a plugin for Nucleus CMS
- All articles can receive webmentions
- Webmention endpoint is broadcast via Link: HTTP header and <link> element
- Incoming webmentions validate the target is a valid URL on gregorlove.com and the post ID in the URL is valid.
- Webmentions are parsed and further validated asynchronously. Replies/mentions are displayed interleaved with "local" blog comments..
- More implementation notes
David Shanske with WordPress plugin
Ben Roberts with ben.thatmustbe.me
- Ben Roberts sending and receiving webmentions on ben.thatmustbe.me as of 2014-04-24
- Parsing replies, mentions, and likes. Rsvps are handled as just mentions currently.
- Discovery with both:
rel="webmention"andrel="http://webmention.org/"links in head, and HTTPLink: rel="http://webmention.org/header - Currently uses vouch and a whitelist while all others are sent to moderation.
- Processing happens asynchronously by cron job.
- Submissions return a link for queue record that returns a status as a
Webmention-Statusheader as well as a minor note in the body. - Attempting to keep implementation notes as a modified spec at webmetion0.2-b1
- Sending is done automatically when post is made.
Chris Aldrich with WordPress plugin
Khürt Williams with WordPress plugin
Will Norris with webmention.herokuapp.com
Joel Dueck with thelocalyarn.com
- Joel Dueck receiving webmentions on thelocalyarn.com as of 2014-09-23.
- All posts accept webmentions as well as traditional comments.
- Webmentions (if valid) are logged to a text file and sent to Joel via email. Those that pass moderation are manually added to the target post as a comment (which on this site means it is included in the blog and sent to email and RSS subscribers as well as being appended to the target post).
- Endpoint is a modified version of Jeremy Keith's webmention.php.
- Webmentions sent manully. More to implement. To-do list is long. Site is running Textpattern CMS, so a complete webmentions plugin is both feasible and ideal.
- Johnny Oskarsson receiving webmentions on joskar.se as of 2014-10-23.
- Webmention endpoint is broadcast via Link: HTTP header only.
- Pages marked up with h-entry in-reply-to show up as comments, others won't show up at all. (but they will be logged)
- Webmentions are sent manually for now.
Stuart Langridge with Pelican additions
Alex Kearney with IndieAnndroid
Tantek with Falcon
Tantek Çelik using Falcon on tantek.com sends webmentions automatically as of 2015-06-11 specifically for the following kinds of links:
Jason Garber with FrancisCMS
Jason Garber using FrancisCMS on sixtwothree.org as of 2016-01-27. Details:
- All posts, links, and photos automatically accept webmentions. Replies, shares, and likes are reverse syndicated via Bridgy.
- Post, link, and photo permalink pages have an input form for pasting in your comment URL to manually send a web mention.
- Discovery with:
Link: <https://sixtwothree.org/webmentions>; rel="webmention"HTTP header and<link rel="webmention" href="https://sixtwothree.org/webmentions">in the HTML's<head>. - Webmention source URLs are parsed using the microformats2 Ruby gem.
Calum Ryan with calumryan.com
Calum Ryan on calumryan.com
- Since 2016-08-28 support for receiving webmentions using jekyll-webmention_io initially on purely Jekyll generated pages but now also on notes generated from self-built CMS in PHP
- Since 2016-11-06 built in function for manual sending of webmentions via self-built CMS in PHP using mention-client-php
Sebastiaan Andeweg on seblog.nl
Daniel Goldsmith with Hugo
Amit Gawande with amitgawande.com
fluffy with beesbuzz.biz
Jamie Tanna with Hugo
Wouter Groeneveld with Hugo
Alberto Mardegan with Bussator
Alberto Mardegan with Bussator, Nikola and Isso on www.mardy.it
- Template:Www.mardy.it has been receiving webmentions on mardy.it since October 2019
- It's a static website generated by Nikola, running on a cheap shared hosting
- Comments are handled by Isso
- The receiver is a Bussator instance which transforms webmentions into comments, which are then forwarded into Isso
Jan-Lukas Else with Hugo and now GoBlog
Danny Steenman with GatsbyJS
Ferdinand Mütsch with Hexo
- Ferdinand has been receiving webmentions on muetsch.io since April 2020, using webmention.io and Telegram MiddlemanBot to receive notifications as instant messages.
- Since then, Webmentions are also sent to all referenced articles in his blog posts when a new publication is made
Rasul Kireev with Gridsome
- Rasul Kireev using Gridsome, webmention.io and brid.gy on rasulkireev.com as of 2020-08-17. Details:
Max Dietrich with Next.js
- Max Dietrich has been receiving webmentions on mxd.codes since February 2021, using webmention.io and brid.gy.
- Webmentions are filtered by typ, e.g. "repost-of", "like-of", etc. and shown at the bottom of articles and notes
Mrs. D with Hugo
capjamesg on jamesg.blog
capjamesg displays webmentions on his Jekyll static blog. Webmentions are rendered using some custom JavaScript code that queries his webmention endpoint. James also hosts his own webmention endpoint. Visitors can send a webmention from the endpoint by using the "send webmention" form that appears at the bottom of all content pages (i.e. blog posts, coffee posts, likes).
4X_Pro on 4xpro.ru
4X_Pro added basic support for webmentions in his Intellect Board forum engine since April 2022. Webmentions are displayed as simple comments from special WebMention user.
Robijntje on geheimesite.nl
ᜌᜓᜃᜒ (Yuki) with Hugo
Owen Young with Zola and Github Actions
Mike Bifulco with Next.js
EINDEX with Astro and CI Workflows
Luis Quintanilla with WebmentionFs
carrvo with SVNmentions
Uses webmention.io for all his sites to receive them, then displays them manually.
Publishing Software
Some open-source publishing software with core support for webmentions and is ready for typical users:
Known
- Known personal publishing software sends webmentions and accepts webmention comments (including webmention updates) and likes
Perch
- Perch began beta testing webmentions on 2017-07-16
- Perch adds support for sorting webmentions on 2017-07-26. See facepile
Plugins exist for some open source publishing software and CMSs:
WordPress
Drupal
Craft
Nucleus CMS
Kirby
Process Wire
Elgg
Django
Grav
- Grav CMS used to send and receive webmentions through the webmenton plugin. The plugin was abandoned by the owner on 9 June 2022 and is available to be taken over. There is one report that it does not work with Grav > 1.6.2
b2evolution
Others
Some other open source publishing software supports webmentions:
- FrancisCMS personal publishing software similarly sends and receives
- WWWTech personal publishing software similarly sends and receives
- phorkie sends and accepts webmentions to notify remote instances about forks
- gRSShopper added Webmention support on 2018-09-27
- Pelican has a plugin to send webmentions
- Ghost uses webmentions for its recommendations feature
Some additional publishing software, portions of which are open source, supports webmentions:
- p3k sends webmentions for all posts and accepts webmention comments on events, notes, replies, RSVPs
- Taproot
- Falcon sends webmentions for all links in posts (except maybe articles - untested)
Closed Source Publishing Software
While not open sourced, there are several publishing/blogging platforms with core support for webmentions.
Micro.blog
- Micro.blog can send and receive Webmentions. When you use Micro.blog to reply to a post in the timeline, Micro.blog will send a Webmention for that post if it is hosted outside of Micro.blog. When receiving a Webmention, Micro.blog will attempt to map the incoming reply to an existing Micro.blog user, otherwise it will create a special record for the external site based on its domain name.
i.haza.website
Pine.blog
Typlog
Aggregator Software
Prismo
- Prismo is link aggregator software that began supporting Webmention in version 0.6.0rc4 [3]
- Prismo currently only sends webmentions for posted links, not links within comments.
Services
Services that automatically send and/or receive webmentions for links in posts.
Lobsters
Lobsters (lobste.rs) sends webmentions for any links aggregated there.
Web We Want
Requests on the Web We Want site are setup to receive webmentions to upvote, e.g. via like and bookmark responses as described in https://webwewant.fyi/voting/
Publisher Services
Services for publishers to handle receiving & sending webmentions for their sites or using webmentions for additional services like POSSE. Alphabetical:
Bridgy
brid.gy is a service that sends webmentions for comments/replies, likes, and reposts on Twitter, flickr, GitHub, Mastodon, and Instagram posts. It uses original post discovery to find target links for the webmentions. GitHub repo here.
Bridgy Publish also supports webmention as a mechanism to trigger POSSEing to Twitter, flickr, GitHub, Mastodon, and Instagram.
Bussator
Bussator is a webmention receiver which publishes webmentions as comments. Its modular design supports publishing to multiple commenting systems, but currently only a plugin for Isso has been implemented. Bussator is a WSGI application, which can also be installed as a FastCGI service (that is, one doesn't need to have a webserver running all the time).
capjamesg Webmention Receiver
capjamesg has open sourced his webmention receiver. While still in active development, the project will let you host your own webmention sender and receiver. You can find the project on GitHub.
Go-Jamming
go-jamming is a single binary native Go microserver that is capable of automatically sending and receiving mentions based on your RSS feed. It takes privacy and security into account and includes rate limiting, black/whitelisting to counter spam, ...
Jekmention
Jekmentions was a service that receives webmentions and stores them in a git repository.
Lazymention
Lazymention is an open source service you can run on a Node.js server to send Webmentions from static sites. Its general purpose is to add dynamic building-block features to otherwise static websites.
mention-tech
mention.tech is a service that can:
- send webmentions on behalf of anyone using a web form on its home page
- send a URL to the Internet Archive
- mention all links on a page
stapibas
stapibas is a self-hosted service to send and receive webmentions for websites and blogs.
It can be used to send out webmentions and pingbacks for new posts on static sites.
Telegraph
Telegraph is an open source project and hosted service for sending webmentions and pingbacks. You can use it to send mentions to all links on a page, or send a webmention with specific source and target.
webmention.herokuapp.com
webmention.herokuapp.com is an open-source project and hosted service for receiving webmentions for registered sites and allowing those to be displayed through javascript.
webmention.io
webmention.io is an open-source project and hosted service for receiving webmentions and pingbacks on behalf of your indieweb site.
webmention.app
webmention.app is a platform agnostic service that will check a given URL or feed for any number of content entries, discover whether there are links that support webmentions, then send the webmention to the target. It is intended for an automated workflow and includes simple instructions on how to integrate into existing workflows (using tools like IFTTT or the command line or Netlify).
Tools
Tools you can use or install to send webmentions
Firefox Addon
Pushl
Pushl is a command-line tool for sending webmentions from pages discovered from arbitrary feeds (RSS, Atom, and h-feed) or from specific URLs, and can be run from a cron job, Git commit hook, or other mechanisms to automate its execution.
Manual Webmentions
Users without other simple means to send a Webmention from one site to another can use the following tool interfaces to "manually" send webmentions on their behalf:
For those with more programming knowledge there is also a method for sending webmentions with cURL.
To manually receive webmentions you can have your web server log HTTP POST requests sent to your webmention endpoint URL to a file. Then you look at the log file with your text editor and respond manually, or script it, or whatever you like. An example of how to do this with nginx is at "A static, manual system for *receiving* webmentions (and pingback) with nginx" http://superkuh.com/blog/2020-01-10-1.html
commentpara.de allows you to send webmentions anonymously, which allows readers to comment on an IndiWeb post without having their own presence.
Resources
Webmention Font Awesome Icon
Libraries
Articles
Blog posts and articles about webmention (newest first)
Extensions
Webmention Development
Frequently Asked Questions
See Webmention-faq
History
The first draft of the webmention protocol was written by Sandeep Shetty on 2012-10-22.
Previous Examples
Sandeep Shetty
Sandeep Shetty used Converspace. The domain now redirects, however based on git commit history and archived links:
- 2013-06-04: added ability to send webmentions [4]
- 2013-06-09: added ability to receive webmentions [5]
- 2013-06-11: received a webmention from
Aaron Parecki and displayed it as a comment. [6] [7]
Tom Morris
- Tom Morris using Ferocity on tommorris.org as of 2013-??-??. Details:
- All(?) posts send webmentions (as of 2013-??-??) upon posting (asynchronously with posting UI, no results reported).
- Confirmed page no longer has webmention endpoint on 2021-12-27
Christian Weiske with stapibas
- Christian Weiske receiving webmentions on cweiske.de as of 2013-10-22. Details:
- All posts accept webmentions using stapibas
- Discovery only with HTTP
Link: <http://cweiske.de/stapibas/xmlrpc.php>; rel="webmention" - Approach for sending webmentions (with fallback sending of pingbacks)
- https://github.com/pear2/Services_Linkback/blob/master/src/PEAR2/Services/Linkback/Client.php#L236
- check self Atom feed, if there are updates then proceed with discovery/sending for each update, for each link in the update: do a HEAD request first, do discovery for webmention endpoint, if none found, do discovery for pingback endpoint, if none found and the resource is
'application/xhtml+xml'or'text/html', do a GET request, do discovery for webmention endpoint, if none found, do discovery for pingback endpoint. send webmention if an endpoint was found, otherwise send pingback if an endpoint was found.
- Not retrievable on 2021-12-27
Testimonials
(this section is a stub, please feel free to expand it)
See Also
Glenn Jones with node webmentions module
- Glenn Jones using node.js module github.com/glennjones/webmentions on glennjones.net as of 2014-02-19.. Details:
- All notes accept webmentions
- Discovery only with:
rel="webmention"link in head - The notes editor has an input for the
in-reply-toURL - The webmentions module allows pinging of webmention between any sites
- Yet to implement: full authorship parsing, updates, deletes.
- 404 as of 2021-12-27
Dan Lyke with www.flutterby.com
- Dan Lyke receiving webmentions on Flutterby.com blog entries as of 2014-10-10.
- Webmention endpoint is broadcast via <link> element and <indie-action> element.
- Currently only displays links on title text back to source URLs
- No webmention header as retrieved 2021-12-27
Jay Robinson with aruna
- j4y_funabashi on j4y.co as of 2016-06-13.
- All new posts send webmentions
- passes all 21 Discovery tests on webmention.rocks
- receiving sort of works but I don't display anything yet and there are bugs that sometimes spam brid.gy
- Site not live, returns nginx config page as of 2021-12-27
