fake-obsidian is a lightweight, read-only viewer for Obsidian-style markdown vaults. It renders a force-directed graph of every note and the wikilinks between them, lets you click any node to read its full content in a side panel, and follows links between notes without leaving the page.
What the vault documents
The mandragora knowledge vault is the long-form prose layer of a NixOS workstation configuration. It records what every piece of software does, why a module was chosen over alternatives, how incidents were diagnosed, and the principles that ground the system's design.
- programs — every binary the system has touched
- modules — the Nix module taxonomy
- services — third-party services depended on
- hosts — desktop, WSL, USB rescue, Oracle VPS
- incidents — post-mortems and their fixes
- decisions — architectural calls and the reasoning
- features — cross-cutting capabilities
- agents — Claude, Gemini, local LLM notes
- principles — non-negotiable invariants
- eras — the seven-year story timeline
- concepts — the connective tissue
- MOCs — maps-of-content for navigation
How the viewer works
At load, the page fetches a precomputed graph
(graph.json), runs d3-force to lay out the nodes
and edges on an HTML5 canvas, then animates the result.
Clicking any node fetches its markdown source and renders it
with marked.js
in the side panel (a side sheet on desktop, a bottom sheet on
mobile). Wikilinks inside the panel are rewritten into clickable
anchors that pan the graph and load the target.
Interaction
Click and drag any node to push it around — the surrounding graph squishes and rebounds as collision and link forces reach for equilibrium. Mouse wheel zooms; middle-click drags to pan; hovering the legend rows highlights every node in that category; tapping a row pins it. Typing in the search box dims everything except matches. Click empty space to close an open note panel.
Hosting
Deployed at demo.mvr.ac, served from an Oracle Cloud Free Tier VPS via a docker-compose nginx container behind Caddy's docker-proxy TLS terminator. No backend, no analytics, no tracking — all interaction happens in your browser.
Source
Engine lives in the
mvrozanti
vault-graph repo; this site is a thin static
consumer (fake-obsidian). See
mvr.ac for the rest of the public
surface.