About this project
This is where what I read, watch, and listen to online ends up. Save a link from any device and it is scraped, summarized, and tagged, so keeping something costs nothing more than deciding to keep it. Then, when a piece deserves it, I write my own note next to the source.
The rule that shapes everything here is that the model does the cataloging and I do the writing. Nothing on this site generates my opinion for me. The shelf is public because I want it to be, not because that is the point. The point is that the pile of things worth coming back to has one place, and that place is mine.
Methodology
Curation, what gets in
- What earns a save
The bar is whether I expect to want something back, not whether it was interesting to read. Most of what I open never makes it in, and the shelf is more useful for what it excludes than for what it holds.
Browse what made the cut - The note is mine
Anything I keep can carry my own commentary, written by me and never by the model. Most posts do not have one yet, and that is the honest state of things: the note is the expensive part, and which posts get one is the real signal of what mattered.
Browse the shelf
Cataloging, what the model does
- Summary and tags on ingest
The model reads the source once, writes the summary you see on each card, and picks tags from a small catalog. That is the whole of its job here. It makes saving free, and it never touches what I think.
See a card - Find it again
Search and tags exist so that I can come back to something months later. Two hundred tags with fourteen in real use taught me that organization nobody maintains is noise, so the vocabulary is being cut down to one I actually use.
Browse by tag
Building, how it stays honest
- Built, measured, cut
Between April and July this archive grew a retention machine on top of the shelf: quizzes, spaced repetition, a chat that answers with citations, a model router, weekly evals. Then I measured it. Six quiz sessions, nine questions asked, two posts ever revisited. What was missing was my own writing, not more model, so the machinery is being removed and the numbers stay on the record.
See the numbers - Metrics that can embarrass me
The stats page reported the corpus and its usage against a framework, answered questions per week, that the numbers retired. It is offline while that framework is replaced by numbers that are harder to hide behind: saves per week, how many notes are in my own words, and how healthy the tags are. They will be public for the same reason the notes are. I work more carefully when someone can check.
Read the case study
How it's built
The pipeline
- 1Capture
URL, share sheet, or bookmarklet, from any device
- 2Extract
metadata and readable body text, no AI
- 3Enrich
one model pass: summary and catalog tags
- 4Note
written by me, when a piece deserves it
- 5Publish
library, post page, tag pages, RSS
- 6Measure
saves, notes in my own words, tag health
Stack
Next.js 15 (App Router, ISR, server actions) · TypeScript · Firebase Firestore · Gemini for the summary and tags on ingest · Tailwind + shadcn/ui · Vercel with a nightly analytics rollup.
Tradeoffs
The model catalogs, I write
The LLM-wiki pattern has the model write and maintain the knowledge while the human sources and asks questions. I run it the other way round. The model does the summary and the tags, and the note is mine. The cost is that most posts never get a note. The benefit is that nothing on this site reads as my thinking when it is not.
One datastore, few knobs
Posts, tags, notes, and analytics live in a single Firestore project. That means one consistency model, one backup story, and no extra infrastructure, at the cost of fewer tuning options. At hundreds of posts it is the right call, and I will know when it stops being one.
Firestore-backed rate limiting over Redis
A sliding-window counter in a ratelimits collection is slower and coarser than Redis, but it adds nothing to a serverless deploy. It fails open by design, so an outage degrades to unlimited rather than to downtime.
Cutting what I built
A Thompson-sampling model router and an eval harness are the most technically interesting things in this repository, and neither serves the four things the archive has to do. Keeping them would make the portfolio look better and the product worse. They go, and the write-up of why stays.