Two years ago I wrote about the features I’d like to see in an ideal feed reader. Today I’ve tried to sketch out the various components, based on the various IndieWeb protocols, and then match the features I listed previously to the component that I think should provide it.

Separating feed reading into IndieWeb components

Feeds from blogs, to the left in the sketch below, end up in a microsub server, whose function is to fetch and store feeds. A microsub client is what presents those fetched feeds to me. A regular feed reader usually does both these things, but splitting them like the IndieWeb does allows multiple clients to use the same collection of feeds and feed items. It allows a wider diversity of readers, if the fetching is dealt with separately.
The microsub client also contains a micropub client. This allows having action buttons underneath each item presented in your microsub client. Hitting a button posts your reply or remarks, or shares something to your own website, and through your site to e.g. Twitter or Mastodon. Ideally it would be possible to have different websites to share to, next to storing locally in a specified format. The website that receives such an action has a micropub endpoint, and may need authentication through IndieAuth.

Such a reader set-up should be able to run locally on my laptop, as well as on a basic hosting package, so likely php / mysql based. Locally because I want to run my stuff local first, but the same thing online, even if a home server, because I’m not always working on my laptop and would like access from my tablet too, and point my Android Indigenous app to my subscriptions. Locally I would not need authentication from the microsub client to the microsub server, but in all other situations I would.

The sketch above is completely congruent with how I sketched my information gathering and filtering process in 2005:

filter1.jpg

Matching the ideal functionality to IndieWeb components

When I match the features of my ideal feed reader to those various IndieWeb components I think this is what results:

Microsub server needs to be able to :
* use various kinds of feeds (rss, atom, json, h-feed)
* allow folders (so I can arrange feeds on social distance)
* recognize and store tags if feed items have them
* allow me to tag _feeds_, really meaning tagging authors
* keep track of posting frequency, last post seen of feeds
* keep track of tags or predefined topics mentions/frequency
* pull in machine translations by default for certain feeds and store them with the orginal item

Microsub client needs to be able to:
* present the feed items in the server’s folder structure as a long list (the classic feed reader view)
* present views based on patterns in current feed items: what’s hot, what’s unique? Also set against social distance. (Topics discussed in my communities today)
* present views based on feed tags (show me all Germany based blog items of this morning, show me every feed of from EU based coders)
* present views based on feed tags and item tags: show me Germany based blog items talking about topic X.
* show full text search results of all items mentioning a certain topic.
* store full text search queries
* present visually which topics seem to be hot in which community, or where the frequency of mentioning a topic has changed
* provide a search of feeds (not feeds content): do I already have this feed in my list, where’s the feed of author Y?
* pull in a machine translation on request

Micropub client needs to be embedded in the microsub client and should support:
* saving an article as markdown or as html, to disk, to Zotero
* creating a todo from it by amending a textfile,
* bookmarking it, either to my blog or some other target
* sharing something about it to my blog, to Mastodon through my blog
* replying to it, through my blog to Mastodon, Twitter, other blogs
* allow configuring new actions.
* choosing from multiple micropub endpoints

What do you think, should some of these features be provided by other components than they’re currently listed? Are features missing that you’d like to see in your ideal feed reader?

Replied to Really Simple Syndication by Erik VisserErik Visser (publicworks.nl)
Vanaf begin dit jaar ben ik RSS weer aan het afstoffen. ... Netvibes weer eens bekeken en 99% van alle rss feeds werkten niet meer. ... Ik ben blij met mijn hervonden feed (die potentieel het hele internet bestrijkt). En als je nog mooie, bijzondere mensen met een site kent. Ik hoor het graag.

Naast RSS heb je, las ik bij Frank, ook Webmention aan dus schrijf ik een reactie vanaf mijn eigen blog. Ik heb 3 jaar geleden toen ik weer vaker ging bloggen en FB achter me liet, mijn feedreader leeg gegooid en opnieuw langzaam gevuld. Ik lees wat mensen schrijven (geen ‘bronnen’) en orden feeds op basis van mijn gevoelde sociale afstand tot hen. De aloude blogrol heb ik ook weer terug, nu in de vorm van een mens- en machineleesbare OPML file, die je in de meeste rss readers kunt importeren om te zien of er schrijvende mensen tussen zitten van je gading.

You can subscribe to new content on this site by using a variety of available feeds. Feedreaders should be able to discover the main feed and responses feed on their own. But there are more feeds available than just those two. This is a WordPress site, so almost everything also has its own RSS feed.

Main Feeds

  • You can get all new content by following the main RSS feed (as listed in the right sidebar). The URL is just this blog’s URL with /feed at the end. This is true for all other types of feed, just add /feed at the end. This feed is also how I share my posts to Micro.blog/Ton
  • In the past some feed readers have been blocked by my hosting provider as malicious bots. If that happens to you, you can use the Feedburner feed as an alternative. (But be aware that Google will collect data from you using their Feedburner service.) It also contains all postings.
  • There is also a microformatted feed, h-feed, which provides JSON output. This however only has content that is shown on the front page of my blog, i.e. things I consider ‘main’ articles. The day to day observations and bookmarks etc. are not in that h-feed.
  • There are two main feeds for responses to content, one for any type of response (including likes, mentions etc.), and one for comments only.
  • Dutch language posts (feed), and German language posts (feed) both have their own feed. The default language is English and has no separate feed. All main feeds contain also the non-English postings.

