Replied to Webmentions and Campfires by Kevin CunninghamKevin Cunningham (kevincunningham.co.uk)
Over in the garden, I’ve started a section on webmentions - including how Lauro (@laurosilvacom) and I got them up and running on our Gatsby blogs. We streamed that and I’ll link to the video when it’s available. Equally, I’ve linked to some excellent examples and posts over there.

I want these posts to be part of a conversation rather than a one-sided proclamation from the roof-tops. Using webmentions to poll for replies on Twitter and other blogs seems like a good start.

What other ways can we stop ourselves standing in dark rooms and shouting into the void? How can we light campfires and create spaces for conversation that are welcoming and mutually beneficial?
Kevin, I like your ideas here and there are many of us who have been discussing it in various nooks of the internet over the past couple of years. It’s a movement and a discussion that has been slowly brewing, but seems to be coming to a boil.

While some of these ideas sound romantic at present with minimal penetration and implementation, we’ll definitely need to be cognizant of how they grow and building tools to mitigate abuses in the future as they become more common. No one wants Webmention to become a vector for spam and harassment the way it’s poorly designed and implemented predecessors like Pingback or Trackbacks were.

While the IndieWeb seems to be the largest hub of this conversation so far, especially for the technical portions, it’s also been distributed across multiple platforms and personal websites and wikis. If you haven’t come across the IndieWeb you may appreciate their wiki and bridged chat channels.

Lately I’ve noticed a big spillover into the wiki space primarily by way of Tom Critchlow, Kicks Condor, some from TiddlyWiki and the Roam Research spaces, and many of your colleagues at egghead.io. I’m personally looking forward to the convergence of the website, blog, personal wiki, commonplace book, etc. in a single platform. 

As I notice that you’re in Brighton, if you haven’t been before, you might consider joining in one of the local Homebrew Website clubs either there, in other parts of the UK, or across the world. I see events for Nottingham and London coming up on the schedule, but I’m sure Jeremy Keith or other organizers will do another in Brighton soon.

In any case, you’re on the web, and we can “see” and “hear” you. Thanks for drawing up a campfire to create a discussion.

Replied to a tweet by Ali SpittelAli Spittel (Twitter)
Nearly headless WordPress (for ubiquity and ease-of-use) + Micropub (for posting almost anything quickly) + Webmention (for cross site communication) + frosted in IndieWeb goodness = blog evolved.

Sadly, it seems like too many in the thread completely got lost on the “why” portion which was the best part of the question.

Replied to a post by Bix Bix (bix.blog)
Has anyone gotten webmention set up on a WordPress blog solely for internal references? So that when you link to previous of your own posts, those posts will then also link back, creating a deeper contextual web on your blog?
Bix, this functionality is definitely built into the Webmention for WordPress plugin as a default. You may need to go to Webmention settings (/wp-admin/admin.php?page=webmention) and make sure your self-ping settings will allow it. 

If you wanted, you could also modify the Webmention type and/or the excerpt that shows in the comment section, though you’d need to do it manually.

I’m not aware of anyone using it “only” for this purpose. I think David Shanske also has built some whitelisting settings for Webmention moderation so that you can automatically approve ones from certain domains. I would suspect you could use some of those portions to reject any incoming webmentions from external URLs, but it may require a few lines of code to do it.</p

Displaying Webmentions on TiddlyWiki

I’ve previously written about setting up receiving Webmention for TiddlyWiki by logging into webmention.io and creating an account to delegate the receipt of the notifications.
 
Naturally, these notifications can be more fun for cross-site conversations if one has the ability to display the webmentions on the posts to which they relate. There are probably a number of ways of doing this, but following the TiddlyWiki advice of keeping Tiddlers as small as possible, it seemed like creating a tiddler for the response and then transcluding or embedding it into the original would be the best course of action.
 
