cri.dev about posts rss

My impractical RSS reader in Google Sheets

Published on
Tagged with rss6 google4 sheets3

While exploring how to build an RSS reader, I stumbled across the idea of using Google Sheets to display RSS feed content.

Just for fun, I decided to give it a shot and see how far I could get.

I am using Miniflux daily, but I am also having some fun coding up a stupid RSS reader on my own.

I found the idea of creating an ‘impractical’ RSS reader in Google Sheets intriguing, so I decided to give it a shot.

You know, using “No-code” aka Spreadsheets.

Keep reading to find out how I did it, and what I learnt along the way.

sheets rss feed

Creating Your Impractical RSS Reader

Create a new Google Sheet.

In the A1 cell enter the following:

=QUERY({QUERY(IMPORTFEED("https://cri.dev/rss.xml"), "select Col1, Col3, Col4")}, "select *")

You’ll be presented with the latest blog posts from my RSS feed, with the title, the URL and content of the post.

I think it’s super cool.

PS: To add multiple feeds and combine them, you can use the following:

=QUERY({QUERY(IMPORTFEED("https://cri.dev/rss.xml"), "select Col1, Col3, Col4"); QUERY(IMPORTFEED("https://hnrss.org/frontpage"), "select Col1, Col3, Col5")}, "select *")

Challenges and Solutions

Learnt along the way, you can combine multiple “data ranges” using the {} union operator.

That’s essentially the trick to combine multiple ranges of data.

Tried to mess around with filters, but they don’t seem to play weel alongside a QUERY function.

Don’t know exactly how to work that issue out.

Also I tried to implement the concept of “article read” using checkboxes.

But of course, once the feed updates and new content updates/overwrites the view, the data is all out of order.

So I guess that’s a no-go.

Another idea was to calculate the reading time, and then sort the feed entries by that column.

If you find out how to do it, please do let me know, even though of course I won’t be using this method to read my RSS feeds 😅.

Here, have a slice of pizza 🍕