A reader (or indie 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, possibly including posts from the current site as well.
If you're looking for pre-indieweb / legacy feed readers (e.g. like Google Reader) see:
- 1 Why
- 2 IndieWeb Examples
- 3 Previous Examples
- 4 Brainstorming
- 4.1 Integrated Activity Reading
- 4.2 Jeena Notes Reader
- 4.3 Dark Matter Reader
- 4.4 Partial Feeds
- 4.5 Discovery of posts on a page
- 4.6 Discovery of alternate feeds
- 4.7 List and hashtag
- 4.8 In-stream comments and likes
- 4.9 Post Presentation
- 4.10 Inclusion of non-Indieweb sources
- 4.11 Incremental development path
- 5 Challenges
- 6 Open source examples
- 7 Silo examples
- 8 Next Steps
- 9 See Also
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
- Filter and prioritize posts from others using algorithms of your own choosing.
That's just the beginnings of what an indieweb reader can enable.
In datetime order of implementation (earliest first)
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 developed Intertubes, an experimental indieweb-oriented flow-based programming + feed reader UI parsing microformats and shimmed twitter.com microformats.
- simple feed demo and associated source
- more complex example and source
- sandbox for experimenting — try making your own feeds!
Barnaby is using and developing Shrewdness, a multi-column feed reader as of at least 2014-08-04
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.
Ben Werdmüller, Aaron Parecki, Emma Kuo
- 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
- 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
- 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.
- 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 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 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.
Grant Richmond and Jonathan LaCour are working on the Together project, which is an open source reader based upon Microsub and Micropub. Together attempts to provide an integrated experience that "brings your IndieWeb experience together," including:
- Preview and subscribe to websites, arranging them into "channels."
- Create interactions including Like, Repost, and Reply, publishing those interactions to your website via Micropub.
- Filter channels for photos, checkins, articles, status, and more, including a gallery view, and a map view for browsing checkins.
Here are a few screenshots of Together as of January 25th, 2018:
Eddie Hinkle is working on Indigenous, which is a native iOS reader app in the beta phase of development. It is based on Microsub and Micropub. It allows a user to login using IndieAuth, and if a Microsub endpoint is found on the user's primary identity site, a reader interface is shown when the app is opened. It includes the following features:
- See a list of channels
- Preview all posts in a channel, with the option to send a reply via Micropub or view the original post at the permalink.
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.
Aaron Parecki developed a Microformats2 plugin for selfoss, and ran it on a subdomain of aaronparecki.com since 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: http://aaronparecki.com/notes/2014/02/13/3/microformats-selfoss-indieweb
Integrated Activity Reading
From analyzing the screenshots in this article:
of Facebook's News Feed experiment:
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
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)
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 
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.
- 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?
- Poll/refresh only when the item is clicked or asynchronous fetch when the item is viewed with live updates
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
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:
- Falcon#improve_replies_details has reply-context improvements I need to build
- 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.
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:
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.
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.
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.
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.
- 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
After implementing an indie reader, you may find that you want to search all the things you read. See:
- search: Social Search for some brainstorming on this.