reader

From IndieWeb

A reader in the context of the indieweb is the portion/feature integrated into an indieweb site that provides a way to read content from other indieweb sites and respond (like, comment, repost, etc) inline on the site itself directly while reading posts.

If you’re looking for pre-indieweb / one-way read-only feed readers (e.g. like Google Reader) see:

Social Readers

Main article: social reader

The latest exciting development in readers is easy to set-up interactive Social Readers built on top of the emerging Microsub standard that builds on the openness of yesterday’s feed readers, modernized with interactivity everyone now expects from social media.

IndiePass

iOS Indigenous screenshot.

Eddie Hinkle and Kristof De Jaeger are working on IndiePass, which is a set of native iOS, Android and desktop reader apps.

Monocle

Monocle desktop screenshot of timeline view.

Monocle is a web-based reader (desktop and mobile, see above) that is a generic Microsub client and can be used with any Microsub server, written by Aaron Parecki.


See the Social Readers page for more examples and deatils!

Why

Why integrated personal reader

Reasons to have a personal reader (a reader integrated into your site for you to use)

  • If you had reading built into your own site, would you ever need to visit Twitter or touch a Twitter client again? (since you can presumably already post from your site and POSSE to Twitter, including replies)
  • Your own site can provide you with a superset of Twitter-like functionality, assuming you're already
    • posting notes,
    • POSSEing them to Twitter,
    • backfeeding replies/favorites/retweets onto your original notes (e.g. using Bridgy).
    • Add to that:
      • following others
      • reading others' notes
      • inline favoriting, retweeting, and replying to others' notes
  • Filter and prioritize posts from others using algorithms of your own choosing.

That's just the beginnings of what an indieweb reader can enable.

IndieWeb Examples

In datetime order of implementation (earliest first).

Note: 2018-11-19 some of these may be out of date, need to review them to see which are still active and move others to a former examples subsection.

Ashton McAllan

Ashton McAllan developed a Wordpress plugin, WhisperFollow, which aggregates RSS/Atom and Microformats2 data from the pages linked to in your blogroll and displays those updates in a private page in your wordpress blog. It currently defaults to RSS/Atom only attempting to read MF2 if the separate feed isn't found. It also allows updates to be reblogged, replied to, favourited, and commented on etc.

Barnaby Walters

Barnaby Walters developed Intertubes, an experimental indieweb-oriented flow-based programming + feed reader UI parsing microformats and shimmed twitter.com microformats.

Barnaby is using and developing Shrewdness, a multi-column feed reader as of at least 2014-08-04

Amber Case

Amber Case also uses selfoss with the Microformats2 plugin on caseorganic.com since 2014-02-13.

See: http://caseorganic.com/articles/2014/02/13/1/indiereader-subscribe-to-people-from-your-own-site

Andy Sylvester

Andy Sylvester also uses selfoss with the Microformats2 plugin on http://andysylvester.com/selfoss/ since 2014-03-01.

See http://andysylvester.com/2014/03/01/howto-setting-up-the-selfoss-feed-reader-with-microformats-support/ for instructions on how to set up the Selfoss reader.

IndieReader

At IndieWebCamp 2014, Ben, Aaron, and Emma built an IndieReader demo/prototype in PHP reusing components from their personal site implementations.

Features:

  • allows authoring comments and liking posts via micropub
  • reads microformatted subscription list from a URL
  • supports mf2 h-feeds as well as RSS/Atom feeds

Emma Kuo

Emma Kuo used an experimental reader in neonblog since 2014-7-26.

  • reply/like/repost buttons link to posting UI
  • only supports mf2
  • requires manual polling

thready, a thread reader created for Indieweb Summit 2016 hack day.

  • proof of concept of thread-crawling algorithm

Kyle Mahan

Kyle Mahan is developing Woodwind, a simple reader in Python/Flask, with an instance running at [1] since 2015-02-01. It includes:

  • Sign up/login via indieauth, open to anyone.
  • Supports h-feed via mf2util and XML feeds via Python's excellent feedparser.
  • Support different strategies for posting responses -- micropub, indie-config, and custom URL endpoints.

Aaron Parecki

Aaron Parecki is developing Monocle, a simple reader in PHP built as part of p3k, and is running it at https://monocle.p3k.io since 2015-03-16. It includes:

  • Sign up/login via IndieAuth, open to anyone
  • Supports subscribing to h-feed URLs
  • Supports posting "likes" and "bookmarks" back to your site
  • Subscribes to PuSH hubs of URLs that are added

Malcolm Blaney

Malcolm Blaney has added microformats support to the SimplePie feed parsing library, which is available at https://github.com/simplepie/simplepie. This library is used in conjunction with dobrado to provide an easy to use reader. It is deployed at https://unicyclic.com and includes:

  • Sign up/login open to anyone via traditional username/password with email confirmation.
  • Login is also publicly available via IndieAuth, and posts created via Micropub in this case.
  • When IndieAuth is used but Micropub is not available, indie-config is used for actions.
  • Supports displaying previous actions made by using the indie-config status protocol.
  • Supports multi-feed discovery via link tags or rel=feed.
  • Supports subscribing to any page containing h-feeds or h-entry's (as well as xml feeds).
  • Supports in-line posting, likes, shares and replies.
  • Update notifications from both PubSubHubbub and rssCloud.
  • Imports a list of feeds (OPML) from many other readers including: Google Reader, Feedly, Newsblur, inoreader.

