About rss.expert
rss.expert is a set of tools for finding, checking and repairing web feeds. You paste a URL; it fetches that URL and tells you exactly what it found. There is nothing to sign up for, nothing is stored about you, and no answer on this site is generated by a language model.
What you can do here
Inspect
-
Find every feed a website publishes, then verify each one by fetching it.
- You give it
- A website URL
- You get back
- Classified, verified feeds plus related resources
-
Run a deterministic battery of checks over a feed and score its health.
- You give it
- A feed URL
- You get back
- A 0–100 score, a verdict, and every finding with evidence
-
Test whether a feed supports conditional GET, so readers can poll it cheaply.
- You give it
- A feed URL
- You get back
- ETag, Last-Modified, 304 and compression behaviour, measured live
-
See whether a feed advertises a working hub for real-time delivery.
- You give it
- A feed URL
- You get back
- Hub and self-link findings, with the hub probed but never subscribed to
Build & convert
-
Get the feed address for a YouTube, Reddit, GitHub or Mastodon page.
- You give it
- A profile, channel or repository URL
- You get back
- The feed URL, fetched and parsed before it is shown
-
Turn a website into an OPML file your reader can import.
- You give it
- A website or feed URL
- You get back
- An OPML 2.0 subscription list, generated on the spot
How it works
Everything is verified, never assumed
A feed address that a site advertises, or that a naming convention suggests, is only a candidate. Every candidate is fetched and parsed before it is reported as a feed. This matters more than it sounds: several large services answer HTTP 200 with an ordinary HTML page at feed-shaped addresses, so a tool that trusts the status code alone will tell you a feed exists when none does.
Findings are deterministic
Given the same bytes, every tool here produces the same result. Checks are ordered, and when something fails its dependent checks are recorded as skipped rather than failed, so one root cause is never counted several times. No result is a guess, an estimate dressed up as a fact, or model output.
Problems are located, not just named
"Failed to parse" tells a publisher nothing. When a feed is malformed, rss.expert re-parses it to report the line, column and byte offset of the fault, the surrounding text, and what to change — for example a raw line break inside a JSON string, which is invalid and is exactly what a generator produces when it interpolates post content without escaping it.
One hardened client does all the fetching
Every outbound request goes through a single client with an SSRF guard that re-validates every resolved IP address at connect time, so a hostname cannot be pointed at a private or internal address between resolution and dial. Redirects are re-checked at each hop, no credentials or cookies are ever forwarded, and response size, header size and timeouts are all bounded.
What is stored
No accounts, no login, no saved collections, no analytics, no third-party assets of any kind — the page you are reading loads nothing from any other host. A cookie is set for one purpose only: a CSRF token so form submissions cannot be forged. What is retained is the feeds and reports themselves, which are about the sites inspected, not about you.
OPML export exists for the same reason: it hands your feeds to whatever reader you prefer. The file is generated from a live run and never stored, so it creates no account and no collection.
What it deliberately does not do
Being clear about the edges is part of being trustworthy, so these are choices rather than gaps:
- It does not crawl a site beyond its homepage and the sitemaps that site declares.
- It does not run JavaScript or drive a headless browser, so a feed that only exists after client-side rendering will not be found.
- It does not bypass anti-bot or challenge pages. It detects them and reports them — including the case where a feed is served to browsers but refused to every feed reader, which is invisible from a browser and is a fast-growing cause of feeds that quietly die.
- It is not a formal schema validator. Checks are pragmatic and cite what they are based on.
- It does not test feeds inside real reader applications; compatibility is an estimate and is labelled as one.
- It does not download whole media files — enclosures are probed, not fetched.
- It uses no AI or machine learning anywhere.
Colophon
A single Go binary with server-rendered HTML and PostgreSQL for storage and for the job queue. Templates, styles and migrations are compiled into the binary, so the running image carries nothing else. The interface is styled after the desktop web of the late nineties, which suits a tool that is all text, all documents, and all links.
developed by pmurad, 2020–2026.