At the recent Gardens and Streams: Wikis, Blogs, and UI—a pop up IndieWebCamp session there was some discussion on internal bi-directional linking in wikis, but I thought it would also be fun to show off bi-directional linking between my wiki and other websites. To do that will require displaying at least some Webmentions.
My wiki currently doesn’t have very many webmentions or incoming links, but after writing about a Bookmarklet for pasting content into TiddlyWiki, I got an email from Anne-Laure Le Cunff that she’d used some of the code to write a bookmarklet for Roam Research. Since her article didn’t send a webmention, I used Telegraph to manually force her article to send my wiki a Webmention so my account would have a record of it for the future for potential exporting or other use.
Now I’d like to display this webmention on that tiddler. Doing it automatically would be great, but I thought, since I don’t expect to receive many on my wiki that I ought to try out a manual set up to see how things might work and how I might display them if they were automated.
Since I had created that bookmarklet, I used it to copy and paste the text from Anne-Laure Le Cunff‘s website into a new tiddler. I then massaged it a bit to format it to look like a response and I’ve transcluded it into the original post under a heading of Responses.
The side benefit of doing this is that the stand alone tiddler that has the link and the context from her post also sits in my wiki as a bookmark of her post as well. As a result, I get a two-for-one deal: I get the bookmark of her post with some context I’m interested in, but my original post can now also display it as a response! Now I can also use that bookmark in other places in my website as well. If only one could do this so easily in other CMSes?!
I’ve yet to hear of another example of this in the wild, so unless I’m missing something, this may be the first displayed Webmention on a TiddlyWiki in the wild.

Next steps

Data formats

TiddlyWiki has lots of ways to display data in Tiddlers, so perhaps one might use various fields in a bookmark tiddler to create the necessary comment display. This could give a more standardized method of displaying them as well. It could be particularly useful if someone was using a microformats parser to import the data of such mentions. If this were the case, then the tiddler that is being commented on could do a filter/search for all tiddlers in the wiki that mention it and transclude the appropriate pieces in a list format with the appropriate mark up as well as links back to the individual tiddlers and/or the links to the sending site.
I’m curious if others have ideas about how to best/easiest implement the display portion of webmentions on a public TiddlyWiki? Since I’m also hosting my entire TiddlyWiki on GitHub pages, there might be other potential considerations if I were to be hosting it statically instead. This may require some experimentation.
I’ve got a few mental models about how one might implement showing Webmentions in TiddlyWiki, but it may take some more thinking to figure out which way may be the best or most efficient.

Automation

I don’t anticipate a lot of incoming webmentions to my wiki at present, but if they become more prevalent, I’ll want to automate the display of these notifications somehow. This will take some thought and coding as well as more knowledge of the internals of TiddlyWiki than I’ve currently got. If someone with the coding chops is interested, I could probably brainstorm a set up fairly quickly.

Microformats

It would also be nice to be able to have full microformats support in TiddlyWiki so that the stand alone “bookmark” mention works properly, but also so that the transcluded version might have the correct mark up. This may rely on the two things to be properly nested to make them work in both contexts.

Webmention for TiddlyWiki to enable website to website notifications and communication

What is a Webmention?

Webmention is a relatively recent web standard (or W3C recommendation) that allows notifications when one website mentions a URL on another website. Think of it like @mentions on social platforms, but instead of just working within a particular website from one account to another, they work across websites. Your website can now @mention my website!

For those who are interested in delving deeper into the idea and its implications, I’ve written a primer in the past : Webmentions: Enabling Better Communication on the Internet.

The goal is for other websites to be able to reference content in my TiddlyWiki website, and if those websites support sending the notifications as either webmentions (or the older pingbacks), I’ll get a notification that my content was referenced elsewhere on the web. This is just the beginning of allowing two way communication between websites.

My exploration today is how to quickly get these up and running on a public TiddlyWiki instance. The public part is important because webmentions won’t work for non-public URLs which includes private TiddlyWikis. If you’re wondering how to self-host a TiddlyWiki on your own domain, I’ve recently written up a tutorial for doing just that. At the end of this article, I’ll make a few notes about how one might use webmentions, particularly in a TiddlyWiki ecosystem.

I’ll start out by saying that writing a full JavaScript implementation of the Webmention spec is beyond my capabilities presently, but it could be something that TiddlyWiki core might implement in the future. (Maybe something like Lazymention which is written in node.js might be leveraged?)

