Vlad's Roam Garden

Powered by 🌱Roam Garden

How do I read things on the internet

I have a somewhat elaborate process for reading things that I find on the web. I've been inspired to share it because after many a long iteration it finally feels adequate!

Reading things on the web seems like it should be easy, and yet - I've been failing at it for years! 🙀

In this article I explore my current workflow and challenges that made it into what it is today.


TLDR version:

When I see something new I want to read - save it to Readwise Reader (it also becomes an SRS item in Roam)

When in "podcast mode" (doing house chores, biking, etc) - queue up a TTS version of an article.

Each day after lunch - read one or more pieces suggested by Spaced Repetition in Roam - reschedule others

Highlights and notes are synced into Roam and selectively become SRS items

The goal of the workflow is to: Enable you to reliably read things you want to read (and retain learnings from it) while minimizing effort and attention spent.


This is part of the pipeline that received relatively less optimization attention, mostly by virtue of me suffering from abundance of content rather than scarcity. I include it primarily for completeness’ sake.

Some ways in which discovery is happening for me are as follows:

Follow-up from previous things I read

people often link related content

Ampie extension is helpful to discover the broader conversation about a given piece - which includes links to related content

Recommendations from friends - sent directly or via social media

Aggregator newsletters (Indie Hackers, https://rationalnewsletter.com/)

I like aggregator newsletters because they introduce an additional layer of curation over raw subscription streams like RSS.

I'm also subscribed to a few "normal" newsletters

I'd love to see a Goodreads-style platform created for discovering and tracking articles.

Ampie gives me some of the same benefits, but less systematically

Curius.app is a more social version of Hypothes.is and also covers some of the similar ground

Reading Inbox

When I encounter something that I think would be worth my attention - I save it to Readwise Reader

This also serves as a trigger to create an SRS item in Roam

The first problem of reading things on the internet is that there are too many things out there one is tempted to read.

Even if you have a good curation process there is always too much content and too little time.

My first approach to managing the reading inbox was to keep things I want to read in endless browser tabs and breathe a sigh of relief when my browser crashed and all the open tabs disappeared

When I noticed that this process didn't actually achieve the goal of helping me to read things I wanted to read - I started pushing myself to add things to Pocket/Instapaper to have a clear backlog of things to read

Which put me in a situation when I had hundreds of articles in Instapaper instead of as persistently open tabs (somehow that only marginally impacted number of open tabs I had 😅)

The result wasn't amazing - I went from not reading things and having them eating into my attention to not reading them and forgetting about them.

Arguably it was an improvement, as attention is an important and scarce resource, but as the point of this workflow is to help me actually read things instead of collecting the things I wish I have read - it was a failure.

A better way to direct my limited attention was called for! And I found it in Spaced Repetition

When a piece is added to Readwise Reader - a Roam "block" for it is automatically created

It's tagged with to/read and configured to become an SRS Card

The core pillar of directing my attention programmatically is Spaced Repetition - I use it extensively for inbox processing, engaging with content over time and developing habits.

How does this work:

When the item is originally added to Roam - it's scheduled for a review in one of the next few days

During my daily reading time, I review each suggested item. If I want to read it, I do so right then. Otherwise, I either:

I reschedule it further into the future

Or mark it as "done" if I'm not interested in the piece anymore

It proved to be a good match for reading inbox handling. The above process has the effect of:

keeping the things I want to read salient

sorting them by excitement - things that I'm repeatedly not excited to read end up scheduled exponentially further in the future

Listen to content in audio form first

For any new piece of content I want to engage with - listen to an audio version of it first

This is often sufficient to get what I was hoping for from a piece ✅

If not - it serves as a first-pass skim read before deeper engagement

This is one of the core pillars of my reading flow — I think reading things in audio form is underappreciated.

Audio form dramatically extends the range of environments and situations when it's convenient for you to read.

I listen to audiobooks, podcasts and TTS version of articles when I bike to places, do chores and sometimes even while taking a shower (though I've been avoiding the latter lately).

This allows me to read more - in fact it increases my reading throughput to a degree that I can first-pass read things faster than I find new things to read!

Read it once mindset

An important stepping stone to make audio form work well for me was overcoming “only read a given thing once” mindset.

What I mean by that is that when I originally started using TTS to read things - after listening to an article - I felt like "I read this, I'm done with it an and don't need to engage with it anymore".

And while it's actually true for many types of content (opinion pieces, news articles, fiction) - I found it that for deeper, more technical pieces - just listening to something once, often wasn't quite satisfactory. I wanted to highlight paragraphs, add notes, play with presented models.

As a consequence I was avoiding listening to all content as I had a vague sense of unease "but what if it's a piece I want to engage deeper with and by listening to it, I'd lose an opportunity to derive full benefit from it".

Eventually I realized that it was silly 🙃

My new process is:

listen to all the content that comes my way first

this is sufficient level of engagement for a large chunk of what I want to read

for things that need deeper engagement

put them on top of the queue of the to-read things

read them again (likely in text form this time), highlight and annotate them, play with models they present, find follow-up reading

Spaced Repetition reminds me to engage with the piece until I mark it as fully processed

I've been previously using a custom automation setup that allowed me to create a podcast feed of transcribed articles from things saved to Instapaper (https://github.com/Stvad/pollycast/ ).

I've since transitioned to mostly using Readwise Reader TTS.

The reason for having custom setup was a better UX for playing audio inside the podcast apps and a better voice quality. Reader TTS got both of those things to a "good enough" stage.

In-depth reading

For items that survived this far in the pipeline - I'll read them at a designated reading time (usually)

I do most of my reading on an iPad and use Readwise Reader or Hypothes.is for annotation purposes.

Highlights and notes sync to Readwise, then to Roam. The next day I review them in Roam, converting notes that I want to engage with more into SRS items for ongoing review.

Support structures

Some things that I found helpful to make focused reading something that I do reliably and in a productive way

Incorporate “focused reading time” to be a stable part of my daily routine

I devote 30+ focused minutes to reading every day after lunch.

Getting an iPad and using it as my primary reading device

Having a dedicated device with good reading UX affordances elevates the overall experience considerably.

I've primarily used a phone or a laptop prior to getting a tablet, but both provide a subpar experience for reading.

I've also had a Kindle for a while, but I found it frustrating to use for web and PDF content and so it mostly languished in my drawer.

Physical books have nice aesthetics, but overall unsatisfactory UX, so reading a print book is something that I'd do occasionally, but it requires additional effort/accommodation for the sake of the experience.

Beeminder was very useful as a way to introduce daily reading habit

But when I relied just on Beeminder - it was an "effortful" habit. What I mean by that is - I'd do it because I committed to it, but it wasn't part of a routine, which constantly made me scramble to fulfill Beeminder requirements last moment.

Making it into a predictable routine is what made it “effortless”, Beeminder has applied optimization pressure to help me get there though.

Things I'm still unhappy about

Taking notes alongside reading

I have a keyboard case for the iPad, but I read things in portrait mode and it's annoying to get it in and out of the case each time I want to take a note.

Plausibly I should just have an external keyboard on-hand

Handwriting sucks

Audio notes are created out of context and I need to manually tie them to the original piece later

Having the SRS around what should I read to be in an external app (Roam) is a bit awkward

The two places are disconnected after the original SRS item creation, and so I need to mark any given article as read twice - once in SRS system and once in Reader.

Ideally a domain-specific SRS implementation would be a part of the reading app experience.

Generally - incorporating learnings from this WF into one tool would be great.

Readwise Reader is getting there, but still has ways to go before it'd be an ideal reading app for me.

I make due by building automations and tweaks around the core experience. But the degree to which I can do that is limited and makes me wish once again for a world with more malleable software


Overall I'm finally happy with this workflow, which prompts me to share it 🙂.

I imagine some of its aspects are peculiar to how I interact with the information out there. But I hope that people can adopt chunks of the workflow that work well for their peculiarities. And that if you recognize some of the struggles I went through in yourself - you may find my solutions useful.

If you do give it a try or if you have your own peculiar ways of interacting with the information you find on the internet - I'd be curious to know


More things I do or have tried around reading

Display highlights & notes on the page when I visit it at a later point

When I revisit a web page that I've previously read - I want to be able to see how I have interacted with it - see highlights I've made, notes I've taken etc.

There are several tools that afford for that, but I haven't found a perfect solution so far.

Readwise Reader has a browser extension that allows you to save things to read later and annotate the web-page in-place

It'd then display the highlights and notes when you visit the page later. Unfortunately it'd only be the annotations taken within the reader.

I hope that eventually they'll have a better integration with "Readwise 1.0" which is what I use to manage all my highlights from different sources.


Inherently displayed as part of original page. But you have to remember to trigger it to see the annotations.

Only highlights made in Hypothes.is are displayed.

Browser extension to augment your browsing experience with additional context

Theoretically this can support annotations from arbitrary sources, in practice it currently only pulls in highlights from an Instapaper export data.

Failed experiments

spritz speed reading

I was interested in reading using Spritz/RSVP (at least for the first pass)

It's currently redundant though, as audio serves the role of "first pass/quick skim".

And if the piece needs a second pass - I want to engage with it deeper.

Copying things into Roam and reading them there

The idea was to use Roam's linking facilities for a deeper engagement with the piece. Roam is not a great environment to read in though, and copying fidelity is subpar.

Get in touch

Subscribe to future updates from my garden:

Talk to me on Twitter


Why Hypothes.is?

I have fondness for reading things in the original layout and not re-processed for "readability". I'm sad that this is not an option for the Reader. Reader also occasionally parses out the parts of the page that contain the content I'm interested in.

Hypothes.is allows you to annotate things you read directly in the browser and works basically everywhere. Though mobile experience is a bit awkward:

It's done through a bookmarklet, which you can use on your phone https://paul.kinlan.me/use-bookmarklets-on-chrome-on-android/ (this guide is for Chrome/Android, but things work in a similar fashion on other devices e.g. iPad/Safari)