Wikilink graph notes: building a knowledge base that links itself
Wikilink graph notes are the simplest durable way to build a knowledge base out of plain markdown files. You write a note, drop a [[wikilink]] to another note, and over time those links form a graph you can navigate — forward from a note to what it references, and backward via backlinks to everything that references it. No database, no cloud, just markdown files that link themselves. This guide explains what backlinks are, why a graph view actually helps, and how Tybre indexes your .md files to build one.
It is a developer-oriented walkthrough, not a philosophy lecture. If you already keep notes in a folder, you are most of the way there.
What is a wikilink, and what is a backlink?
A wikilink is a link written as [[Note Title]] inside a markdown file. It points at another note by name instead of by file path, so you do not have to remember where the file lives on disk. When you write [[Postgres indexing]] in your deploy notes, you have created a forward link: this note references that one.
A backlink is the same edge seen from the other side. Open Postgres indexing and a backlink is any note that links to it — including your deploy notes. You never typed the reverse link; the tool computes it by scanning every file for links that resolve to the current note. That is the quiet magic: you link forward as you write, and the backlinks assemble themselves.
Why a graph view helps
A folder tree tells you where a file is. A graph tells you how ideas connect. When your notes are nodes and wikilinks are edges, clusters emerge that no folder structure would have shown you — the note everything points at (a hub you should probably expand), the orphan with no links (maybe it belongs somewhere), the two clusters joined by a single edge (a connection worth strengthening).
For developers this maps neatly onto real work: a decisions/ note linked from three feature specs, an incident write-up that backlinks to the runbook it changed. The graph makes those relationships visible instead of leaving them implicit in your memory. This is the same idea behind tools like Obsidian; for how that compares tool-to-tool, see our Tybre vs Obsidian breakdown.
How Tybre indexes your notes into a graph
Under the hood, Tybre scans every .md and .markdown file in your project and parses out the [[wikilinks]], building a forward index — a map from each note to the notes it links to. It resolves each link target to an actual file, then computes backlinks by inverting that index: for any note, the backlinks are every note whose forward links resolve to it.
The index is cached so opening the graph is instant, and it updates incrementally — edit one file and Tybre re-indexes just that file, then re-resolves links in memory rather than rescanning the whole vault. The result renders as an interactive graph you can pan and click to jump between notes. Because it is all derived from files on disk, nothing about your knowledge base is trapped in a proprietary format. That local-first property is worth understanding on its own — we cover it in local-first markdown notes.
How this compares to Obsidian's approach
To be fair to a mature tool: Obsidian pioneered this workflow for a lot of people and its graph and backlink panel are more configurable, with filters, colors, and local-graph depth controls refined over years. If deep graph tuning is your hobby, Obsidian is ahead.
Tybre's indexer works on the same principle — plain markdown, forward index, computed backlinks — but is built into a developer editor with a terminal and Claude Code beside it, rather than a plugin-driven PKM. Same file format, so the two are not mutually exclusive: you can point either at the same folder. The choice is about the surrounding workflow, not the note format.
Practical workflow tips
A few habits make a wikilink graph pay off instead of turning into link spaghetti:
- Link the moment you mention a concept — write
[[Rate limiting]]inline rather than promising to link it later. Later never comes. - Prefer stable, human note titles over paths, so a link keeps resolving even if you reorganize folders.
- Check backlinks before you write a new note — you may already have a home for the idea.
- Let orphans accumulate, then sweep them periodically; an unlinked note is a prompt, not a failure.
- Create hub notes (a
[[Deploys]]index) that link out to related notes, so the graph has natural entry points. - Do not over-tag; wikilinks already encode structure, and duplicate taxonomies fight each other.
Frequently asked questions
What is the difference between a wikilink and a backlink?
A wikilink is a forward link you type as [[Note]]. A backlink is the reverse edge, computed automatically: every note that links to the one you are viewing. You write forward links; backlinks assemble themselves.
Do I need a database for a graph of notes?
No. Tybre builds the graph by scanning your plain .md files for [[wikilinks]] and inverting that index for backlinks. Everything stays as local markdown on disk — no database, no cloud account.
Does the graph update when I edit a note?
Yes, incrementally. Editing one file re-indexes just that file and re-resolves links in memory, so the graph and backlinks stay current without rescanning your whole project.
Is this the same as Obsidian's graph view?
The core idea is the same — markdown, wikilinks, forward index, computed backlinks. Obsidian's graph is more configurable; Tybre's is built into a developer editor with a terminal and Claude Code alongside your notes.