The Graph as Substrate

·Foundations ·.md

A working library is not a blog. The data structure is the design — every other choice (URLs, tone, search, dark mode) follows from treating notes as nodes in a graph rather than posts in a feed.

A blog is a stream. A library is a graph. The difference is not aesthetic; it is structural, and every visible decision flows from it.

In a stream, the newest item is the most important by default. The reader is expected to keep up, miss nothing, and never go back. The writer's job is recurrence — show up, fill the slot, restart the meter.

In a graph, position matters more than recency. A node is judged by the edges that touch it, the questions it answers, and how often other nodes need it. The reader is expected to roam, not consume in order. The writer's job is not recurrence but coherence: each new node has to extend the existing structure without contradicting it (or contradict it on purpose, in a way the structure can absorb).

This sounds like a metaphor. It isn't. The data model determines:

URLs. A blog wants /2026/05/title-slug. A graph wants /title-slug, because the date is metadata, not identity. The slug is the node id; it should never break. Front matter. A blog needs a title, date, body. A graph needs a title, a one-sentence description that survives being read out of context, and explicit edges to other nodes. Indexing. A blog renders chronologically. A graph renders by category, by centrality, by adjacency to whatever node you came from. Voice. A blog can ramble; the next post will arrive next week. A graph can't. Each node is read alone as often as it is read in sequence, so each one has to stand up by itself. Death. A blog post can quietly age out. A graph node cannot — anything still being linked to is still load-bearing, regardless of when it was written.

The practical test is whether you would accept a reader who walked in at any node, read it, left, and never saw the rest. If the answer is no, you are still writing a blog. If the answer is yes, you are writing a graph, and the surface should reflect it.

Most personal sites pretend to be one and act like the other. The split is what makes them feel uneasy to navigate. A site that picks one and commits feels obvious in a way that takes years to explain.