1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
The W3C, the administrative body charged with creating standards for the web, recently published the first Public Working Draft of something with the innocuous name of "Webmentions".
Lurking behind that unassuming name lies a draft definition of a standard that might eventually offer users a way to ditch Facebook, Twitter and the rest of the corporate web and return to the open web.
Some web standards begin with little more than an idea and a healthy dose of optimism, but that's not the case with Webmentions. The spec itself may be at the early draft stage but Webmentions are already being used around the web. The publication of the spec just throws some weight behind the idea and "paves the cow path", which is to say abstracts and standardizes something that's already being used.
Paving the cow paths has given the web native video, CSS animations and half a dozen other things that were once only possible with non-standard tools like Adobe Flash. The cow path that Webmentions hopes to pave is how to have linked, threaded conversations across the web.
The Webmentions spec grew out of the <a href="http://indiewebcamp.com">IndieWeb movement</a>, which is a loosely joined group of developers focused on building personal websites -- in its own words "a people-focused alternative to the 'corporate web'".
One of the core ideas of the IndieWeb is that when you post something on the web, it should be yours. It should not belong -- as your tweets and Facebook posts do -- to a corporation. Aside from the basic humanist principles of self-reliance, and political notions of property, much of the appeal in avoiding corporate silos is that eventually the companies go out of business and take all your data with them.
The IndieWeb solution to these problems is to run your own site, retain full control over your data and syndicate it to those corporate sites so that you can still participate in the larger conversation.
It's the larger conversation that creates some problems though. There is after all a reason we've all gravitated toward hosted services like Twitter and Facebook. It's not that users love giving their data to corporations, it's that those corporations have solved important problems -- like how to aggregate, organize and display conversations. Twitter for example is little more than a real-time RSS feed, but it connects conversations in a way that RSS never did.
This is where the Webmentions spec comes it -- the goal is to standardize a way to link together conversations across the web. A Webmention is a simple way to notify any URL when you link to it from your site. Consider this scenario: Alice publishes a blog post. Bob writes a response to Alice's post and links to it. On the web as it is today the only real way Alice ever knows about Bob's post is if someone tells her or if she sees incoming traffic in her logs.
Webmentions is a framework for connecting these two posts such that, if Alice's site accepts Webmentions, Bob's publishing software can automatically notify Alice's server that her post has been linked to in Bob's post. Once Alice's site is aware of Bob's post Alice can decide if she wants to show Bob's post as a comment on her site or link to it from her post and of course if she responds with another post than the conversation can continue.
Webmentions can also help pull some of the conversation out of the corporate sites and back onto your own. The <a href="https://brid.gy/">Brid.gy</a> service takes comments, likes, re-tweets, replies and other interactions from popular sites like Twitter, Facebook, Instagram and Flickr and converts them into Webmentions. This allows developers to focus on supporting just Webmentions rather than needing to write a separate tool for each service's API. By the same token there's a service (<a href="https://webmention.io/">webmention.io</a>) to handle sending Webmentions to other sites.
The Webmentions spec doesn't have much to say about what your site should do with the content at the other end of the "mention", rather it specifies how the two sites communicate and make the connection in the first place.
Webmentions are already being used in the wild, and how the mentions are handled varies widely. Some people publish links to mentions -- make Webmentions appear somewhat like the once-popular <a href="https://en.wikipedia.org/wiki/Pingback">Pingback</a> concept -- others pull in the entire content and display it a bit like a comment. Indeed Webmentions are similar to Pingback, but eliminate Pingback's XML-RPC format in favor of simple HTTP and x-www-urlencoded content. Even the inventor of Pingback now <a href="http://www.kryogenix.org/days/2014/11/29/enabling-webmentions/">uses Webmentions</a>.
So far the <a href="http://indiewebcamp.com/webmention#IndieWeb_Examples">use of Webmentions in the wild</a> is limited enough that spam is only beginning to happen. Eventually though the spam problem that haunts comment systems today will inevitably come to Webmention. The spec doesn't directly address spam, though services like Akismet make eliminating comment spam more manageable and would work just as well with Webmentions (there's also an additional proposal named <a href="http://indiewebcamp.com/Vouch">Vouch</a> for cutting down on spam).
The Webmentions specification is far from an actual standard. It's still in the early stages. The spec's author, Aaron Parecki, says that the next step is to get feedback. "We need more implementations and more feedback from people who are actually using the spec."
Interested developers can start building Webmention tools today. In fact many tools already exist. If you'd like to play around with Webmentions on your own site there are plugins available for <a href="https://wordpress.org/plugins/webmention/">WordPress</a>, <a href="https://www.drupal.org/project/vinculum">Drupal</a> and other <a href="http://indiewebcamp.com/Webmention#Publishing_Software">publishing systems</a>. If you don't yet have a site, there's <a href="https://withknown.com/">Known</a>, a service that sends and receives Webmentions.
|