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 <head> 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.comto a feed reader - the feed reader scans
<head>and can’t find any feeds - the feed reader then makes educated guesses to find feeds, e.g.,
/feed/rssrss.xml/atom- and so on
Contrast that with:
- the user provides a website
https://example.comto a feed reader - the feed reader reads
https://example.com/.well-known/feed-menu.jsonand 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.


