RSS 3.0

With Aaron Swartz gone for over a year, I decided to keep a copy of his RSS 3.0 spec. I think it’s important to remember that it was probably all an elaborate prank, but I still loved it. – AlexSchroeder

In his Introduction, Aaron wrote about the changes he was introducing:

  1. Remove XML. XML is just too complicated and is against the spirit of RSS, which is Really Simple Syndication. I don’t want people to have to buy one of these 200 page XML books to understand RSS. And XML sucks up bandwidth like nobody’s business. Instead, we’ll go back to RFC 822-style fields. There are lots of available parsers for those.
  2. Remove namespaces. Namespaces are just a waste of time. If people want to add an element to RSS, then just send it to me and I’ll add it to my list of all elements in use. This system is easy to use and doesn’t result in any wasteful URIs all over the place.
  3. HTML forbidden. No one needs HTML. Email has been just fine for years before Microsoft introduce their stupid rich HTML extensions. HTML is for those loser newbies. Any intelligent Internet user deals in plain text.


An item consists of a series of lines separated by “\n”.

Each line is a series of letters, numbers, “-”, “.” or “_” (called the name) followed by “: “ followed by a series of characters (called the value). No two lines should start with the same name. If a line starts with a space or tab character, then it is a continuation of the value on the previous line. The newline in between is preserved. UTF-8 encoding is always used.

An item ends at the first blank line (that is, a line with no characters).


An RSS 3.0 document consists of one head item followed by zero or more body items.


The head is an item. Names for the lines are globally assigned. Names are case-insensitive. The assigned names are:

Most properties refer to the whole feed in adddition to the item. i.e. last-modified is the last-modified date of the feed.


The body is a series of zero or more items. Names for the lines are globally-assigned and case-insensitive. The assigned names are:


The title of the item.
A short description of the item.
A link to the item.
The person or program that generated the item.
An email address, optionally followed by a space and a name, of the person to send error reports about the feed to.
An email address, optionally followed by a space and a name, of the person who created the item.
The date (in W3CDTF format) the item was created.
The date (in W3CDTF format) the item was modified.
The language of the item, using the language tag format specified in RFC 3066.
The copyright statement for the item.
A URI for the copyright license of the item.
A globally unique identifier for the item.
A globally unique identifier in the form of a URI for the item.
The topic of the item.


title: RSS 3.0 News
description: Latest updates on RSS 3.0.
creator: Aaron Swartz
errorsTo: Aaron Swartz
language: en-US

title: Spec Introduced
created: 2002-09-06
guid: 00795648-C1E0-11D6-9AA6-003065F376B6
 The spec was introduced to the world.
 A few people noticed.

Title: Zooko Likes It
Created: 2002-09-06
GUID: 0894CB2F-C1E0-11D6-9649-003065F376B6
Description: Zooko says he likes the spec.