Building a second brain with Obsidian

I’ve been through Notion, Roam, Logseq, plain-Markdown-in-Git, and back again. The thing that finally stuck is Obsidian, not because it’s perfect but because it’s the only one that gets the trade-off right: local files I own, a plugin model that doesn’t lock me in, and a UI I don’t have to fight. Everything else I do — the local vault, the enterprise layer, the small Go CLI for the gaps — is built around that.

The local setup

Personal vault in ~/Documents/obsidian/personal. Plain Markdown files under the hood, .obsidian/ folder for config, synced between laptop and phone via iCloud Drive (Obsidian Mobile opens it as a vault directly — no separate app, no “sync required” nag screen).

~/Documents/obsidian/personal
├── daily
│   └── 2026-06-09.md
├── 1-projects
├── 2-areas
│   ├── engineering
│   ├── writing
│   └── home
├── 3-resources
│   └── go
├── 4-archives
└── templates
    ├── daily.md
    ├── meeting.md
    └── project.md

PARA, again, with a daily/ directory and a templates/ directory that the Templater plugin reads. Three community plugins do most of the work:

  • Templater — variable substitution when creating a new note from a template (date, filename, etc.).
  • Dataview — SQL-like queries over YAML frontmatter, so I can list every note tagged retro or every project in 1-projects/.
  • Calendar — opens the daily note for any date, gives me a heatmap of writing days.

That’s it. No theme beyond the default. No CSS hacks. The point of a second brain is that it disappears.

The enterprise layer

Obsidian for personal notes is the easy case. The harder one is sharing a second brain across a team without turning it into a wiki nobody reads.

The shape that worked for me: one shared vault per squad, Git-backed (working copies in ~/Documents/obsidian/<squad> on each laptop, pushed to a private GitHub repo), with the .obsidian/ folder committed and plugins pinned. Conflict resolution is the same as any other code review: PRs for non-trivial changes, direct pushes for typo fixes.

On top of the shared vault:

  • Slack as the entry point. A slash command (/obsidian) opens a draft daily note in Obsidian from a Slack thread. It’s a 30-line Slack app and a 50-line Go webhook.
  • Linear as the source of truth for project state. A small Dataview query in the vault renders the open tickets for the current quarter inline in the project note.
  • GitHub as the audit log. Every change to the team vault is a commit with an author, a diff, and a review trail. The same property that makes Git good for code makes it good for institutional memory.

The shared vault doesn’t try to replace the wiki. It replaces the “knowledge that lives in someone’s head and surfaces once every two months in a meeting” problem. Anything stable enough to write down as a page belongs in the wiki. Anything still moving belongs in the vault.

The CLI for the gaps

Three commands, written in a weekend, fill what Obsidian and the plugins don’t:

notes new "Title here"     # creates a stub in 0-inbox, applies the right template
notes review              # walks the inbox, prompts to triage
notes today               # opens today's daily note

Same shape as the last time I wrote about notes tooling, but the implementation is different now: the files are inside an Obsidian vault, not a bare directory, and the CLI shells out to obsidian:// URIs to open notes in the desktop app. The point isn’t the CLI — it’s that when a tool is local and scriptable, adding a feature is a 200-line afternoon rather than a vendor negotiation.

What I gave up

  • Longevity, in a narrow sense. Plain text in Git is a 50-year format. Obsidian files are plain text in Git, but the meaning of a Dataview query is tied to the plugin’s lifetime. If the community moves on, the queries go with it. I keep the heavy queries small and isolated so a rewrite is cheap.
  • A free ride for mobile sync. Obsidian is free on every platform. Obsidian Sync is paid. I use iCloud Drive for the personal vault and accept the trade-off; for the squad vault, the cost is part of the team’s tooling budget, the same as Notion or Linear.
  • A single source of truth for everything. The wiki has the stable facts. The vault has the moving ones. The CLI has the automatable ones. Nothing tries to be all three.

What I gained

  • Backlinks, for real this time. The graph view in Obsidian is the thing I kept trying to replace. I don’t need to replace it. It works.
  • Mobile editing that doesn’t suck. Obsidian Mobile is the same app as the desktop, scaled down. The friction of editing a note on a phone and having it appear on the laptop a second later is gone.
  • A plugin model I can extend. Templater and Dataview cover 80% of what I want. The remaining 20% is a small CLI and a few community plugins that I trust.
  • One tool for personal and team. The shape is the same in both cases: local files, Git-backed, a few plugins, a CLI for the gaps. The personal vault is the prototype; the squad vault is the same shape with a different folder.

← Back to all writing