Your Reading Library Just Got a Knowledge Graph

🎧
Listen to this article 8 min
Download MP3

Read-later apps all give you the same thing: a list. You save 500 articles. You have a list of 500 articles. The question of which 40 are circling the same idea, which three are all responding to the same paper, which cluster of research you have been quietly building without realizing it — none of that is visible. It exists in the latent space of your accumulated reading, and the interface does nothing to surface it.

Today Clip adds a knowledge graph to your reading library. Every clip becomes a node. Edges connect clips that are semantically similar. The result is a visual map of your saved content where structure emerges from meaning, not from the order you happened to save things.

The List Is a Lossy Format

You save articles over months. The moment an article enters your library, it loses its context. What you were reading at the time. What search led you there. What other articles you were thinking about when you decided this one mattered. All of that gets compressed into a title, a URL, and maybe a date.

A list preserves sequence but discards structure. If you save an article about transformer attention mechanisms in January and one about in-context learning in March, the list treats them as unrelated items separated by 200 other saves. The fact that these are deeply connected ideas — one explains a core mechanism, the other describes an emergent behavior — is invisible. The connection exists in your reading but not in your reading list.

The list also imposes a single axis: time. But your reading does not progress along a single axis. It branches. It clusters. It circles back. Some articles are foundations that support everything else. Some are isolated one-offs. Some are the fifth thing you have saved about a single topic you are clearly obsessed with. The list flattens all of this into a scroll.

What a Knowledge Graph Adds

When you map clips as nodes and draw edges by semantic similarity, something different becomes visible: clusters. Topics your reading has been orbiting without you realizing. Research threads that span months of saved content. Articles you thought were unrelated that are actually the same conversation from different angles.

The graph treats distance as meaning. Nodes that are semantically close are pulled together. Nodes that share little with anything drift to the periphery. When you look at your graph, the dense regions tell you where your attention has actually been concentrated. The sparse regions tell you what you have been ignoring or only touched once.

This is not organization you have to do. It emerges automatically from the embeddings. Every clip already has a vector representation — that is how semantic search works. The graph is a spatial projection of those vectors. When the vectors are close, the nodes are close. When the vectors share little similarity with anything else, the nodes float alone.

The result is a map of your reading where structure is not imposed but discovered. You do not have to tag, categorize, or sort. You save things. The graph shows you what patterns exist in what you have saved.

How We Built It

Under the hood, every saved clip already has a vector embedding stored in ChromaDB. These embeddings were always there — they power Clip's semantic search. Building the graph is a matter of reusing that infrastructure for visualization.

For each clip, we query its top-five nearest neighbors by cosine similarity. We filter by a minimum similarity threshold (0.65 by default) to avoid drawing edges between things that are only vaguely related. We deduplicate edges so we don't double-count bidirectional similarity. The result is a sparse adjacency list that represents actual semantic neighborhoods, not noise.

The graph renders as a D3.js force-directed simulation in the browser. No server-side rendering, no separate infrastructure. Nodes repel each other by default; edges pull connected nodes together. The simulation runs until it stabilizes, then freezes. You can drag nodes to rearrange, zoom and pan to explore, hover for metadata.

Nodes are colored by topic cluster. Clip already computes these clusters during ingestion using k-means over the embedding space. The same clusters that power the topic filter in the sidebar now color the graph. Edges have opacity proportional to similarity weight — stronger connections are more visible, weak edges fade into the background.

What You Can Do With It

The obvious use is exploration. Click the Graph tab, wait for the simulation to settle, and look at what emerged. You will probably find a cluster you did not know existed — a group of articles that share a theme you were not consciously tracking. The "AI reasoning" articles. The "distributed systems" thread. The startup pricing research you have been accumulating piecemeal.

The second use is spatial navigation. Instead of searching by keyword, you navigate by position. Find one article you know is relevant, look at what clusters around it, and explore outward. This works well when you cannot remember the right search terms but you know approximately where the content lives conceptually.

The third use is gap detection. Isolated nodes — clips with no edges, floating alone in the periphery — are things you saved that connect to nothing else in your library. Sometimes these are outliers you should revisit. Sometimes they reveal a topic you have touched only once. The graph makes these gaps visible.

The fourth use is understanding your own reading patterns. The graph is a portrait of what you found worth saving over months or years. Dense clusters are topics you have repeatedly returned to. Sparse regions are areas where you have only dipped in once. The graph is a reflection — not of what you intended to read, but of what you actually accumulated.

Try It

The graph is live at api.clip.pyckle.co. Open the Graph tab. If your library is sparse, save 20 articles first and the connections start to emerge. The graph works with any library size — isolated nodes with no similar clips are shown too, nothing gets hidden.

This is the first release. We are already working on edge filtering (show only edges above a certain threshold), cluster labels (auto-generated names for dense regions), and timeline animation (watch your graph form as you scrub through time). But the core is here: a spatial, semantic map of everything you have saved.

A list tells you what you have. A graph tells you what it means.

← Back to Blog

Try It Free

Clip by Pyckle

Open the Web App — Free

Save, search, chat, and now graph your entire reading library. No credit card required.

Open Clip →