---
layout: post
title:  Really 'Sweet' Syndication
---

People on the internet write a lot of stuff. How do you keep up with it... <b class="hilite">securely</b>?

I don't want to be creating an account or share my email address to whichever site I visit.

## Enter [RSS](https://en.wikipedia.org/wiki/RSS)

Short for <b class="hilite">Really Simple Syndication</b>, it is a specification to share your blog or podcast or whatever so that others can subscribe to it anonymously. The subscribers will be updated whenever a new article is published without the publisher (the blog writer, or podcast creator) having to store and spam everyone's inboxes.

## How does it work?

It really does live up to its name. Along with your website, you publish an `XML` document that contains the metadata about your website. This document is typically hosted at `site-name/feed.xml`.

For example, consider the below XML for a blog named <b class="hilite">The Coffee Blog</b>.

```xml
<rss>
  <channel>
    <title>The Coffee Blog</title>
    <link>https://thecoffeeblog.com</link>
    <description>All about coffee</description>
    <language>en-us</language>
    <item>
      <title>How to brew coffee</title>
      <link>https://thecoffeeblog.com/how-to-brew-coffee</link>
      <description>Learn how to brew the perfect cup of coffee.</description>
      <pubDate>Mon, 10 Jun 2025 12:00:00 GMT</pubDate>
      <guid isPermaLink="false">12345</guid>
    </item>
    <item>
      <title>Best coffee beans</title>
      <link>https://thecoffeeblog.com/best-coffee-beans</link>
      <description>Discover the best coffee beans for your taste.</description>
      <pubDate>Tue, 11 Jun 2025 12:00:00 GMT</pubDate>
      <guid isPermaLink="false">12346</guid>

    <!-- More items can be added here as and when new blog posts are ready-->
  </channel>
</rss>
```

There is bunch of metadata about the website itself followed by a list of `<item>` elements. Each `<item>` represents a blog post or an article. The `<title>`, `<link>`, `<description>`, `<pubDate>`, and `<guid>` elements provide information about the article.

The subscribers can now use a software that downloads this file periodically (lets say every 5 minutes) and checks for new `<item>` elements. If there are new items, it can notify the user about the new articles. Note how there is a `<link>` element in each `<item>`. This is a convenient way for the subscriber to discover new content once it is available.

<b>You</b> are the <b class="hilite">Subscriber</b>. The software that does this download-and-compare operation is called a <b class="hilite">RSS Reader</b>. The document is called an <b class="hilite">RSS Feed</b> and the process of sharing articles this way is called <b class="hilite">Syndication</b>. The blog poster only updates this file everytime a new post is created. All subscribers eventually get notified about the new post.

Some popular RSS readers are [Feedly](https://feedly.com/), [Inoreader](https://www.inoreader.com/), and [The Old Reader](https://theoldreader.com/). These are paid services that allow you to subscribe to multiple RSS feeds and read them in one place. There are also free and open-source alternatives like [Tiny Tiny RSS](https://tt-rss.org/) that you can self-host.

If you know how to program, you can write your own RSS reader, it is not that hard.
