RSS & Atom: The Complete Guide to Web Feed Formats
Before social media algorithms decided what you read, web feeds put users in control. RSS and Atom are XML-based formats that let websites publish a list of their latest content — articles, podcasts, videos — and let readers subscribe to exactly what they want, without noise, without tracking, without algorithmic curation. Despite repeated predictions of their death, feeds remain the backbone of podcast distribution, news aggregation, and developer content delivery.
What Is RSS?
RSS (Really Simple Syndication, though it has also been called Rich Site Summary and RDF Site Summary in earlier versions) is an XML format for web content syndication. When a site publishes an RSS feed, it creates a machine-readable XML document listing recent items with titles, descriptions, links, and publication dates.
RSS has a complex history of competing versions:
- RSS 0.90 (1999): created by Netscape for My Netscape portal, based on RDF
- RSS 0.91 (1999): simplified by Netscape, dropped RDF
- RSS 1.0 (2000): brought back RDF, modular extensions, created by an independent group
- RSS 2.0 (2002): developed by Dave Winer at UserLand, the format that won — simpler than RSS 1.0, widely adopted
RSS 2.0 is what virtually everyone means when they say "RSS" today. Its structure:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>KaijuConverter Blog</title>
<link>https://kaijuconverter.com/blog</link>
<description>File format guides and conversion tips</description>
<language>en-us</language>
<lastBuildDate>Fri, 25 Apr 2025 12:00:00 GMT</lastBuildDate>
<item>
<title>How to Convert HEIC to JPG</title>
<link>https://kaijuconverter.com/guides/heic-to-jpg</link>
<description>Complete guide to converting Apple HEIC photos...</description>
<pubDate>Thu, 24 Apr 2025 10:00:00 GMT</pubDate>
<guid>https://kaijuconverter.com/guides/heic-to-jpg</guid>
</item>
</channel>
</rss>
What Is Atom?
Atom was created in 2003 as a deliberate response to the RSS format wars — a clean-slate redesign with an IETF standards process (RFC 4287, published 2005). The Atom Syndication Format fixes several RSS 2.0 ambiguities:
- Mandatory elements: RSS 2.0 has many optional fields that feed parsers handle inconsistently; Atom requires
id,title, andupdatedfor every entry - Better date format: Atom uses RFC 3339 dates (ISO 8601 compatible) instead of RSS's inconsistently parsed RFC 822 dates
- Content types: Atom explicitly declares whether content is
text,html, orxhtml— eliminating the "is this escaped HTML or plain text?" ambiguity of RSS - Multiple authors: Atom has proper
<author>elements per entry; RSS has only one<managingEditor>per channel - Internationalization: Atom has explicit
xml:langandxml:basesupport
Atom also defined a companion standard: the Atom Publishing Protocol (AtomPub / APP), an HTTP-based API for creating and editing web content — an early precursor to modern REST APIs.
A minimal Atom feed:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>KaijuConverter Blog</title>
<link href="https://kaijuconverter.com/blog"/>
<link rel="self" href="https://kaijuconverter.com/feed.atom"/>
<updated>2025-04-25T12:00:00Z</updated>
<id>https://kaijuconverter.com/blog</id>
<entry>
<title>How to Convert HEIC to JPG</title>
<link href="https://kaijuconverter.com/guides/heic-to-jpg"/>
<id>https://kaijuconverter.com/guides/heic-to-jpg</id>
<updated>2025-04-24T10:00:00Z</updated>
<summary>Complete guide to converting Apple HEIC photos...</summary>
</entry>
</feed>
RSS vs Atom: Which Should You Use?
| Feature | RSS 2.0 | Atom 1.0 |
|---|---|---|
| Standard body | Informal (Dave Winer) | IETF RFC 4287 |
| Dates | RFC 822 (often malformed) | RFC 3339 (ISO 8601) |
| Content types | Ambiguous | Explicit text/html/xhtml |
| Required per-entry fields | None | id, title, updated |
| Multiple authors | No | Yes |
| Enclosures (podcasts) | Yes (<enclosure>) |
Yes (<link rel="enclosure">) |
| Adoption | Near-universal | Good but slightly less |
For new projects: use Atom 1.0 — it is cleaner and less ambiguous. For maximum compatibility: publish both (many platforms do). For podcasts: RSS 2.0 with Apple Podcasts extensions is the industry standard.
Podcast RSS: The Apple Extensions
Podcast feeds are RSS 2.0 with proprietary extensions developed by Apple for the iTunes/Podcasts ecosystem. The iTunes namespace (xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd") adds:
<itunes:category text="Technology"/>
<itunes:explicit>false</itunes:explicit>
<itunes:image href="https://example.com/artwork.jpg"/>
<itunes:author>Jane Doe</itunes:author>
<item>
<title>Episode 42: File Formats</title>
<enclosure url="https://example.com/ep42.mp3" length="24986579" type="audio/mpeg"/>
<itunes:duration>00:52:00</itunes:duration>
<itunes:episode>42</itunes:episode>
</item>
Every major podcast platform (Apple Podcasts, Spotify, Google Podcasts, Overcast, Pocket Casts) ingests this RSS format. The feed is the podcast — there is no podcast without an RSS feed.
Feed Readers and Aggregators
Feed readers remain a significant tool for information workers:
- Web-based: Feedly (10M+ users), Inoreader, NewsBlur, Feedbin, The Old Reader
- Desktop: NetNewsWire (macOS/iOS, free), Reeder (macOS/iOS), Vienna (macOS, free)
- Self-hosted: FreshRSS, Miniflux, Tiny Tiny RSS — full control over your data
- Developer tools: curl + xmllint for quick feed inspection; feedparser (Python) for programmatic parsing
Subscribing to and Parsing Feeds
Finding a Site's Feed
Most sites do not prominently display feed URLs, but they are usually at predictable paths:
https://site.com/feed(WordPress default)https://site.com/rss.xmlhttps://site.com/atom.xmlhttps://site.com/feed.rss
Browsers used to detect and display feeds automatically (Firefox had a built-in RSS reader through version 3). Today, browser extensions like "RSS Feed Reader" or "Feedbro" restore this discovery functionality.
In HTML, sites declare their feed with a <link> tag:
<link rel="alternate" type="application/rss+xml" title="My Blog" href="/feed.rss">
<link rel="alternate" type="application/atom+xml" title="My Blog" href="/feed.atom">
Parsing Feeds in Python
import feedparser
feed = feedparser.parse('https://kaijuconverter.com/feed.rss')
for entry in feed.entries:
print(entry.title, entry.link, entry.published)
feedparser handles RSS 0.9x, 1.0, 2.0, and Atom 1.0 transparently — you don't need to know which format you're parsing.
JSON Feed: The Modern Alternative
In 2017, Brent Simmons and Manton Reece introduced JSON Feed — the same concept as RSS/Atom but using JSON instead of XML, making it easier for developers to generate and parse:
{
"version": "https://jsonfeed.org/version/1.1",
"title": "KaijuConverter Blog",
"home_page_url": "https://kaijuconverter.com",
"feed_url": "https://kaijuconverter.com/feed.json",
"items": [
{
"id": "https://kaijuconverter.com/guides/heic-to-jpg",
"url": "https://kaijuconverter.com/guides/heic-to-jpg",
"title": "How to Convert HEIC to JPG",
"content_html": "<p>Complete guide...</p>",
"date_published": "2025-04-24T10:00:00Z"
}
]
}
JSON Feed is supported by Feedly, NetNewsWire, Reeder, and other modern feed readers, though RSS/Atom remain more widely supported.
Converting Feed Formats
RSS → Atom: Most feed server software (WordPress, Ghost, Jekyll, Hugo) can output either format. XSLT transforms can convert RSS to Atom programmatically.
RSS/Atom → JSON Feed: Libraries exist in every language; the feedparser Python library outputs a normalized dict that can be re-serialized as JSON Feed.
Feed → Podcast hosting: if you have an RSS feed of audio files, podcast hosting platforms like Buzzsprout, Libsyn, or Podbean will import it directly.
RSS and Atom are among the most durable formats on the web — they predate social media and will likely outlast it. For anyone building content-driven websites, maintaining a clean, valid feed is a low-effort high-return investment that opens your content to thousands of reader apps, aggregators, and automation pipelines.
Related conversions
Frequent conversions across the catalogue: