Deeper in the Indie Web

Hi! You might want to know that this post continues ideas from the following.
Hi! It looks like I have since continued, updated, or rethought this post in some ways, so you may want to look at these after you're done reading here.

Last time, I started adding Indie Web processes to the blog, meaning that I’ve had the pieces in place for about a week.

A spider web with dew, in front of presumed concrete blocks

I wanted to provide some updates on how that has gone, what I have regretted and/or modified, and so forth.

Quiet in Here…

The first point to raise, I think, gets at how few people use these technologies and protocols, and especially how little my path intersects with theirs. Specifically, I don’t actually know if any of what I did last week actually works, because I don’t believe that I interact with anybody else “on” the Indie Web.

I know that I haven’t received any direct Webmentions, but that could stem from not having things properly configured or nobody with both the capacity and inclination to do it. After all, I believe that you can count the number of run-of-the-mill comments that I’ve received—through the comment box at the bottom of the page—on your fingers. Likewise, I don’t actually know if any of the articles that I post to Mastodon come from sources that would accept Webmentions, so my social media roundup posts probably shouldn’t randomly refer to those sources as a test for sending them.

However, since I decided to write this post anyway, I do see one option that should cover both ends of the test. As an experiment for this week, I can try to send myself a Webmention. After all, you can think of this post as a reply to last week’s post. Therefore, it makes (some) academic sense to actually send myself a reply or comment mention.

The documentation provides this example.

<div class="h-entry">
 <a class="p-author h-card" href="http://mysite.example.org">
   <img alt="" src="http://mysite.example.org/icon.jpg"/>
   Supercool Indiewebauthor</a>: 
 in reply to:
 <a href="http://example.com/note123" class="u-in-reply-to">Some note with a point</a>
 <div class="p-name p-content">Good point! Now what is the next thing we should do?</div>
</div>

You’ll note the h-card at the start of the comment, and some manually maintained structure. It feels substandard, but I can turn that into a comment on last week’s post. I’ll deal with the styling later, and if this works as expected, turn this into a Jekyll plugin, so that I don’t need to worry about the structure.

Actually, this seems insufficient. A comment should have a time-stamp on it, so I’ll add that.

, in reply to: Trying on the Indie Web, Part 1

I don't know how this will render on the destination side, but I have continued the work from this post at Deeper in the Indie Web .

If you look at the Markdown source for this post, you’ll see the comment’s HTML listed in the post, above—complete with some Liquid tags to make sure that I keep the dates and URLs straight—rather than my disembodied head and some text.

To make the layout better fit the blog, I made some adjustments to the organization. I don’t believe that I broke the microformat in doing so. In particular, I changed p-content to e-content, since the Microformats guide refers to the difference as plain-text (p-*) and HTML (e-*), and this reply includes a URL that I may as well turn into a hyperlink.

As usual, I won’t know whether I got this right, until I publish this post. But if it works, then you should see the above comment replicated at the bottom of my first Indie Web post, from last week, in some form. 🤞

Build Time

Adding the Webmentions created a second source of stress for me, when publishing posts: Rebuilding the blog now takes at least eight minutes. With over a thousand posts, that does make some sense, since the software needs to see if anybody responded to any of them, and that requires checking a server. But it also means that I need to stay ready to grab the URL for social media announcements, plus it provides plenty of time for something to go wrong with my Internet connection, and I don’t know how that would change the timing.

It doesn’t help that the Webmentions gem does its work silently, making normal processing indistinguishable from some sort of deadlock.

As it turns out, the gem’s author has already thought about both problems. First, I can add debugging to the blog’s configuration.

webmentions:
  debug: true

This gives me a running log, with items like the following from Saturday.

[jekyll-webmention_io] Checking for webmentions of /2024/03/16/cauac-ox.html. 
[jekyll-webmention_io] Sending request to https://webmention.io/api/mentions?target[]=https://john.colagioia.net/2024/03/16/cauac-ox.html&sort-by=published&perPage=9999. 
[jekyll-webmention_io] No webmentions found. 

You can probably see how a thousand of those might become something of a bottleneck.

Now that I see the actual problem, I can limit which pages check for Webmentions, based on their age. I probably want to see reactions to recent posts as soon as possible, in case I need to respond in a timely manner. But if someone takes two years to reply to a post, then they probably don’t care if it takes a couple of more weeks for it to show up on the blog.

webmentions:
  throttle_lookups:
    last_week: daily
    last_month: weekly
    last_year: every 2 weeks
    older: monthly

As of this post, I combine those with my existing configuration.

webmentions:
  debug: true
  name: john.colagioia.net
  throttle_lookups:
    last_week: daily
    last_month: weekly
    last_year: every 2 weeks
    older: monthly

This should make my life a bit easier, at least.

Microsub

Now, I may have gotten ahead of myself on this one, and tried to put things together in the wrong order, so this may come to nothing. However, following links around, I ended up looking at Microsub, and said “yes, I definitely lack the part where I can follow what other people post,” not to mention validating that people can follow me beyond using the RSS feed.

Again, I may have gotten things in the wrong order, particularly because they describe Microsub as “a proposed standard,” and it seems to have some overlap with at least one other standard. However, I tried to run one of the Microsub servers, and got a somewhat predictable error message.

missing token endpoint

Why do I call that predictable? Last week, I said…

…and I don’t think that I need any of that token nonsense.

And on that basis, decided to host a Selfauth server for my IndieAuth purposes. And when I publicly assert that I won’t need something, you can bet that I’ll need it soon enough.

