Microsub
Microsub is a proposed standard for creating a new generation of social readers that decouples the management of subscriptions to feeds and the parsing/delivering content from the user interface and presentation of the content.
The broad goal of the specification is to split up the many pieces of older feed readers into smaller building blocks so that developers and designers can more closely focus on the individual pieces. It separates the plumbing piece of the problem from the design and user interface portion allowing for greater competition and plurality in the overall space. The split between the two additionally allows subscription lists to be portable between readers as well as allowing a person to resume reading posts where they left off when switching between readers.
The Microsub server provides for maintaining a subscription list of feeds, collecting and parsing posts from them (potentially using WebSub) while providing a consistent API so that Microsub clients can present the contents of the feeds/posts in a reader interface by fetching the most recent ones from the server. In addition to display and presentation of posts, the reader client can also potentially make decisions about how to interact with individual posts from within the reader itself.
Reader clients or apps can (optionally) use Micropub to post responses composed within the reader to the the website of the person reading the post and responding to it. These responses, which often include likes, reposts and/or comments, once posted to the person's site can in turn send Webmentions (aka notifications) to the site that was being responded to.
Servers and clients can potentially be directly integrated into websites or made as stand-alone web, mobile, or other applications.
A short discussion of Microsub can be heard on Aaron Parecki's Percolator podcast.
- Want to implement a Microsub client or server? See the Microsub specification.
Articles
- Aaron Parecki 2018-03-12 Building an IndieWeb Reader
- Aaron Parecki 2018-04-20 An IndieWeb reader: My new home on the internet
Clients
IndiePass
IndiePass (formerly Indigenous) is a set of in-development native iOS and Android Microsub reader apps.
Desktop
IndiePass for Desktop is built by Kristof De Jaeger using Electron. Source and releases are available at https://github.com/IndiePass/indiepass-desktop
Monocle
Monocle is a Microsub reader web app built by Aaron Parecki. If you have a Microsub server, you can use the hosted version at https://monocle.p3k.io
Together
Together a web-based Microsub reader, primarily developed by Grant Richmond. Source code at https://github.com/alltogethernow/web/ and an online at https://alltogethernow.io
Ekster Reader
Ekster Reader is a Microsub reader, running in a browser. It connects directly to a Microsub server without its own Microsub proxy backend. For this to work you do need a Microsub server that handles CORS headers, to allow access from the browser. This also applies for the IndieAuth endpoint. A version is hosted at https://reader.p83.nl/
Microsub Notifier
microsub notifier is a Microsub client built purely to send notifications of new content in any of your Microsub channels. Built by Grant Richmond is is hosted at https://microsub-notifier.tpxl.io
(needs screenshots!)
capjamesg's Microsub Client
capjamesg has built an open-sourced Microsub client with Python Flask. The client is connected to a Microsub server but use of the server is optional. Currently, the client is for personal use, but anyone can deploy their own version.
Servers
Aperture
- Aperture, built by Aaron Parecki, is a Microsub server with no UI for rendering posts. This is intended to be a server only, and all rendering happens using Microsub clients. It is built in PHP with MySQL storage. Source on Github
Drupal IndieWeb Module
- The Drupal IndieWeb module, built by Kristof De Jaeger includes a built-in Microsub server.
Dobrado
- dobrado includes a Microsub server, built by Malcolm Blaney
Micro.blog
- Micro.blog can be used as a Microsub server. Channels are mapped to the built-in sections of Micro.blog like Timeline, Mentions, and Favorites.
Yarns
- Yarns is a plugin to run a Microsub server from your WordPress site, built by Jack Jamieson. It uses the Parse This library built by David Shanske. It has a UI for managing channels and subscriptions.
Ekster
- Ekster, built by Peter Stuifzand, is a Microsub server written in Go using Redis or Postgres for storage. It supports full text search, WebSub for realtime feed fetching. Source on Github and is also available as a Docker image.
Other Proxies
Proxies - not entire server(s), but implements Microsub server API wrapped around existing service(s):
Baffle
- Baffle was a bridge that made traditional feed readers like NewsBlur and Feedly support Microsub. More background
capjamesg's Microsub Server
- capjamesg has developed a Microsub server using Python Flask and SQLite. The project contains both a Microsub server and a script that will let you poll all the feeds to which you are subscribed. The server is not open for registrations but the code is open-sourced for anyone to use on GitHub.
IndieWeb Examples
- Aaron Parecki uses Aperture as his Microsub server, and the Together and IndiePass clients.
- Eddie Hinkle uses a self-hosted Aperture as his Microsub server, and the Indigenous for iOS (mobile) and Monocle (on computer) clients.
- Marty McGuire uses an identical setup since 2018-03-05.
- Kristof De Jaeger uses the built-in Microsub server of the Drupal Indieweb module and the IndiePass for Android (mobile) and Monocle (on computer) clients
- Neil Mather uses an account on Aaron Parecki's Aperture instance and the IndiePass for Android (mobile) and Monocle (on computer) clients since 2018-09-07
- Peter Stuifzand uses Monocle, IndiePass, Together and Ekster Reader with his own microsub-server, Ekster.
- capjamesg uses Monocle and his own custom-built Microsub server.
- Ton Zijlstra uses Yarns_Microsub_Server in a separate WordPress instance from his own WordPress blog, and a self built Microsub client that can post to his blog.
- Add yourself here⦠(see this for more details)
In Progress
- Sven Knebel is building a bridge from Inoreader β―to Microsub (not ready yet, sorry!)
- Jack Jamieson is building a WordPress plugin called Yarns Microsub Server. Source on Github
- Sebastiaan Andeweg is working on a project codenamed Leesmap, as described on this post on Seblog.nl
- Jacky AlcinΓ© is working on a Microsub client + server called Lwa
- capjamesg is actively developing a Microsub server.
IndieWebCamp Related Sessions
- London 2020: Microsub and Feeds
- The Next Wave of IndieWeb: Readers, keynote at IndieWeb Summit 2018
- Microsub: how to build servers and clients at IndieWeb Summit 2018
- Austin 2017: Audio (tangential ideas relating to microsub here)
Getting Started
To use a Microsub app, your website will need to support IndieAuth and advertise a Microsub endpoint. Starting with a plain HTML home page, the steps below will walk you through getting set up so you can log in to an IndieWeb reader app.
Setting up IndieAuth
If you have WordPress or another website that has native IndieAuth support, that is your best option. Install the IndieAuth plugin in WordPress or your CMS.
If you are not using a CMS that has native IndieAuth support, you can use the steps below to delegate all the authentication to external services so that you can use it with a static site or any other project.
- add a rel=me link to your GitHub profile
- e.g.
<a href="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/username" rel="me">username</a> on github
- e.g.
- add the following tags to delegate your IndieAuth handling to indieauth.com
<link rel="authorization_endpoint" href="https://indieauth.com/auth">
<link rel="token_endpoint" href="https://tokens.indieauth.com/token">
Setting up Microsub
- sign in to https://aperture.p3k.io/login with your domain
- after you sign in you will see a link tag displayed on your dashboard
- add the <link> tag it generates for you to your web page
- e.g.
<link rel="microsub" href="https://aperture.p3k.io/microsub/000">
- e.g.
- sign in to an IndieWeb reader!
Libraries
Brainstorming
See Microsub-spec#Brainstorming
See Also
- Microsub-spec
- Micropub
- IndieAuth
- obtaining-an-access-token
- token-endpoint
- access_token
- https://tantek.com/presentations/2005/01/attentionxml.html
- https://web.archive.org/web/20051228094539/developers.technorati.com/wiki/attentionxml
- Microsub bridge
- 2018-04-20 Aaron Parecki on GoDaddy blog: An IndieWeb reader: My new home on the internet
- The Next Wave of IndieWeb: Readers was a keynote talk at IWS 2018
- Microsub session at IWS 2018
- IndieAlgorithm session at IWS 2018
- Adding feeds from an OPML file to a Microsub server
- "Features I Want In My Social Reader" by Jamie Tanna