Shape · rw-projects

Reader Search via Turbopuffer

Overview
Current Owner
@mati
Stage
Shape
Time in Stage
4d
Slack Channel
Stage Timeline
Backlog
2026-04-12 · @tristan
Shape
2026-04-12 · @mati
Build
Expedite
Ship
Learn
Done
Stage Documents
motivation.md Motivation

Reader Search via Turbopuffer -- Motivation

Reader's current search is local-first, powered by a client-side SQLite database that indexes all documents locally. This architecture causes major issues: search freezes on large libraries, poor result quality, high memory/CPU usage, long indexing waits before users can search, and a 20-result limit. The team has already built performant Turbopuffer indexing for Reader MCP, so the infrastructure exists to transparently switch Reader search to server-side Turbopuffer FTS -- solving quality, performance, and scalability issues while opening the door to searching over more fields and returning better results.

shape.md Shape Deliverable

Reader Search via Turbopuffer -- Shape (WIP)

This document is underway while the project is in Shape. It will be finalized when the stage completes.

Entered Shape: 2026-04-12 · Owner: @mati · Initiative: rw-projects

Goal

Determine feasibility and approach for switching Reader search from local SQLite to server-side Turbopuffer FTS, then define scope for build.

What's been done

  • Notion spec written by Tristan: overview, benefits, future opportunities, technical notes
  • Reader Search issues and feedback doc compiled (cataloging known problems)
  • Turbopuffer document indexing already built for Reader MCP (Piotr's work) -- infrastructure exists
  • Channel created, key people added (Mati, Piotr, Kris, Dan, Tristan)
  • Piotr offered to help Mati with Turbopuffer internals

What's in progress

  • Mati doing technical exploration and POC building
  • Evaluating search quality: building test queries on large libraries, benchmarking old vs new results

What's not done yet

  • POC demonstrating Turbopuffer search quality vs current SQLite search
  • Offline fallback strategy (local RxDB filtering?)
  • Rollout plan (opt-in beta setting vs full switchover)
  • UX scope: which issues from the feedback doc to address in v1 vs defer

Open Questions (for next stage)

  • How to handle offline search? Fall back to local filtering with user notice?
  • Which UX issues from the feedback doc are addressable as part of the migration vs separate work?
  • Performance characteristics of Turbopuffer FTS on very large libraries?
  • Timeline for opt-in beta vs full rollout?
Daily Digests 1
2026-04-12 Daily Digest

Reader Search via Turbopuffer -- 2026-04-12

Stage: Shape | Owner: @mati

Activity

  • Tristan created #rp-reader-search-v2 channel (later renamed to #rp-reader-search-via-turbopuffer on Apr 15).
  • Tristan shared the Notion spec and noted the project is "mostly still in the shaping phase" with Mati doing technical exploration and POC building.
  • Piotr offered to help Mati with the Document Index machinery built for MCP/CLI/Ghostreader and how it can power global search.
DateSummary
2026-04-12 Channel created, Notion spec shared, Mati begins technical exploration. Piotr offers Turbopuffer expertise.
Linked Documents & Assets