{
  "$type": "site.standard.document",
  "description": "Remove the guesswork from feed discovery.",
  "path": "/2026-05-04-moving-feed-discovery-to-well-known/",
  "publishedAt": "2026-05-04T13:51:46.776Z",
  "site": "at://did:plc:ex23caczr45rodrfcxrwps6h/site.standard.publication/self",
  "tags": [
    "rss"
  ],
  "textContent": "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.\n\nThere'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:\n\nthe user provides a website https://example.com to a feed reader\n\nthe feed reader scans <head> and can't find any feeds\n\nthe feed reader then makes educated guesses to find feeds, e.g.,\n/feed\n\n/rss\n\nrss.xml\n\n/atom\n\nand so on\n\nContrast that with:\n\nthe user provides a website https://example.com to a feed reader\n\nthe feed reader reads https://example.com/.well-known/feed-menu.json and immediately has a full rundown of the feeds the site offers\n\nThe benefits are clear.\n\nWhat I Would Change About Feed Menu\n\nThe 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.\n\nI'd also expand each object in feeds so that it is explicit about title, URL, format, version, and media type.\n\n{\n\"publisher\": {\n\"name\": \"Stuart Breckenridge\",\n\"url\": \"https://stuartbreckenridge.net/\",\n\"contact_url\": \"https://stuartbreckenridge.net/about\"\n},\n\"feeds\": [\n{\n\"title\": \"Stuart Breckenridge\",\n\"url\": \"https://stuartbreckenridge.net/feed.json\",\n\"format\": \"jsonfeed\",\n\"version\": \"1.1\",\n\"rel\": \"self\",\n\"media_type\": \"application/feed+json\",\n\"preferred\": true\n},\n{\n\"title\": \"Stuart Breckenridge\",\n\"url\": \"https://stuartbreckenridge.net/atom.xml\",\n\"format\": \"atom\",\n\"rel\": \"alternate\",\n\"media_type\": \"application/atom+xml\"\n},\n{\n\"title\": \"Stuart Breckenridge\",\n\"url\": \"https://stuartbreckenridge.net/rss.xml\",\n\"format\": \"rss\",\n\"version\": \"2.0\",\n\"rel\": \"alternate\",\n\"media_type\": \"application/rss+xml\"\n},\n{\n\"title\": \"Stuart Breckenridge: Links\",\n\"url\": \"https://stuartbreckenridge.net/links/feed.json\",\n\"format\": \"jsonfeed\",\n\"version\": \"1.1\",\n\"rel\": \"alternate\",\n\"media_type\": \"application/feed+json\"\n}\n]\n}\n\nA single GET to /.well-known/feeds.json would give a feed reader everything it needs.",
  "title": "Moving Feed Discovery to /.well-known"
}