← Personal System

Store

Every note in the vault is a plain markdown file, and that choice is what everything else depends on. No proprietary format, no database I could get locked out of, nothing that needs a specific app to stay readable. A markdown file opens in any text editor, greps in a terminal, and will survive whatever note-taking tool I'm using in five years, because it's just text with a small block of structured fields at the top.

That structured block, the frontmatter, is governed by one versioned schema that every content note is checked against as it is written. The schema defines, for each type of note (a person, a task, an essay, a meeting record, and roughly sixty others), which fields it must carry, which are optional, and which values are allowed where there's a fixed list to choose from. A hook runs on every save and reads that schema directly: a missing required field, a value outside its allowed list, an unrecognised field, or a note sitting in a folder that isn't supposed to hold its type all get flagged in the same moment, so malformed metadata gets fixed at write time rather than discovered downstream.

Folders are storage, not organisation. Almost everything sits flat inside sixteen numbered top-level folders, ordered so the number roughly signals what kind of thing you're looking at rather than what it's about. What a note is actually about, who it involves, and which of my projects it belongs to lives in its frontmatter, not in which subfolder it happens to sit in. Hierarchy breaks down the moment something belongs to two categories at once, and fields don't.

Wikilinks and tags are the join keys that make the whole thing behave like a database rather than a pile of documents. A note that mentions a person links to that person's own page, and that link is what makes the connection queryable, not just a passing mention. The same mechanic ties tasks to the people they involve, meetings to attendees, and pieces of writing to the ideas and entities they touch. These fields are also what drives the live related block on every content note: connections in both directions plus a scored overlap on shared people, tags, and topics, derived fresh every time the note is opened.

Index pages don't get maintained by hand; they're live queries over frontmatter that already exists. A page listing everyone in my network, or everything I've written on a given topic, re-reads every note's fields at the moment it's opened. Add a new note with the right fields and the right links, and it appears on the relevant index automatically. There is nothing on them that isn't already true somewhere else in the vault.