TLDR: Here is a simplified diagram of how I keep reading articles, books, and other materials without overwhelming myself or having a never-ending pile of to-read items. In this blog post, I will go into the details of each part of the workflow, the tools I currently use, the alternatives I have tried, why they work for me, and what I can improve in the process. Feel free to use the above table of contents to jump to the section that is more interesting to you.
Why
I used to visit Twitter frequently during the day, sometimes 2-3 hours each day, to find out what’s happening in the world and what cool stuff some cool people are talking about. But over time I realized I was a Twitter addict that consumes hours of trash content on the platform without any meaningful benefits. Twitter’s algorithm promotes engagement seekers and influencers over actually useful content, and it’s just been worse with Elon. I needed to spend my precious time on more useful and rewarding stuff.
I was also a content hoarder, saving anything I found mildly interesting in Pocket or in the browser bookmarks, and I rarely read anything from the pile of the saved items in my read-it-later apps. I had accumulated more than 1000 articles in my Pocket account over the years and had hundreds of bookmarks on Firefox and Chrome. This content clutter was very depressing to me, as I didn’t see myself benefiting from anything that I came across.
Lastly, the fact that I was leaving my content consumption inputs to the hands of Twitter, Google, and other algorithms or chance wasn’t appealing to me. I wanted to take over control of what I read, at what pace, and from whom.
RSS feeds & other content inputs
I have tried a few RSS feed reader apps like Feedly and Readwise Reader in the past, but I have currently settled down on using Inoreader as my RSS reader app.
Inoreader: Pros
Inoreader has many nice functionalities, but for me, the most important features are:
-
Very smooth experience between web, android, and iOS apps (I’m mentioning this first, as many other apps I’ve tried are flaky)
-
Mark as read while scrolling (Very important for quickly shortlisting items from the feed. This is probably the main reason I’ve been able to replace Inoreader with social media apps.)
-
Rules to auto-delete duplicated items or if the title contains specific words
-
Its Firefox and Chrome extensions and Android and iOS apps can easily and quickly find RSS feeds of websites
-
Subscribe to newsletters (max 20 newsletters, that’s why I don’t use this feature anymore. I use kill-the-newsletter instead)
-
Feed generators for websites that don’t have an RSS feed (the max 20 feed generations limit made me start using RSS-Bridge instead of this feature)
-
Customization of sharing options (so I’ve Pocket the first option and it allows me to quickly share an item into my Pocket account if needed)
I’ve customized Inoreader’s app to make it more pleasing to my taste:
-
Changed the feed layout to list, to get rid of the article thumbnails.
-
Sorted the lists chronologically, and “oldest first”. Firstly, I don’t want Inoreader’s algorithm to decide what is worth my attention. Second, by reading the oldest first, I make sure that nothing gets buried and forgotten at the end of the list, and also when I view an item in the list, the hype dust around it, whatever it is has settled a bit (note that I’m usually reading items from 5-6 days ago, so this is not true about any kind of hype).
-
Disabled the “popularity indicator”, to have fewer distractions and be focused on the titles.
-
Changed the content font to a serif one (just a personal preference for reading content).
Inoreader: Cons
Of course, Inoreader is not perfect:
-
They have increased the subscription price many times in the past few years. They’ve used to have a Black Friday discount for everyone for years, but they limited the offer to new users last year and it pissed off the existing users and many complained on Reddit.
-
Inoreader is a cool product, but they’ve been focusing on developing new features and capabilities for the enterprise and business customers in the past two years, and they seem to be on a path to enshitification .
I’m considering self-hosting a FreshRSS in the future and using it with FeedMe app if I could make sure it has all the features I need.
RSS feeds I follow using Inoreader
-
Blogs and websites: I started following a handful of blog feeds around 18 months ago. Over time, when I came across an interesting post from a blog or website, I added its feed to Inoreader, and the total is currently 1659 RSS feeds. I recommend you do the same, but you can get an OPML list of blog posts from HackerNews users , or reach out to me if you’re interested in my OPML list.
-
HackerNews and lobste.rs front page: Thousands of links are submitted to HackerNews every day, and you probably don’t have time to even scroll through all of them, and many of them are spam or not interesting. But thanks to the power of the community, the ~100 items that reach its front page every day are mostly interesting. The issue with its front page RSS feed is the many duplicated items in the list (I’m not sure what exactly happens when a moderator updates an item’s title, but many times I see the same item with different titles in my feed reader). Fortunately, I’ve been able to remove duplicates automatically using Inoreader’s duplication rule (I’ve set it to remove any item with the same URL within 24 hours). lobste.rs is a similar but smaller community to HackerNews.
-
Blogs or websites without an RSS feed: I use RSS-Bridge (mostly CSS Selector and XPathBridge ) to create RSS feeds for blogs and websites that don’t provide a feed (If you’re writing on the web and don’t provide an RSS feed to your readers, please consider adding one). I used to use Inoreader’s feed generator, but the Pro plan has a maximum of 20 feed generations and I quickly reached the limit. Honestly, very strange limit on Inoreader’s service.
-
Email newsletters: I use kill-the-newsletter to subscribe to email newsletters. It’s a free service that provides you a unique email address and a unique RSS feed, you subscribe to the newsletter using that email address, and whenever a new email arrives, it updates your RSS feed. Very nice. I used to use Inoreader’s newsletter feature, but the Pro plan has a max 20 newsletter subscription limit (although you can technically use the same email address in multiple newsletters). Some newsletter platforms like Substack, Ghost, and Buttondown provide an RSS feed on the newsletters’ archive page and I directly use that feed.
Where I don’t use RSS
-
News: I don’t proactively follow any news publisher, neither general news media like the New York Times, nor tech media like Verge. Anything important will be shared either on HackerNews, or it will reach me somehow via friends and colleagues.
-
YouTube: Ideally I should follow the RSS feed of the YouTube channels that I like, but I currently just browse YouTube’s home page and if something sounds interesting, I save it into the watch later playlist (or a few other playlists that I’ve created). Nothing fancy here, just a typical YouTube user (who sorts his YouTube watch later playlist on “oldest first”), so won’t go into the details of this.
-
Twitter: I deleted my Twitter account in 2021 for reasons that I mentioned at the beginning of this post. Last year I realized there are still a handful of interesting people on the platform, so I created a new Twitter account and I currently follow 60 users via a Twitter list that I’ve created. Whenever I find someone who tweets interesting and useful stuff (like @simonw or @vicki ) I add them to my list. Fortunately, Elon hasn’t destroyed Twitter’s list feature yet (although he surely will), so I can browse through the latest tweets from these people in chronological order without any ads. I do this every morning on Twitter’s web app, and if there is something very interesting to read later (an article or paper, or a GitHub repo) I use the same shortlist flow as my RSS feeds, which I explain soon. I tried Inoreader’s Twitter integration but it stopped working since Elon killed Twitter’s API access. I also tried following my list’s RSS feed using Nitter , but apparently, that’s also going to stop working soon. The experience of reading a handful of tweets in a list on Twitter’s web app is generally ok for now.
-
Podcasts: Many (or all?) podcasts have RSS feeds, and I can follow them on Inoreader, and I used to do so, but I came to the conclusion that I’m not a podcast person. The ratio of the “useful information” per “time spent” is extremely low with podcasts for me, so I’ve decided to spend my listening time on audiobooks and articles (using Text-to-Speech, more on this later), or if I’m not in the mood and I just want to entertain myself while walking or shopping for groceries, I highly prefer listening to music. Therefore, I’m following and listening to zero podcasts now.
Shortlisting
So, overall RSS feeds are the main inputs in my workflow, and as I mentioned before, I’m following 1659 RSS feeds as of today (most of them rarely post new stuff though), which means I consume between 200 to 300 items in my Inoreader feed on average every day. Consumption in this step means scrolling through the feed, which I do throughout the day when waiting for my coffee or tea to be ready, waiting in a doctor’s office, commuting via bus and metro, and any other place and time that I’d go for scrolling social media apps before.
When scrolling my RSS feed reader, if a title grabs my attention, I open the article (or the discussion, if it’s a HackerNews page for example), I quickly skim the content (or comments), if interesting, I shortlist the item by either saving it into my Pocket account or the Inoreader’s starred items. Both of these saving options are easily accessible on Inoreader’s interface.
Why bother saving in two separate places? Over time I’ve realized a few facts about myself and the types of content I consume:
-
I don’t like reading long stuff on my phone.
-
Some content requires deep reading, reviewing, highlighting, or some other activity in parallel to reading (like trying the code in a blog post that introduces a new Python library).
-
I don’t need to “read” everything, I can enjoy listening to some content.
So when I shortlist an item, if it has:
-
many visual elements that help understand the content (e.g. a photography tutorial, a how-to guide on using a Python visualization library, etc), or
-
many code snippets
I save it into Inoreader’s starred items, and I get back to these items later on my MacBook (More on this later). Otherwise, I save the item into my Pocket account, which it then gets synced with Omnivore, and I listen to these items later while doing chores at home. This part of the workflow is a bit messy, I know but I’ve experimented with various tools to create a streamlined process of saving items from feeds and listening to them on a high-quality text-to-speech service, and this is what serves me well at the moment:
-
Every item that must be listened to gets saved into Pocket. Why Pocket?
-
Firstly, because Pocket is a well-known read-it-later tool that has been integrated into many other tools, including Inoreader, so I can save items from my feed to Pocket with just one tap.
-
Second, since Pocket is integrated into many tools, and the average lifetime of the productivity and reading tools is shorter than the memory of a fish, I’m not sure if I’ll be using Omnivore, Readwise, or any other tool next year, but I’m fairly certain that Pocket will be around (please Mozilla, don’t kill it) and any new tool in this ecosystem will have some sort of Pocket integration.
-
[update 2024-10-31]: Omnivore recently [accounced](https://blog.omnivore.app/p/omnivore-is-joining-elevenlabs ) they’re shutting down the whole project, and it made me remember the above paragraph of my blog post and I was reminded that a battle tested old school tool like Pocket is more reliable than a new tool that we don’t know if it will exist in a year.
-
-
I’ve written a Python script to get the new items from Pocket and save them into Omnivore every day. The script is on Github and using a
schedule: cron
job on Github Actions and it’s running once every day.
Reading with text-to-speech
When I realized that by listening to articles I could finally transform myself from a content hoarder to a content consumer, I looked into affordable but high-quality apps that would provide this feature. I of course started with Pocket’s own TTS feature, but it’s honestly just trash. I couldn’t bear listening to Android’s cacophonous default TTS engine voices for more than 30 seconds. I then came across this tts-server-android thing that I think somehow replaces your Android phone’s TTS engine with more realistic voices (I honestly don’t how it works, and yeah, I was brave enough to install the APK file on my phone). It was ok, but still not at a level that I’d enjoy listening to. Inoreader also offers a TTS feature for its Pro users, but it’s mostly a joke as it has 200K characters per month (which approximates ~20 articles based on my unscientific measurements).
Later I found out about Readwise Reader , which was a new product in beta from the Readwise team. Readwise originally is a sync-your-highlights app, but they started working on their Reader app which is a … everything app?! It aims to be your feed reader, read-it-later, e-book reader, PDF reader, and many more. Luckily for me, its TTS feature was the best one I had tried until then, and $8/month was a price that I was fine paying for a good TTS app (Readwise Reader was using Microsoft TTS service, but they have switched to Unreal Speech recently). Readwise Reader has a nice (one-way) Pocket integration, and it gets the newly saved items from Pocket every time you open the app, no extra action is required.
After using Readwise’s semi-human-like TTS feature for a few months (with many glitchy UX behaviors of their Android app), I was introduced to Omnivore with this YouTube video . I started trying out Omnivore’s TTS, and wow! The voices were impressively high-quality and the experience was the closest to a human narrator (at 1.5x speed). Omnivore is an open-source app , and upon browsing in their codebase and issues I found out they’re using PlayHT as their TTS engine. It’s still a question mark to me if they are using a not-very-cheap third-party service, how and why they’re offering this for free, and what’s the business plan, but I’d be happy to pay a reasonable monthly subscription to be able to continue using it. Omnivore is a free and open-source app, so I probably can’t complain, but I will anyway:
-
TTS is only available on the iOS app, so as an Android user I need to use my iPad or work phone to listen to my saved articles.
-
There is no stable sync between Omnivore’s own apps. Sometimes I remove or archive an item on the web, but it’s still available on the iOS app, even if you refresh the feed, close the app, or get back to it next week. (I created an issue on Oct 2023, but no responses yet)
-
It has a Pocket integration (told ya!), but it (used to) have an “import” button in the
settings > integrations
page, so you’d need to click on this button every few days to make Omnivore to fetch the newly saved items from Pocket. No auto-import, yikes, but it was fine. But why do I say “used to”? Because they changed they completely removed the “import” button a few months ago, and you have to disconnect and re-connect your Pocket integration (and login, re-authorize, etc on Pocket’s website) each time you want to import the new items! Why?! I created an issue for this on Dec 2023, but no response from devs yet. This is why I need to write my own script to fetch my saved articles from Pocket and store them in Omnivore, and it’s been working mostly fine in the past few months.
Deep reading
Text-to-speech is not suitable for content with many visual elements or code snippets. I need to see the chart when the narrator says “… and here is how my indie app’s revenue changed last year”, and to read the code when you hear “… but you can implement the same functionality with the following 10 lines of Python”. There are also cases that I’ll need to browse a couple of web pages (like when I come across a HackerNews thread that many interesting tools have been recommended), and this is much easier on a laptop, compared to a phone.
More importantly, one of the critical benefits of doing all the steps of the workflow I’ve described so far is to somehow retain the useful information I consume. What should I do when I find a potentially useful Python library or a tip on how to fine-tune a language model? Just say “ok, cool” and close the tab? I at least have to take a small note about it and make it easier for myself to find it later if I ever needed it. I have a very simple personal knowledge management system on Obsidian . I can easily search for my notes using the obsidian-omnisearch plugin’s fuzzy and weighted search features.
I spend 15-30 minutes a day going through the starred items on Inoreader, sorted on “oldest first”. Depending on the length and depth of the saved item, I can skim, read, highlight, and take notes of 2-10 articles within this timeframe. Obviously, not everything merits a persistence on my memory, I usually find myself taking note of 15-20% of the items I read from Inoreader starred items, while others get an "ok, cool", close tab
. If an item is very long or very dense (information-wise), I usually convert it to a PDF file and save it in my “articles” folder on iCloud, so I can read it in another scheduled 15-30 minutes time slot on my iPad. I use an app called Documents
but I’m in a hunt for a better PDF reader for iPad.
A side note worth mentioning is that I currently utilize open tabs of Chrome on my phone in parallel to Inoreader’s starred feature. Sometimes I just keep an interesting link open as a tab on my phone, and thanks to Chrome’s excellent “tabs open on other devices” feature, I browse them regularly on MacBook, similar to what I do with starred items on Inoreader.
Other types of content
-
Social media: I’ve already talked extensively about Twitter, and I also spend 5-10 minutes a day browsing Instagram and Reddit, but usually nothing beneficial on either of them.
-
Paper books: I unfortunately don’t spend enough (or any, to be honest) time on reading books on paper. Although I’m covering books by reading ebooks and listening to audiobooks, but I’d love to add physical books to my days as well.
-
E-books: I used to read e-books on my Kindle, but I find myself using the iPad for this.
-
Audiobooks: For the same reason as liking to listen to articles, I sometimes prefer listening to books (obviously when the topic permits, meaning it’s not full of code or math formulas). I used Storytel for a few months, I’m currently using Spotify for listening to audiobooks.
Conclusion
I started using RSS and Inoreader less than 18 months ago, and I’ve built this workflow over time, based on learnings of what has worked and what hasn’t for me. I have experienced many benefits by doing this, including but not limited to:
-
I don’t feel cluttered with content. The number of my read-later items on Pocket remains steady at around 30, and take-note items on Inoreader are somewhat steady at around 170 (yeah, I need to speed this up a bit). I have replaced my pile of content with a flow of content, I consume from the pile at the same rate that I store into it.
-
By regularly exposing myself to high-quality content, I’ve been learning many new things consistently. The ratio of the “useful information” per “time spent” has been significantly higher for me following this workflow.
-
I’ve been known as a person who shares useful and interesting content with friends and colleagues. I have received much positive feedback at work appreciating me sharing articles and my findings.
The workflow will surely change over time, as tools die and new tools emerge, and also as I as a person change. I’ll update this post in the future with notes if I make changes to any parts of this workflow. Please reach out to me if you have any questions, or if you have any recommended tools that you think would fit or improve my workflow.