Moving Feed Discovery to /.well-known
A few weeks ago I wrote about how RSS discovery is hard. In that particular example I used the BBC, who make things notoriously difficult because they don't even surface their feeds in the element of their site. However, since writing that piece, I've been thinking about better ways for RSS readers to discover feeds, and it turns out I'm not the only one.
There's an Internet-Draft that proposes moving feed discovery to /.well-known/feed-menu.json, which I think, in principle, is a great idea. Take the following very common use case:
the user provides a website https://example.com to a feed reader
the feed reader scans and can't find any feeds
the feed reader then makes educated guesses to find feeds, e.g., /feed
/rss
rss.xml
/atom
and so on
Contrast that with:
the user provides a website https://example.com to a feed reader
the feed reader reads https://example.com/.well-known/feed-menu.json and immediately has a full rundown of the feeds the site offers
The benefits are clear.
What I Would Change About Feed Menu
The name. I think Feed Menu is not serious enough for a standard. I'd prefer something along the lines of /.well-known/syndication.json or, even simpler, just /.well-known/feeds.json.
I'd also expand each object in feeds so that it is explicit about title, URL, format, version, and media type.
{ "publisher": { "name": "Stuart Breckenridge", "url": "https://stuartbreckenridge.net/", "contact_url": "https://stuartbreckenridge.net/about" }, "feeds": [ { "title": "Stuart Breckenridge", "url": "https://stuartbreckenridge.net/feed.json", "format": "jsonfeed", "version": "1.1", "rel": "self", "media_type": "application/feed+json", "preferred": true }, { "title": "Stuart Breckenridge", "url": "https://stuartbreckenridge.net/atom.xml", "format": "atom", "rel": "alternate", "media_type": "application/atom+xml" }, { "title": "Stuart Breckenridge", "url": "https://stuartbreckenridge.net/rss.xml", "format": "rss", "version": "2.0", "rel": "alternate", "media_type": "application/rss+xml" }, { "title": "Stuart Breckenridge: Links", "url": "https://stuartbreckenridge.net/links/feed.json", "format": "jsonfeed", "version": "1.1", "rel": "alternate", "media_type": "application/feed+json" } ] }
A single GET to /.well-known/feeds.json would give a feed reader everything it needs.
Discussion in the ATmosphere