Daily
Reeder

✓ my yes · every article

A reading app on iOS and the web. An agent finds the articles, I decide which ones get in, and what I highlight goes into a vault my other tools can ask questions of.

Solo build. The iOS app, the web app, the MCP server. I read on it daily.

Saved articles die unread.

I print articles from paywalled sources to PDF, and the files pile up. Each one arrives with the web junk still attached. There is no good way to read through a stack of them on a phone, and when a line lands there is nowhere to put the thought without leaving the page. So the pile grows and nothing comes back out of it.

I decide what gets in.

Twice a day an agent goes looking. It works from a graph of my interests and comes back with a carousel of candidates, and I pick what makes tonight's queue. One Gemini call on the way in strips the navigation, ads and boilerplate, then writes the summary and the hooks. The feed is what a person chose rather than what a ranking surfaced. That makes it a judgment, not a ranking.

The summary card for one queued article on iPhone: a SUMMARY label, the article title, the written summary set in serif, the publication and author underneath, and Read article and Mark completed buttons below the card.
The card the agent hands me1179 × 2556 at 3×
123SOURCESFEEDS AND LINKSAGENT06:00 AND 21:00CAROUSELHUMANI CHOOSEONE SWIPE EACHNOT CHOSEN,NOTHING KEPTCLEAN THE PAGEONE GEMINI CALLTONIGHT'S QUEUESORTED BY READ TIMEHIGHLIGHTTWO TAPSI READTHE VAULTTOPICS, REDRAWN NIGHTLYWHAT I KEPT
Two pulls a day into a carousel. My yes into the queue. The queue into a night's reading, and the highlights into a vault that shapes what the agent looks for tomorrow.
  1. 1Two pulls a day arrive as a carousel. One swipe each, and what I skip is dropped.
  2. 2The cleaning call runs after the choice, once per article.
  3. 3Everything in here is something I marked by hand.
The agent proposes. I dispose.

Sorted by what you have time for.

Tonight's Queue on iPhone, in deep green. Cards carry a title, a cleaned summary, the source where the card has one, a read time and date, and a play button. A sort control at the top reads Sort: Shortest first.123
Tonight'S Queue1179 × 2556 at 3×
  1. 01

    Sort is a control; here it is shortest first.

  2. 02

    Every card carries a read time, so a five-minute gap has something to put in it.

  3. 03

    The summary is already cleaned up, and play starts narration that runs on-device on iOS.

  4. 04

    The deep green and the quiet type are deliberate. This is the app I open at the end of the day, and it should feel like that.

The highlight is the unit, not the click.

Two taps and a haptic mark a passage. The scratchpad takes a loose note and keeps the quote that prompted it. Highlights leave the app as cards with the source still on them, which is how this one got to Threads. What I chose to keep is a better signal than what I happened to open, and that is the signal everything else runs on.

A Threads post with a Daily Reeder card attached. The card sets a highlighted passage from More To That in serif type, with the publication and article title underneath.
One highlight, posted to Threads1179 × 1674 at 3×

Everything I kept, redrawn every night.

Highlights and notes land in one searchable vault, redrawn each night as topics with edges between them. The topics carry my names, not categories: Defending the Human Line, Putting Agents to Work, Fatherhood and the Two-Zone Life. My other tools query the vault, including the Morning Memo podcast, which takes its context from here. Nothing writes to it without my yes for that specific write.

The Wiki tab showing topic bubbles joined by lines, including Defending the Human Line, Putting Agents to Work, Engineering Reliable Agents, Beyond the Chat Box and Fatherhood and the Two-Zone Life.
The Wiki tab, rebuilt last night1179 × 2556 at 3×

Two pulls a day, one cleaning call per article, morning pull to bedtime read.

This is what I read on now, though only in my hands — nobody else has run it — and the vault it fills is what the rest of my setup asks questions of.

Built on

SwiftUI on iOS, a React web app, one Firebase backend. Gemini 2.5 Flash cleans the text. The MCP server — the piece that lets my other tools query the vault — runs as a Cloud Function.