Chris Aldrich

Chris Aldrich installed the WordPress plugin for PressForward to create an integrated feed reader into his WordPress site. While IndieWeb in flavor it could still stand to add a few pieces of additonal functionality. In conjunction with the Post Kinds plugin, the two together allow for a more coherent self-contained workflow. Features include:

  • The ability to privately bookmark posts (PressForward calls this functionality "nominate")
  • Easily reposting stories (including the full contents, photos, etc) or posting them as read, bookmark, like, favorite, etc. posts (one could also mark them as read privately).
    • Canonical URL use allows for the option of redirecting posts to the original story to properly attribute credit to the originating site
  • A bookmarklet for easily adding individual stories and or saving sources for subscribing to at a later date.
  • An integrated clean reading interface courtesy of Mercury (fka Readability).
  • The ability to save a full archival copy of the posts within the reader.

Additional details can be found here.

Yarns Indie Reader

Yarns is a reader that is built for use with WordPress as a plugin. It supports microformats and micropub. Built by Jack Jamieson and announced on his site on 2018-02-08. It's based in part on Ashton McAllan's WhisperFollow with inspiration by Woodwind. Development and distribution of the project is done on Github.

Kicks Condor

Main article: fraidycat

fraidycat created in late 2019 is a browser extension for Firefox or Chrome that lets you follow people, see a summary of who has recently posted instead of a news feed, and expand the summaries to see recent titles/excerpts. It was created by Kicks Condor. Use it to follow people (hundreds) on whatever platform they choose — Twitter, a blog, YouTube, even on a public TiddlyWiki.

Previous Examples

Aaron Parecki selfoss

Aaron Parecki developed a Microformats2 plugin for selfoss, and ran it on a subdomain of aaronparecki.com around 2014-02-13. The reader polls the subscriptions at a predefined interval looking for new h-entry posts on each person's home page.

Here's a screenshot of a following list:

Here's a screenshot of a reading window:

For more on this see: https://aaronparecki.com/2014/02/13/13/microformats-selfoss-indieweb

Software Examples

See also: Microsub

Woodwind

Woodwind is an open source social reader that supports subscribing to h-feed and XML feeds, as well as IndieAuth and Micropub.

Brainstorming

Integrated Activity Reading

From analyzing the screenshots in this article:

of Facebook's News Feed experiment:

gpnggaky8d1gog_small.jpg

A single integrated news feed of friends' activities, including posts and likes.

Comparing the experiment and the reversion, shows the experiment provided:

  • More efficient reading (less time spent by the user reading the news feed)

    ...users who were switched to the new News Feed tended to spend less time on the site.

  • Less distraction (less frequent browsing of other pages)

    ...users no longer felt the need to browse areas outside of the News Feed as often...

  • Fewer UI elements overall (including fewer navigation links, especially with activity numbers on those other pages).

All of these differences provided for a better-for-the-user user experience (faster, more focused, more relaxed) which could (should) be used in the design of indieweb reader user interfaces, as it provides opportunities to outdo silo UX.

Tantek 16:36, 27 March 2014 (PDT)

Jeena Notes Reader

Thoughts on challenges and how to develop an indie notes reader:

Dark Matter Reader

I ( Shane Becker) have "plans" to build a personal reader, as a separate project, called Dark Matter Reader. I made a static prototype in 2010-08 (with static snapshots of real data from then).

The plan is for Dark Matter Reader and Dark Matter Publisher to be sister projects. Subscribe webactions (while browsing around the web) will get caught by Dark Matter Reader. Repost/Reply/Bookmark webactions will go from my Dark Matter Reader app to my Dark Matter Publisher powered site. But both will be optional connections to the other. Either Dark Matter Reader or Dark Matter Publisher could be run stand-alone without the other one. At least, that's the Big Plan™. (Not enough time/money/people.) - Shane Becker (2013-08-10)

Partial Feeds

See: h-feed#partial_feeds

Discovery of posts on a page

Given a URL, a reader needs to be able to reliably find the list of entries on the page.

Discovery of alternate feeds

See also: h-feed#canonical_feed_autodiscovery

Given someone's home page, they may link to one or more additional feeds of posts other than what's visible on the home page.

List and hashtag

In 2015, at the XOXO festival, Aaron Parecki created a private stream of tweets from attendees who mentioned "xoxo," and those tweets appeared in the conference's Slack channel. This was hugely popular at the conference since the hashtag on Twitter was being spammed, making it impossible to read actual content about the conference on Twitter itself.

In-stream comments and likes

As discussed on IRC [2]

