Decisions — 06 · What we won't build, and why
The things we said no to.
Every product is also the list of features it deliberately doesn't have. What follows is that list for Shelf, with the reasoning kept honest. These are decisions filed in writing, not items waiting for a quarter. They can be revisited, but they will be revisited here, in this same file, with a dated note explaining what changed.
Filed in Verona · 13 May 2026 · § Updates land in /changelog
-
§ 01
Mobile companion app
Shelf runs in Chrome because that's where the reading happens. Long-form essays, YouTube transcripts, podcast show notes, Substack posts, GitHub READMEs — almost everything worth saving lives in a browser. A mobile app would be a second product with a separate codebase and a different attention model, and one indie maker cannot support both well. A poorly supported mobile app is worse than no mobile app at all.
The library is Markdown on your disk, or pages in your Notion, or files in your Obsidian vault. Any of those are already mobile-readable through the apps that own them. The save flow is the part that's desktop-bound; the reading flow isn't.
Filed 13 May 2026.
-
§ 02
Cloud sync across devices
This is the question we hear most often, and the answer keeps coming back the same. A second server is a second thing to lose, a second thing to leak, a second thing to bill you for. End-to-end encrypted sync is harder than it sounds — the key recovery path alone is a UX trap that has killed bigger teams than ours.
The path we chose instead is structurally different. Shelf saves to Markdown files. Sync that folder with Dropbox, iCloud, Drive, Syncthing — whatever sync layer you already trust. We don't need to be in it. The Pro folder-export feature on the workbench will make this even more direct: pick a folder, Shelf writes there, your existing sync handles the rest.
If File System Access API proves stable across Chrome versions through 2027, we'll revisit. Until then, this stays filed.
Filed 13 May 2026.
-
§ 03
Send-to-Kindle / ePUB
The audience that wants this overlaps narrowly with the PKM crowd Shelf is built for. People who export to Markdown, Notion, Obsidian or Logseq already handle reading in tools that grok plain text fine; adding an ePUB target means owning a formatter for a format whose readers handle Markdown competently anyway.
The work isn't trivial either — ePUB rendering across Kindle, Kobo, Apple Books, ReadEra et al. has enough edge cases that getting it right would consume a sprint or two. The work-to-impact ratio doesn't land for our audience.
Filed 13 May 2026.
-
§ 04
Spaced highlights review (Anki / SM-2)
This is Readwise's core feature, and they do it well. Building a worse version means competing on their home turf with a fraction of their staff and a fraction of their content corpus to feed the review engine.
We'd rather be the best read-later for the export-first crowd than a worse Readwise. If demand for the workflow grows enough, the right move is integration with Anki via export — your highlights as a deck — rather than rebuilding the review engine ourselves. That keeps the surface area honest.
Filed 13 May 2026.
-
§ 05
Semantic search via embeddings
Two problems with this one. The first is structural: a usable semantic search needs an embedding pipeline running on a server, which collides directly with the local-first promise. The second is empirical: the gain over good local fuzzy search is smaller than the hype suggests for a 1-10K-item library, which is the size most readers actually have.
We're shipping local fuzzy search instead, on title, tags and excerpt. If it turns out fuzzy is genuinely insufficient at the larger end of that range, we'll re-evaluate. For now, fuzzy on the device is enough.
Filed 13 May 2026.
-
§ 06
Podcast transcripts via Whisper
Whisper API runs at roughly $0.006 per audio minute. For a product priced at €4.99/month on the Pro tier, even modest podcast usage erodes margin in a hurry — one hour-long episode a day per user, multiplied by a few thousand subscribers, becomes a real line item.
There's a focus problem too. Audio transcription is its own engineering surface (chunking, speaker diarisation, audio format handling, async job orchestration). Going there means becoming an audio product alongside a save-and-export product. The cost AND the focus drift are the two reasons.
Filed 13 May 2026.
-
§ 07
Twitter / X thread unroll
X's API has been a graveyard since 2023 — prices keep climbing, endpoints keep changing, rate limits keep tightening. Building anything serious against it is engineering quicksand, and the platform's posture toward third-party tools suggests it won't get easier.
The threads people actually want to save tend to be screenshots-of-threads at this point. Our existing save-the-page flow handles those, badly but tolerably (the screenshot is preserved, the text is extracted where possible). It's not great. It's the version we're willing to support.
Filed 13 May 2026.
A product is the things it ships,
and equally the things it agrees not to.
※ End of decisions file ※