That said, I don’t actually know if this will bother me, in the long term. As mentioned, this only stands as a proposed standard, and I may have better luck with WebSub, when I get to it. And if it does, then I’ll need to replace Selfauth with something that supplies a token.

Connecting to Mastodon

I had a maybe-interesting thought, at one point during the week. Thinking about where this process could lead, I wondered if existing social media—Mastodon seeming like the most likely target—supported Webmentions.

It, as you can probably guess, does not. That makes some sense, because most people don’t build a social networking protocol with the intent of feeding somebody else’s social network. The domain-as-identity issue also seems like it might not work perfectly well with a hosted social network.

However, while researching the question, I happened on a project called Bridgy. It monitors a Mastodon feed—like my own, once I give it permission—for interactions and, if the post has a URL on my site, it passes it along (“bridges it”) as a Webmention.

As such, in a sense, I technically shaded the truth above, when I said that I didn’t know if I had things set up correctly. By bridging in Mastodon, without changing any of my processes, you can now go to the bottom of a recent post—maybe even this once, since I have it tagged with programming, and see how people have interacted with at least the announcement of the blog post.

For example, if you click through to last week’s post and scroll to the bottom, you’ll see—duplicated, for some reason that I’ll probably need to fix—that three users marked the announcement as a favorite, and a bot from that odd Newsmast organization shared it…at least as I write this particular paragraph. 🎆

Anyway, I also connected my GitHub account, though I don’t expect that to generate many Webmentions. It looks like it can also connect to Bluesky, Facebook, Flickr, and Reddit, if that interests any readers. I technically have Facebook, Flickr, and Reddit accounts, but don’t use them in the sense that it would make sense to set up the bridges. I’ve only ever used Facebook as a way for people from my past to find me, and it becomes less useful all the time, as people move to other networks. Flickr, I use to simplify downloading Free-licensed images for blog posts. And Reddit, I used for a couple of months and then wandered off out of lack of interest.

Bridgy to Nowhere…

One flaw that I can already see? Somewhere in the handoff from Mastodon to Bridgy to the Webmention plugin to the display on my page, the dates don’t show up at all correctly. I currently see a lot of dates in December of 56,176. And look, I admit that I’ve occasionally lost track of time, in my life, but more than fifty-thousand years seems a bit extreme.

I should also mention that Bridgy provides the option to send the equivalent of my blog announcements. The way the description phrases it, I expected it to provide a significant preview, maybe doing a better job than my existing announcements. However, it only provides the title and—for some reason optionally—a link to the post, so I don’t see myself getting much use out of that.

Week One Complete

If the Webmention above goes through, and if it doesn’t take too long for this post to go out, then I’ll call this first week a success. On its own, that should prove that I can both send and receive Webmentions. As mentioned, I know that I can receive them, thanks to Bridgy. And I have to admit that, despite the not-so-great styling, it at least brings some life to the blog.

I don’t know if I’ll continue on with this particular project immediately, if so, but I’ll definitely get to it eventually. At a bare minimum, I’ll want to add Liquid tags that can insert Webmentions of the sorts that I’d likely use in a post. We all know that I’ll never remember to post a profile picture, explanation, title-with-URL, reply-with-proper-classes, and two kinds of date every time that I want to reply to someone, whereas a Jekyll plugin would have most of that on hand…

Styling everything would also help, I think.

As I mentioned last time, I see a lot of value in building the useful aspects of social media into individual web pages. It definitely doesn’t make sense for everyone to run their own Mastodon server to control their social media experience, and it feels silly to take a Scuttlebutt-like approach of assuming that everybody wants to carry around the entire immutable history of the network. But most people can figure out how to host a few pages. And if that gives people control over their social media experience, then I’d call that a winning proposition.

Even if we never get to that extreme point, I certainly wouldn’t mind it if my Social Media Roundup posts started including likes for and replies to other blogs and news sources, beyond my posting things to Mastodon. If I find sites where that might work, I’ll certainly give it a try. In fact, I should check this week’s links for anybody that supports Webmentions, since I already link to them anyway.

The Free Culture Book Club posts would also make excellent candidates to send Webmentions, when supported, in the hope that we can strengthen the small community of people who work on these sorts of projects.

To that end, you might have noticed—probably not, but you could plausibly have done so—the repository that I created yesterday on GitHub, Earburn. When I finish it, it’ll serve as a browser extension that’ll identify when the current page supports Webmentions. If I can put together (or find someone to put together) a decent set of icons for it, then I’ll try to get it up on the Firefox and Chrome add-on sites.


Credits: The header image is Web by Martyn Wright, made available under the terms of the Creative Commons Attribution 2.0 Generic license.


No webmentions were found.

By commenting, you agree to follow the blog's Code of Conduct and that your comment is released under the same license as the rest of the blog. Or do you not like comments sections? Continue the conversation in the #entropy-arbitrage chatroom on Matrix…

 Tags:   blog   indieweb   programming   techtips

Sign up for My Newsletter!

Get monthly * updates on Entropy Arbitrage posts, additional reading of interest, thoughts that are too short/personal/trivial for a full post, and previews of upcoming projects, delivered right to your inbox. I won’t share your information or use it for anything else. But you might get an occasional discount on upcoming services.
Or… Mailchimp 🐒 seems less trustworthy every month, so you might prefer to head to my Buy Me a Coffee ☕ page and follow me there, which will get you the newsletter three days after Mailchimp, for now. Members receive previews, if you feel so inclined.
Email Format
* Each issue of the newsletter is released on the Saturday of the Sunday-to-Saturday week including the last day of the month.
Can’t decide? You can read previous issues to see what you’ll get.