Here I’m going to focus on using a third party service to do all of the heavy lifting and code our behalf. It’s relatively common, especially in the static website space, for websites to rely on third party or publisher services to either send or receive Webmentions on their behalf. Given my current knowledge of TiddlyWiki and how its internals work and my knowledge of Webmention services, I thought it would be quickest and easiest to look at using the Webmention.io service to handle receiving these @mentions from other sites on my behalf.

While this article may seem long, I’m hoping it’s detailed enough for those who are code averse to follow the recipe and do this themselves. If you can create a Tiddler, cut and paste some text, and follow the tutorial you won’t need to know anything about code. I did the entire thing myself in about five minutes from start to finish.

Receiving Webmention notifications for your TiddlyWiki

As a quick overview, we’re going to cut and paste a few lines of code into a special tiddler of our TiddlyWiki based website. This will allow us to do two things:

  1. Log into Webmention.io to create an account
  2. Allow other sites that send webmentions to us to find an endpoint on our TiddlyWiki website that accepts them on our behalf.

We’ll then rely on the Webmention.io dashboard to show us our notifications or received webmentions.

Logging into Webmention.io

Webmention.io requires you to log in with your domain name/URL and relies on you being able to authenticate yourself using it. Since I’m not aware of an IndieAuth or equivalent mechanism for using TiddlyWiki to log into Webmention.io, the quickest method to accomplish this is to rely on RelMeAuth using IndieAuth.com to log into Webmention.io using either a Twitter or GitHub account. From a non-technical perspective, we’ll be using either our Twitter or GitHub account and it’s OAuth2 security to log into the service.

First we want to put a link to our public TiddlyWiki website into the website field on either Twitter or GitHub using the profile settings of one of those services. Here’s what mine looks like on GitHub:

Screenshot of my GitHub accounts details featuring a link to my website

Next we want to place a corresponding link to the relevant service into the <head> of our TiddlyWiki site using one (it’s okay to use both) of the the following lines of code:

<link rel="me" href="https://twitter.com/username" />
<link rel="me" href="https://github.com/username" />

where you will replace the username in these links with the respective usernames of your accounts. (I’ll note that you don’t need to do this for both accounts, you can use either Twitter or GitHub.)

To place these lines into the appropriate location on your TiddlyWiki, you’ll want to create a tiddler with a name like $:/plugins/indieweb/core/rawMarkup and the tag $:/tags/RawMarkup.

Then cut and paste one or both of these links as appropriate into this tiddler and save it (and your TiddlyWiki).

You should now be able to go to webmention.io and enter the URL for your TiddlyWiki into the web sign in box and click “sign in”. The service will parse your website’s page, find the link to either Twitter or GitHub and present you with the appropriate sign in button for one or both of those services. Click on the button for your chosen service. IndieAuth.com will then take you to that service to log into it, or, if you’re already logged in, it will take you back to webmention.io to your new account.

Creating your Webmention endpoint

Within webmention.io you can now go to the “settings” page which will give you two more links which are your webmention and pingback endpoints. They will look something like this:

<link rel="webmention" href="https://webmention.io/example.com/webmention" />
<link rel="pingback" href="https://webmention.io/example.com/xmlrpc" />

where example.com will be replaced with the URL for your website.

Now you should cut and paste these two <link>s into the same tiddler you created above: $:/plugins/indieweb/core/rawMarkup. Now save the Tiddler and your TiddlyWiki. (Be sure to leave the previous links in case you need to log back into webmention.io in the future.)

You’re done!

That hopefully wasn’t too hard.

But what does this do? When another website links to your website and sends you a notification, the code on your page will delegate the receipt of the webmention to webmention.io which will verify that the sending site has your URL on a publicly viewable page (this helps to cut down on spam problems that pingbacks used to have). It will then store the notification for you.

If you need a reminder to check them occasionally, maybe you could add a Tiddler with the link to your dashboard to appear on your wiki when you open it next.

Perhaps in a future tutorial I’ll delve into the specifics of actually showing these mentions directly within your TiddlyWiki on the Tiddlers to which they relate.

