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

Indeed, much better. Thank you! Quick question, I had a look at the WP database, am I right concluding you store the fetched feeds in wp_posts? What’s the reason(s) for that choice?

Replied to Het kwartje valt met de Indieweb lees/schrijf bouwstenen by Frank Meeuwsen (diggingthedigital.com)
Soms moet je bepaalde dingen maar gewoon live testen en zien wat er gebeurt. Zo gebeurde dat dus vanavond. Ik wilde weer eens zien hoe de RSS-apps werken in de Indieweb-community. Via protocollen genaamd Micropub en Microsub kan ik via specifieke RSS-readers een klein stukje magie bewerkstelligen. I...

Ja het voelt magisch aan, als ‘t ‘just works’. Zelf experimenteer ik met de WP-plugin Yarns ipv Aperture. Aperture staat (en dus ook je feeds) op de server van Aaron. Yarns op mijn eigen server. Met Monocle lees ik dan de feeds zoals jij ook beschrijft, Frank.

Yarns microsub plugin in WordPress

Frank’s posting lezen in Monocle

Mijn ideaal is dat gehele gedistribueerde conversaties goed te volgen zijn. Maar dat vergt nog iets meer dan alleen de like, report en reply buttons zoals nu in Monocle. Al is het al enorm vet dat je op die manieren rechtstreeks vanuit je feedreader kunt bloggen. Ik wil echter ook meteen vanuit iets wat ik lees door kunnen naar het schrijven van een heel artikel. Juist vanwege die gedistribueerde conversaties. Het gaat dan namelijk niet alleen om antwoord op een ander, zoals deze tekst, maar ook om ideeën en zijpaden die door een blogpost van een ander zijn getriggerd. Naast meer soorten postings kunnen maken vanuit een reader, wil ik ook graag feeds kunnen taggen. Ik volg mensen, geen bronnen, in mijn reader, en tagging maakt het mogelijk om dwarsdoorsnedes van mijn netwerk te bekijken.

Voor mij is het lezen/schrijven als deel van mijn blogproces een goede kandidaat voor de tweede dag van ons IndieWebCamp Utrecht, en ik hoop er ook op de eerste dag het een en ander over te kunnen bespreken. Waarbij ik me baseer op mijn 2006 noties van ‘people centered navigation‘, en networked agency (2016-nu).

(Ik schreef dit rechtstreeks in mijn reader, maar voegde later handmatig links en afbeeldingen toe. Dat soort dingen konden vroeger met mooie tools als Qumana, die onderdeel werden van je browser.)

I plan to dedicate some learning time in the coming 12 weeks to better understand the protocols that drive the independent web, or IndieWeb. During our STM18 birthday unconference Frank Meeuwsen presented his experiences on the IndieWeb. Frank, Peter and I have formed an impromptu triade to explore the IndieWeb in the past months. In one of his slides Frank conveniently listed the relevant protocols. I’ll plan for 24 hours to explore 6 protocols. Some of them I already understand better than others, so I’ll start with the ones I feel less knowledgeable about.

The ones I want to explore in more detail, in planned order, are:

  • ActivityPub / OStatus, a decentralized networking protocol (as this ties into my Mastodon experiments as well, this comes first)
  • Micropub, publish on your own domain with 3rd party tools
  • Microsub, own your feed-subscriptions (although I already run my own TinyTinyRss instance)
  • Microformats, markup for data, text, people, events (already used on my blog, but curious to see how I can extend that to more types of data)
  • Indieauth, federated login protocol to sign in with your own domain on other services (already active on my blog, but interested in where else I could use it)
  • Webmentions, respond to a blogpost through your own site (already active on my site, but strongly wish to better format and style it on my site)