For Homebrew Website Club Wednesday, even though I didn’t make it to an in-person meetup I did manage to make some reasonable visible progress on my website.
I hacked together some tweaks to add the following:
Improved support in my theme for time related microformats including dt-published and dt-updated
Because I post so frequently, I added a visible timestamp next to the date so it’s easier to follow my timeline of posts.
I removed the data for my location, weather, and syndication links from the_body of my posts and appended it to my post meta data. This should prevent it from showing up in Webmentions to others’ websites or in syndicated copies, but still be available to parsers to attach that data to my posts in readers and other services.
I modified my CSS so that the text in the Simple Location and Syndication Links plugins matches that of the rest in its section.
I added a cute little bullhorn icon in front of my Syndication Links so that it has some parallelism with the rest of the meta data on my site.
I’d always liked the idea of adding in related posts data on my site, but didn’t like how it had worked in the past. Things were even worse with replying to other people’s posts as my markup (and far too many others I’ve seen in the WordPress world) was hacky and caused the related posts data to show up in their Webmentions sent to other sites. I looked through some of Jetpack’s documentation and figured out how to remove their Related Posts functionality from the_body, where it defaults, and append it instead to the post meta section of my posts. It’s not perfect yet, but it’s much closer to how I’d like it. Best of all, that data shouldn’t show up in my replies to other sites now either! I had disabled the functionality ages ago because it made me feel like a rude-IndieWebber.
With IndieWebCamp Online 2020 coming up this weekend, I hope to fix a few outstanding issues and roll these changes up into my open sourced IndieWeb Twenty Fifteen WordPress theme as my hackday project. If you’re using it on your own site, do let me know. Not that I can promise to fix it if it’s broken in places, but I’d at least like to know how it’s working out for you or where it could be improved.
Things left over to fix:
Simple Location data still needs some CSS help to display the way I want it to.
I need to target the Simple Location icon so I can have its color match that of the other icons.
Because so many of my posts don’t have titles, I’ll need to tweak something there so that the Jetpack related posts will pick up better meta data as a pseudo-title instead of displaying the relatively context-less commentary that appears in the_body.
It may take a day or two for the related posts to populate properly, but I should make sure that it’s putting out relevant/interesting results.
Is it worth adding a default featured photo for the related posts that don’t have one? Could I pull one from other meta fields for some classes of posts?
Forcing webmentions for conversations on websites that don’t support Webmention
Within the IndieWeb community there is a process called backfeed which is the process of syndicating interactions on your syndicated (POSSE) copies back (AKA reverse syndicating) to your original posts. As it’s commonly practiced, often with the ever helpful Brid.gy service, it is almost exclusively done with social media silos like Twitter, Instagram, Flickr, Github, and Mastodon. This is what allows replies to my content that I’ve syndicated to Twitter, for example, to come back and live here on my website.
Why not practice this with other personal websites? This may become increasingly important in an ever growing and revitalizing blogosphere as people increasingly eschew corporate social sites and their dark patterns of tracking, manipulative algorithmic feeds, and surveillance capitalism. It’s also useful for sites whose owners may not have the inclination, time, effort, energy or expertise to support the requisite technology.
I’ve done the following general reply pattern using what one might call manual backfeed quite a few times now (and I’m sure a few others likely have too), but I don’t think I’ve seen it documented anywhere as a common IndieWeb practice. As a point of fact, my method outlined below is really only half-manual because I’m cleverly leveraging incoming webmentions to reduce some of the work.
Manually syndicating my replies
Sometimes when using my own website to reply to another that doesn’t support the W3C’s Webmention spec, I’ll manually syndicate (a fancy way of saying cut-and-paste) my response to the website I’m responding to. In these cases I’ll either put the URL of my response into the body of my reply, or in sites like WordPress that ask for my website URL, I’ll use that field instead. Either way, my response appears on their site with my reply URL in it (sometimes I may have to wait for my comment to be moderated if the receiving site does that).
Here’s the important part: Because my URL appears on the receiving site (sometimes wrapped as a link on either my name or the date/time stamp depending on the site’s user interface choices), I can now use it to force future replies on that site back to my original via webmention! My site will look for a URL pointing back to it to verify an incoming webmention on my site.
Replies from a site that doesn’t support sending Webmentions
Once my comment appears on the receiving site, and anyone responds to it, I can take the URL (with fragment) for those responses, and manually input them into my original post’s URL reply box. This will allow me to manually force a webmention to my post that will show up at minimum as a vanilla mention on my website.
(Note, if your site doesn’t have a native box like this for forcing manual webmentions, you might try external tools like Aaron Parecki’s Telegraph or Kevin Mark’s Mention.Tech, which are almost as easy. For those who are more technical, cURL is an option as well.)
Depending on the microformats mark up of the external site, the mention may or may not have an appropriate portion for the response and/or an avatar/name. I can then massage those on my own site (one of the many benefits of ownership!) so that the appropriate data shows, and I can change the response type from a “mention” to a “reply” (or other sub-types as appropriate). Et voilà, with minimal effort, I’ve got a native looking reply back on my site from a site that does not support Webmention! This is one of the beautiful things of even the smallest building-blocks within the independent web or as a refrain some may wish to sing–“small pieces, loosely joined”!
This method works incredibly well with WordPress websites in particular. In almost all cases the comments on them will have permalink URLs (with fragments) to target the individual pieces, often they’ve got reasonable microformats for specifying the correct h-card details, and, best of all, they have functionality that will send me an email notification when others reply to my portion of the conversation, so I’m actually reminded to force the webmentions manually.
An Illustrative Example
As an example, I posted on my website that I’d read an article on Matt Maldre’s site along with a short comment. Since Matt (currently) doesn’t support either incoming or outgoing webmentions, I manually cut-and-pasted my reply to the comment section on his post. I did the same thing again later with an additional comment on my site to his (after all, why start a new separate conversation thread when I can send webmentions from my comments section and keep the context?).
Matt later approved my comments and posted his replies on his own website. Because his site is built on WordPresss, I got email notifications about his replies, and I was able to use the following URLs with the appropriate fragments of his comments in my manual webmention box:
After a quick “massage” to change them from “mentions” into “replies” and add his gravatar, they now live on my site where I expect them and in just the way I’d expect them to look if he had Webmention support on his website.
I’ll mention that, all of this could be done in a very manual cut-and-paste manner–even for two sites, neither of which have webmention support. But having support for incoming webmentions on one’s site cuts back significantly on that manual pain.
For those who’d like to give it a spin, I’ll also mention that I’ve similarly used the incredibly old refbacks concept in the past as a means of notification from other websites (this can take a while) and then forced manual webmentions to get better data out of them than the refback method allows.
While many people use RSS feeds, JSONfeed, or other plugin methods for syndicating their WordPress website’s content to Micro.blog, this plugin now provides for a per-post decision about exactly what content to send to Micro.blog. It also naturally provides a syndication link from your site back to the Micro.blog post. To my knowledge no other method provides this syndication link functionality.
As I suspect many may already be aware, if your site supports Webmention (typically done with the Webmention and Semantic-linkbacks plugins), then Micro.blog will notify your site with replies and comments to your post as they appear on Micro.blog. This provides one the ability to do two-way communication between the two platforms.
Set up and configuration for Micro.Blog syndication
If you don’t already have it, install the plugin and activate it, otherwise update it within your site’s administrative interface.
Add your Micro.blog account username to your user profile on your WordPress site. This is typically found at /wp-admin/profile.php. In my case I simply added c to the field labeled Micro.blog username.
Adjust your WordPress Syndication Links settings page (typically found at /wp-admin/admin.php?page=syndication_links) to include Micro.blog by using the appropriate checkbox. Be sure to save the setting.
Remove, if necessary, any of the RSS, JSON, or other syndication feeds from your Micro.blog account so you’re not accidentally duplicating the syndication.
Create a post, select Micro.blog as an endpoint in the relevant meta-box, and publish your post.
Once published, your post will ping Micro.blog’s server to indicate the new content which will then be displayed in your timeline. The Syndication Links plugin will then find the permalink URL of your post on Micro.blog and display it on your post (as per your settings) along with any other syndicated copies. This notification process is roughly real time, but may take a minute or two for your post to display and the syndication link to appear on your site based on the processing times on the relevant servers.
As an added bonus, Syndication Links plugin will also find the syndication links from Micro.blog in your current feed and add those to your original posts.
If you have any questions, need clarifications, or find bugs with regard to your set up, you can file issues for the plugin on GitHub.
Lurking is the quiet watching/listening that what many people of the web do in chat rooms in order to begin gauging culture, learning jargon or lingo, and other community norms or unspoken principles before diving in to interact on a more direct level with other participants.
While the word lurking can have a very negative connotation, online it often has a much more positive one, especially in regard to the health and civility of the commons. Rather than rehash what Ton has done an excellent job of doing, I won’t go into the heavy details and history of online lurking, but instead, let’s take a look at where it isn’t in today’s social media landscape.
Since 2004, Twitter and a slew of other social media has popped up on the scene and changed many of our prior behaviors concerning lurking. In particular, Twitter’s interface has made it far easier to either like/favorite a post or retweet it.
In comparison the the preceding era of the blogosphere represented by Tons’ post, Twitter has allowed people to send simple notifications back and forth about each others’ posts indicating a lower bar of interaction than writing a thoughtful and measured comment. Now instead of not knowing about dozens, hundreds, or thousands of lurkers, a (micro)blogger would more quickly know who many more of their readers were because they were liking or resharing their content. Naturally there are still many more potential lurkers who don’t interact with one’s posts this way, but these interactions in some way are like adding fuel to the fire and prompt the writer to continue posting because they’re getting some feedback that indicates they’ve got an audience. Twitter has dramatically lowered the bar for lurkers and made it more socially acceptable for them to make themselves known.
Of course, not all is rosy and happy in Twitterland as a result of this lowering the social bar. Because it’s so easy to follow almost anyone and interact with them, naturally everyone does. This means that while before one may have lurked a blog for weeks or months before posting a response of any sort, people are now regularly replying to complete strangers without an resistance whatsoever. While this can be valuable and helpful in many instances, oftentimes it comes off as rudely as if one butted into the private conversation of strangers at a public gathering. At the farther end of the spectrum, it’s also much easier for trolls to tag and target unsuspecting victims. As a result, we have the dumpster fire that Twitter has become in the past several years for many of its users.
The problem for the continued health of the commons is how can we maintain a bar for online lurking, but still provide some feedback? How can we keep people from shouting and yelling at passer-by from their proverbial front porches or vice-versa? How might we encourage more positive lurking online before directly jumping into a conversation?
Read Posts and Private Posts
For several years now, as a part of the IndieWeb movement, I’ve been more directly controlling my online identity and owning my content by using my own domain name and my own website (boffosocko.com). While I still use Twitter, I’m generally only reading content from it via a feed reader. When I post to or interact with it, I’m always publishing my content on my own website first and syndicating a copy to Twitter for those who don’t own their online identities or content and (sadly) rely on Twitter to do that for them.
Within this setting, since roughly late 2016, I’ve been posting almost all of what I read online or in books, magazines, or newspapers on my own website. These read posts include some context and are often simply composed of the title of the article, the author, the outlet, a summary/synopsis/or first paragraph or two to remind me what the piece was about, and occasionally a comment or two or ten I had on the piece.
In tandem with these posts, I’m also sending webmentions to the websites of those pieces. These (experimental) read webmentions are simply notifications to the originating site that I’ve read their piece. In our prior framing of lurking or Twitter, I’m sending them the simplest notification I can think of to say, “I’m here lurking. I’m reading or looking at your work.”
I’m not saying that I liked it, favorited it, disliked it, bookmarked it, commented on it, or anything else, but simply that I read it, I consumed it, I spent the time to interact with it. But in contrast with Ton’s older method of looking at server logs to see what kind of traffic his posts are getting, he can see exactly who I am and visit my website in return if he chooses. (Ton’s old method of sifting through those logs was certainly not a fun experience and the data was usually relatively anonymous and useless.) These newer read notifications could potentially give him a much richer idea of who his (lurking) audience actually is. Then when someone shows up with a comment or reply, it’s not completely from out of the dark: they’ve previously indicated that they’re at least somewhat aware of the context of a potentially broader conversation on his site.
These read notifications are semantically different from likes, favorites, or even bookmarks on other platforms. In fact many platforms like Twitter, which has moved from “stars” (with the semantic idea of a favorite) to “hearts” (with the semantic idea of a like), have so few indicators of reaction to a post that the actual meaning of them has been desperately blurred. Personally I’ll use Twitter’s like functionality variously to mean: “I’m bookmarking this (or the linked article within it) for reading later”, “I like this post”, “I’ve read this post”, or even “I’m acknowledging receipt of your reply to me”. That’s just too much meaning to pack into a silly little heart icon.
If they choose, some website owners display these read post notifications in one or more ways. Some sites like Aaron Parecki’s or Jeremy Keith’s will show my interactions as bookmarks. Others, primarily WordPress-based websites that support Webmention (via plugin), will actually show these interactions in their comment sections under the heading “Read” and display my photo/avatar as an indicator that I’ve interacted with that post. In the case of read posts on which I’ve written one or more comments, the receiving site also has the option of showing my interaction not as a read/bookmark intent, but could also show my comments as a reply to their post. I’ve written a bit about this and its potential for large news outlets before in Webmentions: Enabling Better Communication on the Internetfor A List Apart. There are also some older legacy sites that might show my interactions as a trackback or pingback, but these seem few and far between these days, particularly as those systems are major targets for spam and the Webmention protocol has a richer interaction/display model.
A new itch
But as I think about these read posts, lurking, and being more civil on the internet, I have a new itch for some functionality I’d like to add to my website. I very frequently use my website as a digital commonplace book to collect links of things I’ve read, watched, and listened to. I’ll collect quotes, highlights, and even my own marginalia. As I mentioned above, my read posts sometimes have comments, and quite often those comments are really meant just for me and not for the author of the original post. In many cases, when my comments may be too egregious, sensitive, or perhaps even insulting to the original author, I’ll make these posts private so that only I can see them on my site. Of course when they’re private, no notifications are sent to the site at the other end of the line.
Sometimes I would like to be able to send a read notification to the site, but also keep my commentary privately to myself. This allows me to have my notes on the piece and be highly critical without dragging down the original author or piece who I may not know well or the audience of that same piece which I haven’t properly lurked (in the positive community-based sense indicated above) to be as intelligently and sensitively commenting as I would otherwise like. Thus I’d like to build in some functionality so that I can publicly indicate I’ve read a piece (and send a notification), but also so that I can keep the commentary on my read private to either myself or a smaller audience.
I suspect that I can do this in a variety of meta-fields on my website which aren’t shown to the public, but which might be shown to either myself or logged in users. In some sense, this is a subset of functionality which many in the IndieWeb have been exploring recently around the ideas of private posts or by limiting the audience of a post. In my case, I’m actually looking at making a post public, but making smaller sub-portions of it private.
To begin with, I’ll most likely be looking at doing this at a small scale just for myself and my commonplace book, as I can definitely see second and third-order effects and a variety of context collapse issues when portions of posts are private, but others who may be privy to them are commenting on those pieces from the perspective of their public spheres which may not be as private or closed off as mine. i.e.: While I may have something marked as private, privy readers will always have the option of copy/pasting it and dragging it out into the public.