Optional Webmention badge

Some may notice that I’ve put a small Webmention badge into the footer of my TiddlyWiki site to visually indicate to human readers that the site accepts webmentions. You can optionally do this for fun if you’d like.

Sending Webmentions with TiddlyWiki

Sending Webmentions seems to be an issue as the fragment-based URLs that TiddlyWiki uses as permalinks using JavaScript seem to cause an issue with many receivers. They apparently have problems resolving and parsing pages due to js;dr related issues. I would send webmentions manually, but most receivers I’m aware of have this js;dr problem. I’m not sure if there is an easy way around this issue.

Hyperchats, Wikis, and Open Educational Resources

What’s interesting about supporting Webmention, particularly from a TiddlyWiki perspective, is that if my TiddlyWiki is notified of mentions of it from outside sources, I can quickly cut and paste those responses directly into my Wiki pages in a pseudo-comment section similar to the comments section on this post which could serve as a model. If those mentions of a particular Tiddler are from other TiddlyWikis, I could also choose to drag-and-drop (or import) them into my TiddlyWiki!

If I want to go a step further, I could transclude those imported Tiddlers into the Tiddler that they’re in reference to. Perhaps I might do this under a heading of “@mentions” or perhaps “Comments” and suddenly I’ve got a way of displaying two-way conversations on my own TiddlyWiki site.

As is mentioned in Kicks Condor’s post about Hyperchat Modality, one could potentially use custom theming information (cleverly named “whostyles” in that post) from imported Tiddlers (or themes from other platforms) to identify the web identities of the sites they’re received from. I’ll also mention Kicks’ post about Hypertexting which is related and forms an interesting melange of websites, blogs, wikis, and hypertext of all kinds to form a more interesting web medium.

For the broader information collecting and building or academic communities (and here I can’t help thinking about the Open Educational Resources space that uses Creative Commons licensing to build their teaching resources), one could use these webmentions as a means of notifying sites that their content has been used, changed, or updated (typically those using Creative Commons will credit their source using a link). Then the receiver of the notification could optionally add to or change their version or even just collect the changes. This becomes particularly useful when the Tiddlers can be easily dragged and dropped between TiddyWikis!

As an explicit example, imagine a professor who wanted to build a textbook anthology, but who could do so by dragging and dropping a variety of Tiddlers from one site to another to create a quick textbook or reader for their students. This idea is particularly exciting to me when combined with the idea behind TW5-powered ebooks!

What could you imagine doing with webmention notifications on your TiddlyWiki site?

Replied to a tweet by Toby Osbourn (Twitter)
I wrote and intro article on Webmention a while back for A List Apart: Webmentions: Enabling Better Communication on the Internet and Jason McIntosh just wrote Webmentions, Active and Passive which is solid.

From there, I’d take a look at the canonical Webmention page of the IndieWeb wiki which has a huge number of resources. Since it looks like you’re coming from a Ruby perspective, you might appreciate the Ruby page on the IndieWeb wiki which has some pre-existing resources which may cut back on your work and learning curve. Perhaps Jason Garber (@jgarber)might be a useful resource within the Ruby world?

If you’re using other platforms/languages, simply search the IndieWeb wiki for other details relating to Webmention. Have questions as you delve in? Just ask in the IndieWeb chat.

Replied to Testing out Webmention by Chris AldrichChris Aldrich (chrisaldrich.typlog.io)
Let's do it via simple link to the post "Congratulations!"
And try another using raw HTML to another post.
It looks like Typlog doesn’t support sending outgoing webmention, but I’ve seen incoming webmention working on Hsiaoming Yang’s personal website. This post can also serve as an additional test to my test site.
Read IndieWeb and Webmentions by Chris Coyier (CSS-Tricks)
The IndieWeb is a thing! They've got a conference coming up and everything. The New Yorker is even writing about it:

Om Malik writes about a renewed focus on his own blog:
“My first decree was to eschew any and all analytics. I don’t want to be driven by “views,” or what Google deems worthy of rank. I write what pleases me, not some algorithm. Walking away from quantification of my creativity was an act of taking back control. 

