Sharing the RSS Feeds I Follow
Inspired by Axel Leroy’s feeds page, I have published the list of feeds that I follow as a Blog Ring. Though it isn’t quite the same as webrings of old, it is in the same spirit. Sharing my feeds is especially important given how the quality of search is terrible and getting worse. Each of the feeds I follow are all sites that I’ve added since I started using RSS back around the time Google Reader started.
I have, of course, changed what feeds I follow drastically over nearly twenty years. Feeds have come and gone, sites no longer exist, but RSS still persists. Most of the sites that I follow still publish at least once a year. And while there are a few that haven’t posted in years, I keep those around just in case the authors ever decide they want to write again. I know I have large gaps between posts, and that’s totally fine! A thing I appreciate most about RSS is the overall slowness of it. As I’ve grown older, I find myself wanting to slow down more, take time to read more carefully, enjoy what I’m doing. When I was younger I always wanted to read more, do more, etc. Unlike social media, my RSS feed is lovely and slow. It moves at the pace I want to move at.
My typical habit for reading feeds is to open up NetNewsWire on my iPad in the evenings, scroll through the most recent unread posts and mark any posts I’m not interested in as read. Once I’ve got the articles down to what I want to read, I’ll pick one and start reading. That’s it, nice and simple. Now most of the Feeds I follow are low volume but there are a few—The Verge for instance—which are very high volume. In addition to marking posts as read in my nightly routine, high volume sites like The Verge get additional filtering before the ever make it to me. I use Feedbin to gather all my Feeds; Feedbin has Actions which let me filter out content I’d rather not see for whatever reason. And while I don’t have many filters, the ones I do have in place have been a huge help.
How I Implemented the Blog Ring
Feedbin has an option to export OPML of your feeds, but it does not have that option as part of the API. Instead, the API provides a list of subscriptions as well as an API to get a list of tags. The first step was to download both my list of subscriptions and taggings to get a feel for what the JSON looked like. Hugo can build pages using a data source like JSON, but the two JSON objects were not in a great format to make templating with Hugo easy.
Instead, I built a small script two pull the JSON objects and then used a complicated jq query to combine the two together into a more usable data structure. And by complicated, I mean complicated, it took me quite a while of searching and finding examples on Stack Overflow and elsewhere to come up with this:
jq -s '[
JOIN(
INDEX(.[0][]; .feed_id);
.[1][];
.feed_id | tostring; # To get the join on feed_id, it must be a string
{
"title": .[1].title,
"site_url": .[1].site_url,
"feed_url": .[1].feed_url,
"tag_name": .[0].name,
"created_at": .[1].created_at
}
)
]
| [group_by(.tag_name)[]
| { (.[0].tag_name): [ .[] | del(.tag_name) ] }]
| add
| del(.Newsletters)
| del(.Updates)
| del(.Other)' $subscriptions $taggings > $blogring
You can ignore all the del calls, they simply remove a few Feedbin sections that either won’t work because they’re not RSS (Newsletters) or they’re boring product updates for software I use at work. Anyway, at the end of that JQ query, I have a JSON object that looks like:
{
"Cloud": [
{
"title": "A Blog about the Cloud",
"site_url": "https://acloud-blog.example/",
"feed_url": "https://acloud-blog.example/rss/",
"created_at": "2023-06-20T15:13:13.576127Z"
}
],
"Personal Blogs": [
{
"title": "Someone's Blog",
"site_url": "https://someonesblog.example",
"feed_url": "https://someonesblog.example/feed.xml",
"created_at": "2025-01-20T00:06:46.488165Z"
}
]
}
The final structure is much easier to parse and turn into the Blog Ring page you see.
A Call to Action
I want to end this post with a call to action. If you’re still using RSS, consider sharing the feeds you follow! While it can feel like RSS isn’t used anymore, I haven’t found that to be true. Some of the most interesting posts I read these days have come from the people whose feeds I follow. I’d love to see what you’re reading too.