Skip to main content
The Reading Garden is the first pattern fracta ships. It takes the highlights you have already captured in Readwise (or Reader), runs them through a small NLP pipeline that extracts and ranks atomic Concepts, and publishes the highest-confidence Concepts back to a Notion database as connected, evolving pages — each tagged with an epistemic-status header (seedling / budding / evergreen) that reflects how the graph currently weights it. You drive the whole pipeline from one Claude worker, with one prompt. The strategies are deterministic Python pipelines; the LLM only holds the orchestration framing.

What you’ll build

A stack that ingests Readwise highlights, distills them into a queryable Concept graph, and republishes the highest-confidence Concepts to Notion idempotently. Re-running with no new data is a no-op (content-hash skip); re-running after new highlights land updates existing pages in place rather than creating duplicates. Once it is wired, leaving it scheduled gives you a Notion workspace that quietly grows with your reading.

Influences

The Reading Garden does not invent a methodology — it wires fracta into the ones the field has already settled on:
  • BASB CODE flow (Tiago Forte) — Capture / Organize / Distill / Express. The pattern’s narrative spine. highlight-distill is Capture+Organize; cross-source-concepts is Distill; notion-publish is Express.
  • Digital gardens (Maggie Appleton’s history) — letting ideas grow in public over time, with explicit epistemic status (seedling / budding / evergreen). The Reading Garden uses a private Notion workspace as the “garden” by default, which is a deliberately narrower interpretation than the canonical public-web garden; a future mintlify_publish / quartz_publish sibling strategy makes the public path a one-line extension.
  • Atomic / evergreen notes (Andy Matuschak, zettelkasten lineage) — one idea per Concept node, linked rather than nested. The schema slice (Ontology) is built around atomicity; Concept.epistemic_status is the surfaced version of Matuschak’s evergreen vocabulary.

How this pattern maps onto fracta

CODE stageWhat it meansFracta primitiveReading Garden artifact
CapturePull raw input from the sourceMCP servers ingesting via the gatewayReadwise MCP via fracta-native OAuth — pulls Highlights and Documents
OrganizeLand the input in structured tablesDuckDB-staged tables in strategieshighlight-distill stages Readwise paginated results into per-run DuckDB tables (recent_highlights, recent_documents)
DistillCompress raw input into atomic, linkable unitsStrategies + agent calls writing to the graphNLP-extractor fan-out (concept-keybert + concept-gliner + concept-spacy) merges into Concept / Entity nodes; cross-source-concepts rescores them graph-wide
ExpressSurface the result back into a venueA publishing strategy or downstream MCP writenotion-publish renders the top-N Concepts as Notion pages, idempotent via Publication.content_hash

When to use this pattern

Use it when:
  • You have at least a few hundred highlights in Readwise (or Reader) and want them connected rather than just searchable.
  • You want a Notion workspace that grows with your reading without manual maintenance.
  • You are willing to run three small extractor containers locally (~5.3 GB on disk, ~1.5–2 GB RAM resident — see Setup).
  • You want the option to extend into Raindrop / Zotero / PDFs later without forking the pipeline.
Skip it when:
  • You have not yet captured highlights anywhere — get reading data flowing first, then come back.
  • You want public-web garden publishing (Mintlify / Quartz). Named in Extending as future work; not in v1.
  • You want real-time streaming. This pattern is batch by design.
  • You want PARA-shaped active-work tracking. Project Companion is the (future) sibling pattern for that.
Honesty here saves an hour of going down the wrong road.

The stack at a glance

The publishing layer is a three-database mirror in Notion: Sources (one page per Readwise book/article), Highlights (one page per Readwise highlight), and Concepts (one page per atomic Concept). The Concepts DB links to the Highlights that mention it; the Highlights DB links back to its Source. This is how the published artefact stays navigable — you walk from a concept page back into the evidence that produced it.

Pattern at a glance

MCP serversreadwise, notion, concept-keybert, concept-gliner, concept-spacy
Ontology nodesTopic, Highlight, Document, Concept, Entity, Claim, Question, Publication
Strategieshighlight-distill, cross-source-concepts, notion-publish
Estimated setup timeAbout 20 minutes (OAuth pop-ups, one agent prompt to provision three Notion databases, one kubectl rollout)
End-to-end first runUnder 45 minutes from git clone to first published Concept / Highlight / Source page

What’s next