I love this quote.
Annotated on March 30, 2020 at 10:49AM

What I dwell on the most regarding syndication is the Twitter stuff. I look back at the analytics on this site at the end of every year and look at where the traffic came from — every year, Twitter is a teeny-weeny itty-bitty slice of the pie. Measuring traffic alone, that’s nowhere near the amount of effort we put into making the stuff we’re tweeting there. I always rationalize it to myself in other ways. I feel like Twitter is one of the major ways I stay updated with the industry and it’s a major source of ideas for articles. 

So it sounds like Twitter isn’t driving traffic to his website, but it is providing ideas and news.

Given this I would syndicate content to Twitter as easily and quickly as possible, use webmentions to deal with the interactions and then just use the Twitter timeline for reading and consuming and nothing else.

Annotated on March 30, 2020 at 10:51AM

Reposted a tweet by  Stephen Downes (@oldaily) Stephen Downes (@oldaily) (Twitter)
Thanks for the shout out (and the Webmention) Stephen!

Webmentions with WordPress for Open Pedagogy

Abstract: With growing support for the W3C Webmention spec, teachers can post assignments on their own websites & students can use their sites to respond and interact. Entire classes can have open discussions from site-to-site owning all their data and eschewing corporate surveillance capitalism.

Missed my presentation for PressEdConf20 on Twitter earlier and want to read it all bundled up instead? The “article” version appears blow. You can also enjoy the Twitter moment version if you like. 


ONE

Chris Aldrich
Chris Aldrich

Hello everyone! My name is Chris Aldrich. I’m an independent researcher in a variety of areas including the overlap the internet and education. You can find more about me on my website https://boffosocko.com

Today I’ll be talking about Webmentions for open pedagogy. 


TWO

For a variety of reasons (including lack of budget, time, support, and other resources) many educators have been using corporate tools from Google, Twitter, Facebook, and others for their ease-of-use as well as for a range of functionality that hadn’t previously existed in the blogosphere or open source software that many educators use or prefer.

This leaves us and our students open to the vagaries and abuses that those platforms continually allow including an unhealthy dose of surveillance capitalism.

Wall of security cameras looking down at two women
Photo by Matthew Henry on Unsplash

THREE

In the intervening years since the blogosphere and the rise of corporate social media, enthusiasts, technologists and open source advocates have continued iterating on web standards and open protocols, so that now there are a handful of web standards that work across a variety of domains, servers, platforms, allowing educators to use smaller building blocks to build and enable the functionalities we need for building, maintaining, and most importantly owning our online courseware.


FOUR

Some of these new W3C specs include Webmention, Micropub, WebSub, IndieAuth, and Microsub. Today I’ll talk abut Webmentions which are simply site-to-site @mentions or notifications which don’t involve corporate social media silos.

For those who’d like more information about Webmentions and how they could be used, I’ve written a primer for A List Apart entitled Webmentions: Enabling Better Communication on the Internet.

Cartoon of baseball player hitting a ball with a bat to a waiting player with a tennis raquet
Illustration by Dougal MacPherson
Image courtesy of A List Apart

FIVE

Many common content management systems support Webmention either out of the box or with plugins including: our friend WordPress, Drupal, WithKnown, Grav, and many others.

Webmention rocks logo
Webmention rocks

SIX

WordPress can use this new standard with the Webmention plugin. (Surprise!) I also highly recommend the Semantic Linkbacks plugin which upgrades the presentation of these notifications (like Trackback, Pingback, or Webmention) to more user-friendly display so they appear in comments sections much like they do in corporate social media as commentsrepostslikes, and favorites, detected using microformats2 markup from the source of the linkback.


SEVEN

Another plugin I love is Post Kinds Plugin (Classic editor only at present) which automatically parses URLs I want to reply to, like, bookmark, etc. and saves the reply context to my website which helps prevent context collapse. My commentary and notes then appear below it.

(I also use a plugin that saves the content of URLs on my site to the Internet Archive, so I can reference them there later if necessary.)

Example of a reply context with author name, image, title, and short synopsis


EIGHT