I enjoy the integrated experience of an indie reader, but am missing comments and likes from others. This is especially noticeable when I want to comment on something and then realize someone may have made the same comment, a better comment, or a comment that makes my comment seem silly.

A "(n) comments" indicator would be a nice alternative/addition.

Technical challenges:

  • We don't want to poll every permalink ever seen forever
  • How to get timely updates?
  • Silo feeds proxied through granary: how to fetch proxy permalinks and not the real permalinks?

Ideas:

  • Poll/refresh only when the item is clicked or asynchronous fetch when the item is viewed with live updates

Post Presentation

How should a reader display a post -- should it try to include the whole thing, or just an excerpt or summary?

Woodwind includes an optional title ("name") followed by the "content" or "summary" if content is not provided.

  • In general Woodwind tries to show the full content of a post (which can be overwhelming), but because it only fetches the feed page, and not the individual permalinks, it only has access to the infomation in the feed.
  • On h-entry posts (as opposed to h-event), if there is a "name" but no "content" or "summary", the name is displayed as if it were content. In my experience, these posts tend to be note-length posts marked up with only p-name.

Inclusion of non-Indieweb sources

Considering that a user's interest is likely not limited to content published on Indieweb-enabled sites, an important feature of a reader app could also be the ability to subscribe other sources, such as RSS feeds or even silo feeds (by means of an API, if available).

As of December 2017 Sebastian Greger is investigating an approach where incoming links from Indieweb feeds, RSS feeds and links posted by Twitter contacts merge into one reader UI - from where these can then be opened, bookmarked, published etc.

Incremental development path

Tantek Çelik: I'd like to figure out an incremental development path from including integrated reply-contexts in posts on my site to ... an integrated reader on my site.

My sense is that there are useful steps along the way, each of which is both not too hard to implement, and provides actual user benefit when built.

I'm not saying there shouldn't be separate / standalone reader UIs like Woodwind and Monocle, rather that that represents existing (pre-social-media) models / apps, and that a compelling UX (as compared to social media) for generations 2-4 will require integrated /reader UX.

I'm working on this in two ways:

  1. Falcon#improve_replies_details has reply-context improvements I need to build
  2. Documenting emergent incremental steps in IndieMark#aggregation - based on what "reader-like" building blocks people are already building, deploying, using integrated on their own websites.

I'm assuming for now that I'm missing key pieces of or underestimating the scope of this challenge, and in particular missing some key difficult building blocks required by an integrated reader. I hope that documenting my thinking and coding as I go will both reveal some of these, and perhaps more importantly, help the community as a whole figure out what some of these missing building blocks may be.

Miscellaneous Articles

Community member articles with ideas about what they'd want in reader:

Challenges

overload

As Twitter, Tumblr, and other aggregators have demonstrated, keeping up with everything you've subscribed to is both challenging, and eventually unrewarding. Thus some amount of smart filtering/pruning/batching is likely to be an essential part of making indie readers scale beyond following only a handful of people. See also:

one of the reasons I'm not building algorithmic filtering into whisperfollow at the moment is to avoid the filter bubble effect: [3] - acegiak (2013-08-10)

distraction

Whoever is working on the indie reader problem, please consider the problem of social media distraction (which seems to come more from the reading side than the writing side). See related: silo-quits.

missing good stuff

Likely as an attempt to compensate for #overload as noted above, users tend to limit the number of sources they follow, thus resulting in another challenge - the loss of signal, AKA "missing good stuff".

It is possible that there are some approaches for mitigating overload (e.g. perhaps categorizing notes with non-self-source links as comments on those links, and aggregating them by link destination) that could help bubble up "good stuff" from a larger set of people you follow.

outdo search

One of the reasons I have not prioritized the reader for myself, because I have better luck reading social media by searching for hashtags (results piped to IRC) and having other people send me things :)

- Aaronpk in IRC.

Subscription Maintenance

It becomes more and more time consuming to maintain a large list of subscriptions in traditional feed readers. It isn't uncommon to see feed URLs go dark, change location or just stop working for whatever reason. It would be advantageous for the next crop of readers to provide tools to help automate this sort of maintenance. It would also be great to find ways for feeds to state "This will never be updated again" and "This feed will be moving to this new location".

Open source examples

  • Status.net - allows you to subscribe to any PuSH-enabled feed on the web and view it on your home page.

Silo examples

Many social content hosting silos have integrated reader like features, but only for "feeds" of accounts on the particular silo.

  • Facebook - logged in home page has a "news feed" that essentially provides feed reader like functionality of the activities (including posts) of friends of the logged in account.
    • Issues: some sites have successfully gamed the Facebook news feed to dominate, e.g. Upworthy:
      BfawXsMCIAAqSrW.png
  • Tumblr - logged in dashboard has a feed reader of Tumblr users followed by the logged in account
  • Twitter - logged in home page is a feed reader of Twitter users followed by the logged in account

Next Steps

After implementing an indie reader, you may find that you want to search all the things you read. See:

Sessions

See Also