
Close, and wrong in different ways
I wanted the portability of plain files with a reading experience I could shape around my work. The tools I tried did not give me both.
Plain files, and a writing rule
The storage layer is plain markdown files on disk with no database. Every note stays readable and greppable with no application at all, the whole thing versions in git, and there is nothing to migrate off. The application became a thin reader over the filesystem rather than an owner of the content.
Writing to it is not optional at the end of a session. A knowledge system that depends on remembering to use it decays to nothing within a month. Any session producing a decision, a tool or a finding writes it before it ends.
Front matter that does work
A reader on a modern frontend stack over a thin server that reads and writes files directly, with custom properties for theming and both light and dark treated as first-class rather than one being an afterthought.
Roughly 476 notes across fourteen areas, each carrying front matter that states how confident the note is, how fast it goes stale, what evidence backs it, and when it was last verified. That last field is the one that does work, because it lets a reader tell a checked fact from a remembered one without reading the body.
Reusable method notes as a distinct category, which is where the durable value sits: a six-gate review method, why the design tool drops text overrides on a variant switch, an audit method for third-party artifacts, and the anti-hallucination protocols — each written once and cited since.
Check the graph before reorganizing
The graph view reported sixty-nine orphaned notes. That reads as a filing problem and would have justified a large reorganisation.
It was a resolver bug: link targets were being lowercased and then looked up in a case-sensitive index, with a fallback that matched on filename alone. Twenty-four of the sixty-nine were not orphans at all, and after the fix exactly one note out of roughly 440 turned out to be genuinely misfiled.
I now check the underlying links before reorganizing notes based on a graph. Spot checks also showed that fuzzy name matching produced incorrect suggestions, so I left those links untouched.
Three corrections found while writing
Every case study in this set was compiled from these notes rather than from memory, and three separate factual corrections surfaced during that compilation — including a contrast ratio that had been wrong in a note for five weeks.
None of those would have been catchable if the work had stayed in chat.
One rule — that a session writes before it ends — turned a scatter of chat histories into the thing every piece of evidence here was pulled from.
Next case
The code was never the bottleneck. ↗