"Mo"

An Ode to RSS

Published on

An Ode to RSS

Authors

RSS - Really Simple Syndication. It’s been a staple of my learning since the early 2000s, even before Google Reader. I was an early user of RSS Bandit before I moved to Google Reader. After Google Reader was shut down, I moved to Feedly and then, recently, to Newsblur. For most of the last 10 years, I’ve been a user of Reeder. I love RSS.

Building RSS feeds is easy. This is literally the code that is generating my RSS feed:

import { escape } from '@/lib/utils/htmlEscaper'

import siteMetadata from '@/data/siteMetadata'
import { PostFrontMatter } from 'types/PostFrontMatter'

const generateRssItem = (post: PostFrontMatter) => `
  <item>
    <guid>${siteMetadata.siteUrl}/blog/${post.slug}</guid>
    <title>${escape(post.title)}</title>
    <link>${siteMetadata.siteUrl}/blog/${post.slug}</link>
    ${post.summary && `<description>${escape(post.summary)}</description>`}
    <pubDate>${new Date(post.date).toUTCString()}</pubDate>
    <author>${siteMetadata.email} (${siteMetadata.author})</author>
    ${post.tags && post.tags.map((t) => `<category>${t}</category>`).join('')}
  </item>
`

const generateRss = (posts: PostFrontMatter[], page = 'feed.xml') => `
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
      <title>${escape(siteMetadata.title)}</title>
      <link>${siteMetadata.siteUrl}/blog</link>
      <description>${escape(siteMetadata.description)}</description>
      <language>${siteMetadata.language}</language>
      <managingEditor>${siteMetadata.email} (${siteMetadata.author})</managingEditor>
      <webMaster>${siteMetadata.email} (${siteMetadata.author})</webMaster>
      <lastBuildDate>${new Date(posts[0].date).toUTCString()}</lastBuildDate>
      <atom:link href="${siteMetadata.siteUrl}/${page}" rel="self" type="application/rss+xml"/>
      ${posts.map(generateRssItem).join('')}
    </channel>
  </rss>
`
export default generateRss

(via https://github.com/timlrx/tailwind-nextjs-starter-blog/blob/typescript/lib/generate-rss.ts)

It’s short enough to fit on a single page. If you use static site generation, it doesn’t cost you any more CPU cycles than it does to serve a static file. And then RSS clients can just HTTP GET that endpoint on a schedule to check for new feeds. That’s pretty much all there is to RSS.

…and yet… it seems that the only time I hear any talk about RSS is when someone is reminiscing about it.

Billy Wilcosky wrote about how he missed RSS last year - his observations match mine almost exactly. See the corresponding thread on Hacker News. One person observed that, when they checked their Feedly account, this is what they observed:

Turns out, most of the blogs I subscribed to back in the day are now defunct or not updated much. I think that’s why I eventually stopped going to my Feedly for RSS aggregation, and instead for the few moments a day I want to read news/waste time, I just go directly to The Verge, Hacker News, and/or Reddit.

That’s similar to my experiences. I think what happened is, RSS and blogs used to serve the same purpose as what we get from social media now. In the early 2000s, we blogged about everything. All of the random stuff that people tweet about? It would go on their blog. All of my old, entirely random blog posts are still up if you want to know what it was like.

All that being said, there is still an immense amount of value from RSS. I like that I can get news and posts from multiple sites all in one place. Social media’s signal-to-noise ratio is awful in most cases. With RSS feeds, you build your list. The biggest problem is finding quality feeds. Fortunately, there are still multiple RSS feeds for places like Hacker News and most blogs still have an RSS feed… it is just hidden in the HTML head behind something like this:

<link rel="alternate" type="application/rss+xml" href="/feed.xml" />

I’ve found that, with a good RSS reader like Reeder, I can fly through a list of 100-200 feeds. If I see a good one, I can shoot it over to a read later service or, more likely for me, leave it unread for later. With a cloud service like Newsblur or Feedly, I can catch up on my phone or laptop or wherever I am.

One thing that surprisingly has increased more in usage is email newsletters. There are some outstanding ones out there - Cooper Press newsletters being a prime example. Services like Newsblur and other SaaS RSS services have support for converting newsletters into RSS feeds so you can still get your newsletter content in one place.

Lately, I’ve been reading of people who are more interested in decentralized services… might I suggest the humble RSS feed?