Everything has a /feed

This is a WordPress site, so almost everything also has its own RSS feed. (WordPress.org page on feeds)

  • If you add /feed to the URL of a single posting, you will get the feed for comments on that specific content-item.
  • Every tag or category has its own feed. Go to the overview page and add /feed to the url. E.g. the posts with tag unconference at https://www.zylstra.org/blog/tag/unconference/ have their own feed https://www.zylstra.org/blog/tag/unconference/feed. Similarly a category overview like https://www.zylstra.org/blog/category/deutsch/, the category for German language posts has https://www.zylstra.org/blog/category/deutsch/feed as feed. There are different categories used by pages and by postings, so they have separate feeds. As the Digital Garden (wiki section) in this site is built from pages, this allows you to subscribe to the wiki, or individual wiki categories separately from my blog.

Browse. Search. Subscribe. Longhorn Loves RSS
Browse. Search. Subscribe. Image by Kris Krüg, license CC BY SA

In response to Peter’s earlier request I have created a new RSS feed that contains only comments on postings, not other types of reactions such as likes, mentions, and ping- or trackbacks. It was a bit of a puzzle to get it all working, having me dive down the rabbit hole leading to the maze that is the WordPress documentation. With some suggestions from Jan Boddez, I now have a result. The new feed is listed on the right hand side. Subscribe to it if you care to follow conversations on this blog. The feed with all interactions, so including likes etc., is also available.

I documented how I created the feed over in the wiki.

Peter asked me if it is possible to change my RSS feed for my comments. Right now it contains any reaction, which come in the form of webmentions, likes, reposts, as well as actual replies and comments. Essentially it is currently not a comment feed, but a reaction feed. As part of my site tweaks I will see if I can turn it into a real comment feed (that includes webmentions that are replies), and how to change the way some things are displayed (I had that but it got overwritten by plugin updates).

For now I have renamed the comment feed, so new subscribers have the right expectations.

In the past days both Heinz and Ric alerted me that my RSS feeds wasn’t reachable for them. My log files quickly showed what was happening, Netnewswire, FeedBin and TinyTinyRSS were blocked by my hoster as ‘bad bots’ whenever they tried to reach my RSS feed:

[Thu Mar 26 03:43:49.372015 2020] [:error] [pid 501480] [client 95.143.172.147:48116] [client 95.143.172.147] ModSecurity: Access denied with code 403 (phase 2). Matched phrase "tt-rss.org" at REQUEST_HEADERS:User-Agent. [file "/etc/httpd/modsecurity.d/modsecurity_localrules.conf"] [line "2"] [id "350001"] [msg "Bad Bot Rule: Black Bot detected. "] [hostname "www.zylstra.org"] [uri "/blog/feed/"] [unique_id "XnwW5ZujCwgIM-xP-57OfAAAAAE"], referer: http://www.zylstra.org/blog/feed/
[Thu Mar 26 04:06:25.506843 2020] [:error] [pid 452702] [client 157.230.163.157:51478] [client 157.230.163.157] ModSecurity: Access denied with code 403 (phase 2). Matched phrase "Feedbin" at REQUEST_HEADERS:User-Agent. [file "/etc/httpd/modsecurity.d/modsecurity_localrules.conf"] [line "2"] [id "350001"] [msg "Bad Bot Rule: Black Bot detected. "] [hostname "www.zylstra.org"] [uri "/blog/feed/"] [unique_id "XnwcMZhpXdX8450kb5sLbgAAABI"]
[Thu Mar 26 05:45:54.289670 2020] [:error] [pid 681301] [client 69.172.186.78:39628] [client 69.172.186.78] ModSecurity: Access denied with code 403 (phase 2). Matched phrase "NetNewsWire" at REQUEST_HEADERS:user-agent. [file "/etc/httpd/modsecurity.d/modsecurity_localrules.conf"] [line "2"] [id "350001"] [msg "Bad Bot Rule: Black Bot detected. "] [hostname "www.zylstra.org"] [uri "/blog/comments/feed/"] [unique_id "XnwzggS4@-ngUalhqeVluAAAAA4"]

I submitted a ticket with my hoster Thursday but they have been unusually unresponsive this time. So for the time being I created a Feedburner RSS feed http://feeds.feedburner.com/InterdependentThoughts, so at least those that have this issue can resolve it. However Feedburner has been part of Google since 2007, which means the service hasn’t evolved apart from that it tracks your reading habits. So I’m on the lookout for a replacement service that does the same as Feedburner, except that it isn’t Feedburner, so sans the tracking.

[UPDATE 2020-03-30: the blocked feedreaders are now unblocked again. I’ll keep the Feedburner feed alive for now. Will likely rename it to something under my own domain [no longer possible], and my try to replace it with something like granary.io]