I keep my reading list in git
I read about thirty books a year, mostly audiobooks while the tests run. The list lives in a git repo, because of course it does — a plain Markdown file, version-controlled, diffed when I finish something. It’s a slightly absurd system that has quietly made me read more and remember more.
The repo
One file, books.md, three sections: reading, queue, done. Each entry is a line — title, author, a tag or two, and a date when it moves to done.
## reading
- Tress of the Emerald Sea — Brandon Sanderson ::sci-fi 1.6x
## queue
- Thinking in Systems — Donella Meadows ::systems
- The Mom Test — Rob Fitzpatrick ::startups
## done
- 2025-10-02 Designing Data-Intensive Applications — Kleppmann ::systems
- 2025-09-18 The Pragmatic Programmer — Hunt & Thomas ::craft
That’s it. No app, no Goodreads, no account to get acquired and shut down. Finishing a book is a commit, which turns out to be exactly the small dopamine hit that keeps the habit going.
The queue is the whole trick
The reason this works isn’t the log — it’s the queue. Having the next three books already chosen removes the decision fatigue that kills reading streaks. When one finishes, I don’t browse; I pull the top of the queue. Browsing for “what next” is where weeks disappear.
I keep the queue deliberately mixed: a systems book, a startup book, fiction, and an embarrassing amount of LitRPG. The fiction is what makes the nonfiction sustainable. A pure diet of distributed-systems texts is how you stop reading by March.
Speed and retention
Audiobooks at 1.6×, occasionally 2× for lighter material. People assume speed kills retention; for me it does the opposite — slower than my reading pace and my attention wanders, and a wandering mind retains nothing. The right speed is “just faster than comfortable.”
Retention comes from the second half of the system: when a book is worth keeping, I write a few lines of notes — not a summary, just the two or three ideas I want to actually use. Those go in a notes/ folder, one file per book, also in git. If I can’t name three ideas worth keeping, it probably wasn’t worth the time, and that’s useful signal too.
A reading list you don’t maintain is a wishlist. A reading list in git is a habit with a commit history.
Why not an app
Because the friction is the point. The system is plain text, lives where my code lives, and outlasts every reading app I’ve tried. It diffs, it greps, it syncs for free, and nobody can deprecate it. ~30 books a year, one commit at a time.
Filed under books. Got a queue worth stealing from? Send it over.