A man labeled RSS Advisory Board checks out a girl labeled New Features while his girlfriend labeled Roadmap stares daggers at him.

There has been recent discussion about the roadmap that was added to the RSS 2.0 specification in August 2002 announcing that there would be no new additions to RSS, freezing its set of elements and attributes forever and ever amen. The roadmap stated, "We anticipate possible 2.0.2 or 2.0.3 versions, etc. only for the purpose of clarifying the specification, not for adding new features to the format."

The RSS Advisory Board was formed 20 years ago to publish the specification and "make minor changes to the spec per the roadmap," as stated in the launch announcement on July 18, 2003.

If you're wondering whether the board has followed the roadmap, this timeline of RSS elements answers that question. There are 44 elements in RSS. This table shows when each element was introduced, the group that added it, and the version in which it first appeared.

There were 33 elements added to RSS by Netscape in 1999 and 11 by UserLand from 2000 to 2002. No elements have been added by the RSS Advisory Board.

Element Date Added Publisher Version
channel 03/1999 Netscape RSS 0.90
channel-description 03/1999 Netscape RSS 0.90
channel-link 03/1999 Netscape RSS 0.90
channel-title 03/1999 Netscape RSS 0.90
channel-image 03/1999 Netscape RSS 0.90
channel-image-link 03/1999 Netscape RSS 0.90
channel-image-title 03/1999 Netscape RSS 0.90
channel-image-url 03/1999 Netscape RSS 0.90
channel-textInput 03/1999 Netscape RSS 0.90
channel-textInput-description 03/1999 Netscape RSS 0.90
channel-textInput-link 03/1999 Netscape RSS 0.90
channel-textInput-name 03/1999 Netscape RSS 0.90
channel-textInput-title 03/1999 Netscape RSS 0.90
channel-item 03/1999 Netscape RSS 0.90
channel-item-link 03/1999 Netscape RSS 0.90
channel-item-title 03/1999 Netscape RSS 0.90
rss 07/1999 Netscape RSS 0.91
channel-copyright 07/1999 Netscape RSS 0.91
channel-docs 07/1999 Netscape RSS 0.91
channel-image-description 07/1999 Netscape RSS 0.91
channel-image-height 07/1999 Netscape RSS 0.91
channel-image-width 07/1999 Netscape RSS 0.91
channel-language 07/1999 Netscape RSS 0.91
channel-lastBuildDate 07/1999 Netscape RSS 0.91
channel-managingEditor 07/1999 Netscape RSS 0.91
channel-pubDate 07/1999 Netscape RSS 0.91
channel-rating 07/1999 Netscape RSS 0.91
channel-skipDays 07/1999 Netscape RSS 0.91
channel-skipDays-day 07/1999 Netscape RSS 0.91
channel-skipHours 07/1999 Netscape RSS 0.91
channel-skipHours-hour 07/1999 Netscape RSS 0.91
channel-webMaster 07/1999 Netscape RSS 0.91
channel-item-description 07/1999 Netscape RSS 0.91
channel-cloud 12/2000 UserLand RSS 0.92
channel-item-category 12/2000 UserLand RSS 0.92
channel-item-enclosure 12/2000 UserLand RSS 0.92
channel-item-source 12/2000 UserLand RSS 0.92
channel-category 08/2002 UserLand RSS 2.0
channel-generator 08/2002 UserLand RSS 2.0
channel-ttl 08/2002 UserLand RSS 2.0
channel-item-author 08/2002 UserLand RSS 2.0
channel-item-comments 08/2002 UserLand RSS 2.0
channel-item-guid 08/2002 UserLand RSS 2.0
channel-item-pubdate 08/2002 UserLand RSS 2.0

A few judgment calls had to be made compiling this list. The image and textInput elements were originally placed under the top-level element of the feed, but that is counted as their introduction even though they later moved inside channel. The rss element wasn't in the first version of RSS created by Netscape. Instead the top-level element was rdf:RDF until it was changed by Netscape to rss four months later.

A stack of stickers with the Micro.blog logo and an envelope with an address of Micro.blog, P.O. Box 202831, Austin, TX 78720

An effort is underway to examine how feed publishers and feed consumers are handling the lack of clarity in the RSS 2.0 specification about whether an item can contain more than one enclosure. The RSS Best Practices Profile recommends that a feed item should contain no more than one enclosure "for best support in the widest number of aggregators," advice worth testing against current usage.

The artisanal small-batch blogging service Micro.blog is a platform for sharing short posts like Twitter, but in a way designed to be less viral, more low key and less prone to provocation, attention seeking and clout chasing. There are no follower counts, public likes or trending topics. Founder Manton Reese explained why in his book Indie Microblogging:

Big social networks like Instagram are designed to amplify accounts that gain traction, whether they are fake or not.

Micro.blog limits search and avoids public likes and reposts so that the snowball starts small and stays small. Instead of going viral and becoming a major problem, fake accounts can be spotted early and shut down if necessary.

Since being funded by a Kickstarter campaign in 2017 that hit its goal in one day, Micro.blog has attracted a dedicated following. One of the options available to premium subscribers is to host a podcast. An audio button appears below the post editing window to choose a media file.

Screen capture of the editing window in Micro.blog with an arrow pointing to the button to add a podcast file to the post.
Choosing a podcast file to add to a post

Micro.blog sites have a primary RSS feed and a separate podcast feed. The latter contains enclosure elements. Because the Micro.blog editing window does not allow more than one podcast to be added to a post, the RSS item for a post contains only one enclosure:

<item>
  <title>RSS Enclosure Test</title>
  <link>https://rcade.micro.blog/2023/07/02/rss-enclosure-test.html</link>
  <pubDate>Sun, 02 Jul 2023 21:39:52 -0400</pubDate>
  <guid isPermaLink="true">https://rcade.micro.blog/2023/07/02/rss-enclosure-test.html</guid>
  <description><p>I’m trying out Micro.blog’s support for podcasting to see how it handles enclosures in RSS feeds. This MP3 was released by David Byrne under Creative Commons Sampling Plus:</p> <p><a href="https://creativecommons.org/licenses/sampling+/1.0/.">creativecommons.org/licenses/…</a></p> <audio controls="controls" src="https://cdn.uploads.micro.blog/67258/2023/my-fair-lady-david-byrne.mp3" preload="metadata"> </description>
  <itunes:subtitle><p>I’m trying out Micro.blog’s support for podcasting to see how it handles enclosures in RSS feeds. This MP3 was released by David Byrne under Creative Commons Sampling Plus:</p> <p><a href="https://creativecommons.org/licenses/sampling+/1.0/.">creativecommons.org/licenses/…</a></p> <audio controls="controls" src="https://cdn.uploads.micro.blog/67258/2023/my-fair-lady-david-byrne.mp3" preload="metadata"> </itunes:subtitle>
  <itunes:summary><p>I’m trying out Micro.blog’s support for podcasting to see how it handles enclosures in RSS feeds. This MP3 was released by David Byrne under Creative Commons Sampling Plus:</p> <p><a href="https://creativecommons.org/licenses/sampling+/1.0/.">creativecommons.org/licenses/…</a></p> <audio controls="controls" src="https://cdn.uploads.micro.blog/67258/2023/my-fair-lady-david-byrne.mp3" preload="metadata"> </itunes:summary>
  <enclosure url="https://rcade.micro.blog/uploads/2023/my-fair-lady-david-byrne.mp3" type="audio/mpeg" length="3394751"/>   <itunes:duration>212</itunes:duration>
</item>

Micro.blog's commitment to being small extends to podcasts, where its Wavelength app for iPhone can be used to record, edit and publish a short-form podcast.

Atom feed format logo

This month marks the 20th anniversary of the effort that became the Atom feed format. It all began on June 16, 2003, with a blog post from Apache Software Foundation contributor Sam Ruby asking for feedback about what constitutes a well-formed blog entry.

The development of RSS 2.0 had been an unplanned hopscotch from a small group at Netscape to a smaller one at UserLand Software, but Atom was a barn raising. Hundreds of software developers, web publishers and technologists gathered for a discussion in the abstract that led to a concrete effort to build a well-specified syndication format and associated publishing API that could become Internet standards. Work was done on a project wiki that grew to over 1,500 pages. Everything was up for a vote, including a plebiscite on choosing a name that ballooned into a four-month-long bike shed discussion in which Pie, Echo, Wingnut, Feedcast, Phaistos and several dozen alternatives finally, mercifully, miraculously lost out to Atom.

The road map of the Atom wiki lists the people, companies and projects that jumped at the chance to create a new format for feeds. XML specification co-author Tim Bray wrote:

The time to write it all down and standardize it is not when you're first struggling to invent the technology. We now have aggregators and publishing systems and search engines and you-name-it, and I think the community collectively understands pretty well what you need, what you don't need, and what a good syntax looks like.

So, now's the time.

As someone whose only contribution to the project was voting on names, I think I was too quick to rule out Phaistos, a suggestion inspired by a clay disc produced by movable type before 1600 B.C. Comments on the wiki page proposing that monicker offer a sample of the name wars:

MikeBlumenthal: Does one of the great mysteries of antiquity, a document which, after almost 100 years of trying, is still a mystery not only as to its meaning but even as to its purpose, and which stands as a paragon of impenetrability, really fit as a name for an interoperability format?

Jayseae: Actually, the current state of RSS is pretty much a mystery -- why should this project be any different? I like the association with publishing -- though I'm not sure the pronunciation really flows. Perhaps it could be shortened somehow?

AsbjornUlsberg: Sorry, but I don't like it. We could just as gladly give the project any other Greek-sounding name, like Papadopolous.

Arising from all the chaos and debate, the Atom format became a beautifully specified IETF standard in 2005 edited by Mark Nottingham and Robert Sayre that's used today in millions of feeds. It is the most popular syndication format that's never argued about.

Everybody got that out of their system on the wiki.

The SimplePie logo

If you need to load an RSS feed with the PHP programming language, the open source library SimplePie greatly simplifies the process of pulling in items from a feed to present on a website, store in a database or do something else coooool with the data. There's a full installation guide for SimplePie but you can skip it with just three steps:

  1. Download SimplePie 1.5.
  2. Copy the file autoloader.php and the folder library to a folder that's accessible from your PHP code.
  3. Make note of this folder; you'll be using require_once() to load autoloader.php from that location.

SimplePie has been designed to work the same regardless a feed's format. It supports RSS 2.0, RSS 1.0, Atom and the earlier versions of RSS. Additionally it can read feed elements from nine namespaces.

Here's PHP code that loads feed items from the news site Techdirt and displays them in HTML:

// load the SimplePie library
require_once('/var/www/libraries/simplepie-1.5/autoloader.php');

// load the feed
$feed = new SimplePie();
$feed->set_feed_url('https://www.techdirt.com/feed/');
$feed->init();
$feed->handle_content_type();

// create the output
$html_output = '';
foreach ($feed->get_items() as $item) {
  $html_output .= '<p><a href="' . $item->get_link() . '">' . $item->get_title() . '</a></p>';
  $html_output .= $item->get_description();
  $html_output .= '<p>By ' . $item->get_author(0)->get_name() . ', ' . $item->get_date();
}

// display the output
ECHO <<<END
$html_output
END;

The API documentation for SimplePie_Item lists the functions that can extract data from each feed item. The versatility of the library is demonstrated by get_authors(), which can retrieve an item's authorship information whether it was in the RSS author element, Dublin Core creator, iTunes author, or Atom author.

SimplePie supports caching so that a feed isn't downloaded every time code is executed. The addition of these lines turns on caching, specifies the location of a cache folder and sets the time to use a cached version to four hours (14,400 seconds):

$feed->set_cache_location('/var/www/cache/');
$feed->set_cache_duration(14400);
$feed->enable_cache();

SimplePie was created by RSS Advisory Board member Ryan Parman, Geoffrey Sneddon and Ryan McCue. The project is currently maintained on GitHub by Malcom Blaney.

A cartoon of a Mastodon holding a smart phone and winking

The distributed social network Mastodon has grown to 12.8 million user accounts, supporting itself through user donations and a lot of effort by the volunteers running servers. There's no CEO changing the network at whim, no ads and no algorithms that manipulate what you see to increase engagement. Just a scroll of posts by the people you follow pulled from all over the world.

Every Mastodon account has an RSS feed that can be found by going to the user's Mastodon page and adding ".rss" to the URL of that page. For example, the RSS feed for Bonaventure Software is at this address:

https://mastodon.online/@bonaventuresoft.rss

The feeds are valid RSS and use the Media-RSS and Webfeeds namespaces.

The Media-RSS content element contains the photo, audio or video included in the Mastodon post, if one is present:

<media:content url="https://files.mastodon.online/media_attachments/files/109/326/769/636/254/303/original/552ebb9fd3f30171.png" type="image/png" fileSize="49052" medium="image">
  <media:rating scheme="urn:simple">nonadult</media:rating>
  <media:description type="plain">Eli Lilly & Co stock performance graph over the last month, showing lower valuations than the one caused by the bogus announcement of free insulin.</media:description>
</media:content>

The Webfeeds icon element holds the URL of the user's avatar:

<webfeeds:icon>https://files.mastodon.online/accounts/avatars/109/298/336/948/075/673/original/e76dfce4df4bef76.gif</webfeeds:icon>

One potential improvement to the feed would be to add a link element from the Atom namespace to identify the URL of the RSS feed, as in this example:

<atom:link href="https://mastodon.online/@bonaventuresoft.rss" rel="self" type="application/rss+xml" />

That might not happen anytime soon. Mastodon is a frenetic open source project with 61 open issues and suggestions involving RSS.

Popular Pages on This Site