Automagically sending push notifications to my mobile phone when I receive a Webmention.
Hosting my own content and comments allows me to be a bit more creative with it. So I decided to take this a step further and have a little fun with negative comments.
This isn’t intended to be a hot-take on Comic Sans. Instead it’s meant to change the tone of the negativity to make it sound like a clown is yelling at a kid’s birthday party.
Scroll the comment section on virtually any site on the web and you’re bound to encounter at least a few toxic comments. Maybe more than a few, depending on the site you’re looking at and the topic of the post people are commenting on.
Comments on digital news stories and on social media play an increasingly important role in public discourse as more citizens communicate through online networks. The reasons for eliminating comments on news stories are plentiful. Off-topic posts and toxic commentary have been shown to undermine legitimate news reporting. Yet the proliferation of digital communication technology has revolutionized the setting for democratic participation. The digital exchange of ideas and opinions is now a vital component of the democratic landscape. Marie K. Shanahan's book argues that public digital discourse is crucial component of modern democracy―one that journalists must stop treating with indifference or detachment―and for news organizations to use journalistic rigor and better design to add value to citizens’ comments above the social layer. Through original interviews, anecdotes, field observations and summaries of research literature, Shanahan explains the obstacles of digital discourse as well as its promises for journalists in the digital age.
"Local news organizations should become a driving force for better online public discourse, because Facebook and Twitter aren’t cutting it."
This idea isn’t too dissimilar to Greg McVerry’s idea of having local libraries allow users to “check” out domain names and pre-built IndieWeb content management systems to use. (Greg, have you fleshed this out on your site somewhere?)
In any case, I’ve outlined a bit about how newspapers and journalistic outlets could use read posts in an IndieWeb way to take more control over their comments sections instead of farming them out to caustic social media platforms that they have no control over. There’s at least one outlet that has begun experimenting with these types of read posts. Some of these ideas (and similar ones on podcasting) might begin to address Marie’s idea about improving online discourse and making a better forum.
I see she’s got a book on the topic entitled Journalism, Online Comments, and the Future of Public Discourse. I’ll have to take a look at it soon.
Comment spam is one of the most common forms of WordPress spam, if not the most common. Here are some anecdotal statistics for this site. During the month of November 2014, snarfed.org received 796…
On my own website I’ve got a relative heirarchy of bookmarks, likes, reads, replies, follows, and favorites. (A read post indicates that I’ve actually read an entire piece–something I wish more websites and social platforms supported in lieu of allowing people to link or retweet content they haven’t personally vetted.) Because I’m posting this content on my personal site and it’s visible to others as part of my broader online identity I take it far more seriously than if I were tossing any old comment into an empty box on someone else’s website. To some extend this is the type of value that embedded comments sections for Facebook tries to enforce–because a commenter is posting using an identity that their friends, family, and community can see, there’s a higher likelihood that they’ll adhere to the social contract and be civil. I suspect that the Nieman Lab is using Disqus so that commenters are similarly tied to some sort of social identity, though in a world with easy-to-create-throw-away social accounts perhaps even this may not be enough.
While there’s a lot to be said about the technology and research that could be done with such a tool as outlined in the article, I think that it also ought to be bundled with people needing to use some part of their online social identities which they’re “stuck to” in some sense.
The best model I’ve seen for this in the web space is for journalism sites to support the W3C’s recommended Webmention specification. They post and host their content as always, but they farm out their comment sections to others by being able to receive webmentions. Readers will need to write their comments on their own websites or in other areas of the social web and then send webmentions back to the outlet which can then moderate and display them as part of the open discourse. While I have a traditional “old school” commenting block on my website, the replies and reactions I get to my content are so much richer when they’re sent via webmention from people posting on their own sites.
I’ve also recently been experimenting with some small outlets in allowing them to receive webmentions. They can display a wider range of reactions to their content including bookmarks, likes, favorites, reads, and even traditional comments. Because webmentions are two-way links they’re audit-able and provide a better monolithic means of “social proof” relating to an article than the dozens of social widgets with disjointed UI that most outlets are currently using.
Display of Reads, Listens, and Watches in comments sections
David Shanske’s excellent Post Kinds Plugin allows one to post what they’re reading, listening to, or watching in simple IndieWeb fashion. (Examples of these on my site: read posts, listen posts, watch posts.) These posts types automatically include the appropriate microformats classes so the user doesn’t need to bother doing them manually. For a long time when replying to another’s site, bookmarking it, or even mentioning it when also using the Webmentions plugin would send the site a Webmention that would generally cause it to show up as a native comment, bookmark or mention. With an update late last year, from within the
Discussion settings in WordPress, one could set toggles so that many of these webmentions could be displayed as facepiles. Other broadly unsupported post types would typically default to a simple mention.
Recently David Shanske and I started a podcast, and he thought it would be useful if his site could accept listen posts and show them visually within his comments section just like these replies, bookmarks, and mentions. Thus over the past month he’s added code to the Semantic Linkbacks Plugin to add the functionality for these types of posts to properly render showing facepiles for listens, reads, and watches.
This is what webmentions of listen posts look like on his site in his comments section:
Listen (or scrobble) posts can send webmentions (or notifications) to the original content potentially with the experimental
listen-of microformat. In the case of scrobbles of podcasts, these webmentions could be displayed as “Listens” which would provide the canonical copy of the podcast some indicator of its popularity and actual audience. It is tremendously difficult to obtain data on the actual number of listens within most of the podcast community and typically a fraction of the number of downloads must be used as an indicator of the actual reach. Being able to display listens could potentially be a boon to the podcasting market, particularly with respect to advertising as this type of open social web functionality spreads.
Similarly read posts with the
read-of microformat and watches with
watch-of will be accepted and show up within the comments section. Like the previous types, they can be set to display as facepiles within the user interface.
Knowing that this read functionality would be available, this week I helped ColoradoBoulevard.net set up their site to be able to accept and display reads of their articles. Here’s an example from their site:
I haven’t yet seen one for watches in the wild yet, but maybe you’ll be either the first to send or receive one?
The microformats on these posts is generally considered to be experimental, but with the ~500+ users of this suite of tools as well as others who are already using them on other sites, they’ve now taken a dramatic step into the open internet and more widespread use and potential official adoption.
Editable Webmention Types and Avatars
Just yesterday, I spent a few minutes in the IndieWeb chat helping someone to laboriously delve into their mySQL databaset and find a particular snippet of data so they could manually change a received webmention from being a simple
mention to being a
reply so that it would display as a native comment on their website. I’ve often done this to take what sometimes seem like simple mentions and change them to replies to reveal the richer content they often contain for the broader conversation. Sadly the process is boring, laborious, and fraught with potential ways to mess things up.
As of this weekend, this process is no longer necessary. One can now go to the admin interface for their comments and webmentions (found at the path
/wp-admin/edit-comments.php), click on
edit for the particular comment they’re changing and then scroll down to reveal a droplist interface to be able to manually change the webmention type.
As another example of a use for this functionality, perhaps you’ve received a listen mention on one of your podcast episodes that has a lot of useful notes or commentary germane to your episode? Instead of hiding it as a simple listen, why not change the type to
reply to allow a richer conversation around your content? After all, with a reasonable reply it will be implicit that the commenter actually listened to the episode, right?
Because there is currently no functionality in WordPress for saving or caching the avatars of commenters via webmention, when users change their profile images on siloed services like Facebook, Twitter, et al. the link to their old avatars quits working and they were displaying blank spaces. This is an unfortunate form of linkrot, but one that can become more visually apparent over time.
As one can see in the image for the commenting edit box above, the field for the
Avatar is now editable. This means one can update out-of-date or blank avatars. One now also has the ability to moderate/edit or easily remove/switch avatars if users are sending inappropriate photos for one’s site’s audience.
I’ll send along special thanks to simple open web standards and the IndieWeb community for vastly improving my online communication.
Some basic searching revealed that in IndieWeb parlance, these types of functionalities are known as web actions. While they’re often added to make it easier for one site with the proper infrastructure to interact with another, they’re also designed for social web silos (Like Twitter, Facebook, et al.) to do this type of interaction simply as well.
As a small scale experiment, I thought I would begin manually and add some simple interface to allow Twitter users (who may not yet have their own websites to use to respond to me instead) to be able to quickly and easily reply to, repost, or like posts on my site. A little bit of reading on the wiki and Twitter’s developer site allowed me to leverage something into existence pretty quickly.
Interestingly, although there are many plugins that help users simply share a blog post to Twitter, I couldn’t easily find a WordPress plugin that already allows these other interactions as options at all. I suspect it may be because the other side of the interaction of bringing the replies back to one’s site isn’t commonly known yet.
<span class="syn-text">Respond via Twitter:
<li><a href="https://twitter.com/intent/tweet?in_reply_to=939650287622434816" target=""><img src="/reply-icon-16.png" alt="" width="16" height="11" /> Reply</a></li>
<li><a href="https://twitter.com/intent/retweet?tweet_id=939650287622434816" target=""><img src="/retweet-icon-16.png" alt="" width="16" height="10" /> Repost</a></li>
<li><a href="https://twitter.com/intent/favorite?tweet_id=939650287622434816" target=""><img src="/like-icon-16.png" alt="" width="16" height="16" /> Like</a></li>
And voila! My new post now had some simple buttons that allow users a simple one click interaction with a popup window to reply to, repost, or like my post.
Naturally, through the “magic” of Brid.gy, I’m able to collect these responses via backfeed with the Webmention protocol using the Webmention Plugin for WordPress back to my own website. In simpler and less technical terms, if you use one of these buttons, your interaction with my website as posted to Twitter comes back to live on my website. Thus users can use Twitter to write a comment or reply on Twitter and it will display in my comments section just as if they had written it directly in my comments box. Likes and reposts are sent to my site and are displayed relatively naturally as facepiles under the comment headings “Likes” and “Reposts”.
I’ll do another manual example with this particular post, so feel free to use the buttons at the bottom of this post to make your response via Twitter if you wish.
Taking some of this code and abstracting into a plugin for others to use would be a nice feature. Doing this would also potentially make it available as a potential plugin in the larger IndieWeb suite of WordPress plugins. Perhaps it could be easily added into the codebase in one or another pre-existing plugins? I might think that David Shanske’s Syndication Links plugin or Bridgy Publish plugin might make sense as they’re already adding functionality for part of the publishing half of the cycle by either publishing to Twitter and/or importing the Tweet ID back into one’s WordPress site for potential display. One or the other could do a simple if/then on the existence of a syndicated Tweet, then extract the Twitter ID, and add the buttons to the interface appropriately.
It would be interesting to add full mark up to make
<indie-action> functionality possible for a broader class of web actions, particularly if it could be integrated directly into WordPress in a more interesting manner to work with the Post Kinds Plugin or the IndieWeb PressThis type of bookmarklet functionality.
Instead of having these types of interactions injected at the bottom of the post, it may make more sense to have it display in the comment block instead.
I suspect that Facebook, Instagram, and others also enable some types of functionality, so adding the ability to use them the same way would be awesome. And even more so in the case of RSVP’s to events since Brid.gy handles those relatively well between Facebook and WordPress sites. (See this example.)
Try it yourself
Go ahead and use the buttons below to interact with this post via Twitter.
Introduction to what one would consider basic web communication
A few days ago I had written a post on my website and a colleague had written a reply on his own website. Because we were both using the W3C Webmention specification on our websites, my site received the notification of his response and displayed it in the comments section of my website. (This in and of itself is really magic enough–cross website @mentions!)
To reply back to him I previously would have written a separate second post on my site in turn to reply to his, thereby fragmenting the conversation across multiple posts and making it harder to follow the conversation. (This is somewhat similar to what Medium.com does with their commenting system as each reply/comment is its own standalone page.)
Instead, I’ve now been able to configure my website to allow me to write a reply directly to a response within my comments section admin UI (or even in the comments section of the original page itself), publish it, and have the comment be sent to his reply and display it there. Two copies for the price of one!
This means that now, WordPress-based websites (at least self-hosted versions running the WordPress.org code) can easily and simply allow multiple parties to write posts on their own sites and participate in multi-sided conversations back and forth while all parties maintain copies of all sides of the conversation on their own websites in a way that maintains all of the context. As a result, if one site should be shut down or disappear, the remaining websites will still have a fully archived copy of the entire conversation thread. (Let’s hear it for the resilience of the web!)
What is happening?
This functionality is seemingly so simple that one is left wondering:
- “Why wasn’t this baked into WordPress (and the rest of the web) from the start?”
- “Why wasn’t this built after the rise of Twitter, Facebook, or other websites which do this as a basic function?”
- “How can I get it tout suite?!” (aka gimme, gimme, gimme, and right now!!!)
While seeming simple, the technical hurdles aren’t necessarily because there had previously never been a universal protocol for the web to allow it. (The Webmentions spec now makes it possible.) Sites like Facebook, Twitter, and others enable it because they’ve got a highly closed and highly customized environment that makes it a simpler problem to solve. In fact, even old-school web-based bulletin boards allowed this!
But even within social media one will immediately notice that you can’t use your Facebook account to reply to a Twitter account. And why not?! (While the web would be far better if one website or page could talk to another, these sites don’t for the simple economic reason that they want you using only their site and not others, and not enabling this functionality keeps you locked into what they’re selling.)
I’ll detail the basic set up below, but thought that it would be highly illustrative to have a diagram of what’s physically happening in case the description above seems a bit confusing to picture properly. I’ll depict two websites, each in their own column and color-coded so that content from site A is one color while content from site B is another color.
It really seems nearly incomprehensible to me how this hasn’t been built into the core functionality of the web from the beginning of at least the blogosphere. Yet here we are, and somehow I’m demonstrating how to do this from one WordPress site to another via the open web in 2017. To me this is the entire difference between a true Internet and just using someone else’s intranet.
While this general functionality is doable on any website, I’ll stick to enabling it specifically on WordPress, a content management system that is powering roughly 30% of all websites on the internet. You’ll naturally need your own self-hosted WordPress-based website with a few custom plugins and a modern semantic-based theme. (Those interested in setting it up on other platforms are more than welcome to explore the resources of the IndieWeb wiki and their chat which has a wealth of resources.)
As a minimum set you’ll want to have the following list of plugins enabled and configured:
Other instructions and help for setting these up and configuring them can be found on the IndieWeb wiki, though not all of the steps there are necessarily required for this functionality.
Ideally this all should function regardless of the theme you have chosen, but WordPress only provides the most basic support for microformats version 1 and doesn’t support the more modern version 2 out of the box. As a result, the display of comments from site to site may be a bit wonky depending on how supportive your particular theme is of the microformats standards. As you can see I’m using a relatively standard version of the TwentySixteen theme without a lot of customization and getting some reasonable results. If you have a choice, I’d recommend one of the following specific themes which have solid semantic markup:
The final plugin that enables sending comments from one comment section to another is the WordPress Webmention for Comments plugin. As it is still somewhat experimental and is not available in the WordPress repository, you’ll need to download it from GitHub and activate it. That’s it! There aren’t any settings or anything else to configure.
With the plugin installed, you should now be able to send comments and replies to replies directly within your comments admin UI (or directly within your comments section in individual pages, though this can not require additional clicks to get there, but you also don’t have the benefit of the admin editor either).
There is one current caveat however. For the plugin to actually send the webmention properly, it will need to have a URL in your reply that includes the microformats
u-in-reply-to class. Currently you’ll need to do this manually until the plugin can properly parse and target the fragmentions for the comments properly. I hope the functionality can be added to the plugin to make the experience seamless in the future.
So what does this
u-in-reply-to part actually look like? Here’s an example of the one I used to send my reply:
<a class="u-in-reply-to" href="https://islandinthenet.com/manually-adding-microfomats-markup/">Khürt</a>
The class tells the receiving site that the webmention is a reply and to display it as such and the URL is necessary for your webmention plugin to know where to send the notification. You’d simply need to change the URL and the word (or words) that appear between the anchor tags.
If you want to have a hidden link and still send a webmention you could potentially add your link to a zero width space as well. This would look like the following:
<a class="u-in-reply-to" href="http://www.example.com">​</a>
Based on my experiments, using a
<link> via HTML will work, but it will send it as a plain webmention to the site and it won’t show up natively as a reply.
Sadly, a plain text reply doesn’t work (yet), but hopefully some simple changes could be made to force it to using the common fragmentions pattern that WordPress uses for replies.
Interestingly this capability has been around for a while, it just hasn’t been well documented or described. I hope now that those with WordPress sites that already support Webmentions will have a better idea what this plugin is doing and how works.
Eventually one might expect that all the bugs in the system get worked out and the sub-plugin for sending comment Webmentions will be rolled up into the main Webmentions plugin, which incidentally handles fragmentions already.
In addition to the notes above, I will say that this is still technically experimental code not running on many websites, so its functionality may not be exact or perfect in actual use, though in experimenting with it I have found it to be very stable. I would recommend checking that the replies actually post to the receiving site, which incidentally must be able to accept webmentions. If the receiving website doesn’t have webmention support, one will need to manually cut and paste the content there (and likely check the receive notification of replies via email, so you can stay apprised of future replies).
You can check the receiving site’s webmention support in most browsers by right clicking and viewing the pages source. Within the source one should see code in the <head> section of the page which indicates there is a webmention endpoint. Here is an example of the code typically injected into WordPress websites that you’d be looking for:
<link rel="webmention" href="http://example.com/wp-json/webmention/1.0/endpoint" />
<link rel="http://webmention.org/" href="http://example.com/wp-json/webmention/1.0/endpoint" />
Also keep in mind that some users moderate their comments, so that even though your mention was sent, they may need to approve it prior to it displaying on the page.
If you do notice problems or issues or have quirks, please file the issue with as full a description of what you did and what resulted as you can so that it can be troubleshot and made to work not only for you, but hopefully work better for everyone else.
Give it a try
So you’ve implemented everything above? Go ahead and write a reply on your own WordPress website and send me a webmention! I’ll do my best to reply directly to you so you can send another reply to make sure you’ve got things working properly.
Once you’re set, go forward and continue helping to make the web a better place.
I wanted to take a moment to give special thanks to Aaron Parecki, Matthias Pfefferle, and David Shanske who have done most of the Herculean work to get this and related functionality working. And thanks also to all who make up the IndieWeb community that are pushing the boundaries of what the web is and what it can accomplish. And finally, thanks to Khürt Williams who became the unwitting guinea pig for my first attempt at this. Thank you all!
I don’t think I’d used it before or really seen it happening in the wild, but Khurt Williams used his website to reply to one of my posts via Webmention. I was then able to write my reply directly within the comments section of my original post and automatically Webmention his original back in return! Gone are the days of manually cutting and pasting replies so that they appear to thread correctly within WordPress!
Without all the jargon, we’re actually using our own websites to carry on a back and forth threaded conversation in a way that completely makes sense.
In fact, other than that our conversation is way over the 280 character limit imposed by Twitter, the interaction was as easy and simple from a UI perspective as it it is on Twitter or even Facebook. Hallelujah!
This is how the internet was meant to work!
A hearty thanks to those who’ve made this possible! It portends a sea-change in how social media works.
Three cheers for the #IndieWeb!!!
One of the interesting parts was that it featured a comment about Twitter pulling the rug out from underneath developers–an event that foreshadowed even more of the same in the coming years as well as a conversation about the gamification of follower accounts, something which has gotten us into a sad state of affairs today nearly a decade later. Apparently while they tried to cap follower accounts, their early efforts just didn’t go far enough to help the civility of the platform.
There has been an ongoing discussion as to whether or not blogs should always have comments enabled to allow its readers to be part of the conversation. I myself firmly believe that each blog post should be thought of as a starting point of, or a response to, a conversation. Some deal with this issue from an ideological perspective in that they disable comments because they feel that people will behave differently when commenting than they would if they wrote from their own Web sites.
In anecdotal conversations with some and certainly in my own personal experience, I’ve heard/seen that posting your own thoughts and replies on your own website encourages (perhaps forces?) you to do a bit more thinking and examination before replying. The fact that you’re not limited to a certain number of characters also helps to expound on your ideas/thoughts as well.
I’m curious, however, given the state of politics today, if it will scale? Perhaps if there’s still a technological or financial hurdle in which people have more invested in their web presences it will. Given the dumpster fire that some sectors of social media have become–in some part because of the lack of resistance as well as anonymity–it may not.
I still hope for the best, and am glad for the friends and colleagues I’ve met through doing all of this thus far.