These plugins with WordPress allow teachers to post course content and students can then post their responses on their own sites and send notifications that they’ve read, listened to, or watched that content along with their ideas and commentary.


NINE

Examples of webmentions in a course setting: Greg McVerry and I ran an experiment with Webmentions in a class in 2018. 

Example assignment: https://archive.jgregorymcverry.com/5570-2/

Notice the replies underneath which came from other sites including my response which is mirrored on my site at https://boffosocko.com/2018/08/04/highlighting-some-of-my-favorite-edtech-tools/

Example podcast post for a class: https://archive.jgregorymcverry.com/2toponder-episode-one/

Notice the listen webmention in the comments which links to my listen response at: https://boffosocko.com/2018/08/06/2toponder-episode-one-intertextrevolution/ where I own a copy of the context and my own response. As a student, even if the originals disappear, I’ve got the majority of the important content from the course.


TEN

When the course is over, the student has an archive of their readings, work, and participation (portfolio anyone?) on a site they own. They can choose to leave it public or unpublish it and keep private copies.

[Copies for Facebook, Google+ or Big EdTech Giants? They can ask for them nicely if they want them so desperately instead of taking them surreptitiously.]


ELEVEN

As a concrete example, I now have tagged archives for all the work I’ve done for EDU522 with Greg McVerry who also has his related posts in addition to a variety that he subsequently archived.

Fluffy cat head that moves with the fur underneath it appearing more like rocket exhaustion as the cat "takes off" into the air


TWELVE

By taking the content AND the conversation around it out of the hands of “big social media” and their constant tracking and leaving it with the active participants, we can effect far more ethical EdTech.

Gif of grain silo on a farm collapsing in on itself.

[No more content farming? What will the corporate social media silos do?]


THIRTEEN

Imagine Webmentions being used for referencing journal articles, academic samizdat, or even OER? Suggestions and improvement could accumulate on the original content itself rather than being spread across dozens of social silos on the web.

gif of Kermit the frog sitting on a desk excitedly flailing his arms and legs

[Webmentions + creativity: How might you take their flexibility and use it in your online teaching practices?]


FOURTEEN

There’s current research, coding work, and thinking going on within the IndieWeb community to extend ideas like private webmentions and limiting audience so that this sort of interaction can happen in more secluded online spaces.

I’d welcome everyone who’s interested to join in the effort. Feel free to inquire at an upcoming IndieWebCamp, Homebrew Website Club, event, or in online chat right now.

Huge group of diverse attendees at IndieWebSummit 2019 waving


FIFTEEN

I’ve also been able to use my WordPress website to collect posts relating to my participation in conferences like PressEdConf20 or Domains 2019 which included syndicated content to Twitter and the responses from there that have come back to my site using Brid.gy which bootstraps Twitter’s API to send Webmentions back to my website.

If Twitter were to go away, they may take some of my connections, but the content and the conversations will live on in a place under my own control.


Thanks for your time and attention! I’m around on Twitter–or better: my own website!–if you have any questions.

FIFTEEN

I’ve also been able to use my WordPress website to collect posts relating to my participation in conferences like PressEdConf20 or Domains 2019 which included syndicated content to Twitter and the responses from there that have come back to my site using Brid.gy which bootstraps Twitter’s API to send Webmentions back to my website.

If Twitter were to go away, they may take some of my connections, but the content and the conversations will live on in a place under my own control.

Thanks for your time and attention! I’m around on Twitter–or better: my own website!–if you have any questions.

 
 
FOURTEEN

There’s current research, coding work, and thinking going on within the IndieWeb community to extend ideas like private webmentions and limiting audience so that this sort of interaction can happen in more secluded online spaces. I’d welcome everyone who’s interested to join in the effort. Feel free to inquire at an upcoming IndieWebCamp, Homebrew Website Club, event, or in online chat right now.

Huge group of diverse attendees at IndieWebSummit 2019 waving

 
THIRTEEN

Imagine webmentions being used for referencing journal articles, academic samizdat, or even OER? Suggestions and improvement could accumulate on the original content itself rather than being spread across dozens of social silos on the web.