Syndicator Blog

RSS

RSS vs Atom vs JSON Feed, Which Feed Format Should a Site Publish

Three feed formats are still in real use. RSS 2.0, Atom and JSON Feed all do the same basic job. They hand a reader app a list of your newest posts with titles, links, dates and some content. Any decent reader handles all three. So the choice matters less than people think, but it still matters a little, and the reasons are worth knowing.

RSS 2.0

RSS is the old workhorse. The RSS 2.0 specification has been frozen since 2003, when it moved to Harvard under a Creative Commons license. Frozen sounds bad. For a feed format it's a feature: nothing you publish today will be broken by a revision next year.

It is also loose. Only three channel elements are required (title, link, description) and every item element is optional, as long as an item has a title or a description. Dates use the RFC 822 format, the one that looks like Sat, 14 Nov 2026 08:00:00 +0000. Content is usually stuffed into description as escaped HTML, which is where a lot of reader bugs come from.

WordPress and Hugo both emit RSS 2.0 by default. Of the 114 sites that Syndicator pulls in, 105 run on one or the other, so RSS 2.0 is nearly the whole list.

Atom

Atom was published by the IETF as RFC 4287 in December 2005. It was a reaction to RSS being vague. Atom is strict where RSS shrugs.

Every entry must have an id, a title and an updated timestamp. Dates are RFC 3339, so 2026-11-14T08:00:00Z, which every programming language can parse without a custom function. Content carries a type attribute (text, html or xhtml), so a reader knows whether it is looking at markup or plain text instead of guessing.

That strictness is why aggregators like it for output. Syndicator publishes its own merged stream as Atom at /feed.xml, even though everything it reads is RSS.

JSON Feed

JSON Feed came out in May 2017, written by Brent Simmons and Manton Reece. Version 1.1 followed in August 2020. It has the same idea as the other two, in JSON instead of XML.

The required fields are short: version, title and items at the top, and id plus content_html or content_text on each item. The MIME type is application/feed+json.

The pitch was that developers would rather write JSON.parse than fight XML namespaces. That's true. Generating it is easy too, since most templating setups can produce JSON. Support in readers is good now, though not quite universal in the long tail of older tools, podcast apps and automation services.

So which one

For a normal blog or news site, publish RSS 2.0. It has the widest support, your CMS already does it, and every reader, Zapier step and Slack integration on earth accepts it.

Add Atom if you care about clean dates and unambiguous content, or if you're building something that other software will consume. It costs one more template.

Add JSON Feed if your stack makes it trivial and your readers are developers. Don't make it your only feed.

Publishing two formats is fine. Advertise both with autodiscovery link tags and readers will pick one. What actually hurts is a feed that breaks: a URL that changes after a redesign, dates in a format nobody parses, or relative links in the content that point nowhere once the post leaves your site. Those problems show up in every format.

What the format does not fix

Format wars aside, the useful stuff is in the details. Absolute URLs everywhere. A stable unique ID per item that never changes, even when you edit the post. Real publish dates instead of build dates. Full content or a decent summary, not a 20 word teaser.

A site that gets those four right in RSS will beat a site that gets them wrong in Atom.