Building a second brain with AI and Obsidian

I've been building software since before I could legally drink. I've had a BBC Micro, an Atari ST, a booking app I wrote from scratch for my A-levels, and an Inventories Database I built on my year 12 placement that was somehow running in a health authority. I've written a book about responsive images. I've shipped more tools than I can remember.

And for most of that time, my second brain was a whiteboard.

Not metaphorically. An actual whiteboard. In my office. With things on it.

It worked, in the way that a whiteboard always works — always visible, zero friction, spatially organised. The problem is that it doesn't travel. It doesn't sync to my phone. It gets wiped by accident. And it has absolutely no memory of why I made the decisions written on it.

So in early 2026, I decided to build a proper second brain. Not buy one — build one. This is what happened.


The starting point: a graveyard and a migration

The first problem wasn't choosing a tool. The first problem was that a decade of thinking was scattered across Apple Notes, Evernote, various notebooks, P60s I'd photographed on my phone, and a Moleskine I wrote in on a plane in 2019 that contains a visual map of my entire life.

None of it was connected. Most of it was unsearchable. Some of it — the Evernote archive in particular — was genuinely at risk of being lost.

So step one was archaeology.

I migrated everything to Obsidian — a local, Markdown-based notes app that stores everything as plain text files on your own machine. No subscription lock-in, no proprietary format, no company that might go under and take your notes with it. Just files. The Evernote export alone was about 600 notes. Apple Notes was another few hundred. Old photographs of handwritten diaries. Scanned notebooks. The works.

The migration itself was mechanical — export, convert, import. The harder part was making any of it useful.


AI as the triage layer

Here's the thing about personal knowledge management systems: most of them fail not because the tool is bad, but because of the friction of deciding where something goes. You capture a thought, and then you stall — which folder? which tag? is this a task or a note or a decision? — and eventually you stop capturing altogether.

AI changes that equation. Instead of me being the filing clerk, AI becomes the triage layer. I dump things in, and the system routes them to the right place. The cognitive overhead of filing disappears.

This matters more than it sounds. Remove the decision about where to put something, remove the friction. Remove the friction, and the system actually gets used.


The inbox: two ways in, one way out

I've stopped trying to find a single perfect capture method. There are two valid modes, and I use both.

Mode one: tell AI directly. Mid-conversation, mid-work session — "make a note that we chose Cloudflare Workers over Vercel Edge for this project because of cost at scale" — and it writes a dated entry into the Decision Log for that project. Done. No context switch. No filing.

Mode two: type directly into Obsidian. On my phone, at a desk, in a meeting, on a walk. There's a file called Inbox.md that I treat as a dump. No structure required. No format. Just text. When I next kick off a triage, the AI reads the inbox, routes everything to the right place, and clears it.

The routing logic is simple but complete:

  • A decision with reasoning → Decision Log in the relevant project file
  • A system-level decision (why the vault is structured the way it is) → OS-decisions.md
  • A time-sensitive task → the top of the Home dashboard
  • A throwaway task → actioned and discarded, no permanent record
  • Anything unroutable → flagged, left for me to handle

The OS decisions log: the layer below everything

This one came out of a conversation about why systems fail over time. They fail because the reasoning behind them gets lost. You end up with a structure you don't understand, conventions you can't explain, and a creeping sense that you should probably rebuild the whole thing — except you don't know what to keep.

So I created a file called _system/OS-decisions.md. It's the operating system layer of the vault. Every decision about the system itself gets a dated entry there:

### 2026-03-07  YYYY-MM-DD file naming
Decision: All files use YYYY-MM-DD meaningful name format  no week numbers
Why: Week numbers are opaque when scanning. Dates + names are self-explanatory and sort correctly
Alternatives considered: W-number format (used briefly), plain titles without dates

Future me — and any future AI session with no memory of how any of this was built — can open that file and understand exactly why the vault is the way it is. Every choice is auditable. The system has a memory.


The dashboard: kill the queries, write the file

My first attempt at a dashboard used Obsidian's Dataview plugin — a query language that can pull tasks, links, and metadata from across your vault. It's powerful. It also mostly returned nothing, because my tasks are undated and freeform and don't use the conventions Dataview expects.

The fix was to stop fighting the tool and change the approach entirely.

The dashboard is now a file called 00-Now/Home.md. AI writes it. I edit it. There are no queries. It has three sections:

⏰ Time-sensitive — things with a real deadline this week, across all areas of life. Work, family, house, financial, travel — all in one place.

🎯 Active projects — one line per active project, showing exactly where I left off and the single next action. Not a task list. Not a Kanban board. Just the one thing I need to do next to keep each project moving.

🧪 Try / 📖 Read — a curated shortlist of things to actually try and things worth focused reading, based on what's surfaced in the industry that week.

The key decision: the dashboard is a file that gets updated, not a query that gets run. Nobody has to manually maintain it. The system does it.


The Superwhisper problem: leading spaces and the Linter fix

Small things matter. This one cost me twenty minutes but is worth mentioning because I suspect I'm not the only one who'll hit it.

I'm moving towards voice capture as a primary input mode. Superwhisper is excellent — far better transcription than the iOS native dictation, and with a Shortcuts integration you can route transcribed text directly into your Obsidian inbox. One tap, speak, done.

Except: Superwhisper was adding a leading space before each transcription. One space. Invisible. Completely harmless in isolation — but if you're appending multiple voice captures to the same file, Obsidian's Markdown renderer treats leading spaces as code blocks. Your inbox starts looking like a terminal. Each new entry is indented one level deeper than the last. It's subtle and it's maddening.

The fix: Obsidian Linter plugin, with Remove Leading Whitespace turned on. Linter runs on save — or you can trigger it manually — and strips the leading space before Obsidian processes the Markdown. Problem gone.

It's a small thing. But the small things are the ones that make you give up on a system.


What the system actually does

Let me be concrete about what this looks like in practice.

On Monday morning I sit down and kick off my weekly triage. AI spends a few minutes processing signals — industry news, things I've bookmarked, my inbox. It writes an update into my vault, refreshes my dashboard with the week's priorities, and handles anything I dropped in over the weekend.

During the week, I capture in two modes. If I'm at a Mac, I tell AI directly. If I'm on my phone, I open Obsidian mobile and dump into Inbox.md. Neither requires a decision about where to file it.

When I context-switch — say, from Vercel work to a side project — I open 00-Now/Home.md and see exactly where I left off. One line per project. The next action, not a long list of tasks. If I made an architecture decision last week, it's in the project's Decision Log with a date and a reason.

When a new AI session starts with no memory of any of this, it reads _system/OS-decisions.md and is immediately up to speed on why the system is structured the way it is. The context isn't in my head. It's in the vault.


What's still unfinished

The voice-to-Obsidian Shortcuts integration works but hasn't become habitual yet. Superwhisper on Mac is excellent; the phone workflow is still a bit more friction than I'd like.

And the decision logs in most of my project files are empty. The structure is there. The habit of filling them in is not yet. That's the next six weeks of work.


The thing underneath all of this

I've tried a lot of productivity systems. Most of them have one failure mode in common: they optimise for capture but not for retrieval. You end up with a very thorough record of everything you've ever thought, and no way to find the thing you're looking for when you need it.

What I wanted was something different. Not a better filing system. A better thinking system. A place where the context from last week is available this week, where decisions don't evaporate when the conversation ends, where the reasoning behind choices is preserved not for posterity but for usefulness.

The whiteboard worked because it was always visible. It failed because it had no memory.

This system is trying to be both. Always visible — the dashboard, one file, always open. And persistent — the decision logs, the OS notes, the dated entries that accumulate into something you can audit.

AI is the triage layer. Obsidian is the filing cabinet. I'm still the one who decides what matters.

That's probably how it should work.

Building a second brain with AI and Obsidian