
My Note-Taking System: From Chaos to Second Brain
April 17, 2026
TL;DR: I built a note-taking system using Obsidian as the data layer and Neovim as the primary editor. It’s a plain text, Markdown-based setup that avoids proprietary lock-in while enabling powerful, structured thinking. This post explains the why and how.
Why another note-taking system?
Most note-taking tools optimize for capturing text. Very few optimize for thinking over time.
My requirements were simple, but strict:
- notes for ideas, architecture, documentation, planning, and research
- primary interface: Neovim
- secondary interface: phone
- plain text, no lock-in
- scalable structure
- strict formatting (so notes age well)
That combination rules out most popular tools immediately.
What I ended up with is not “an app”, but a system:
- Obsidian as the data layer
- Neovim as the main interface
- Markdown as the storage format
- Git (optionally) as history
This post explains why and how.
What Obsidian really is (and why it matters)
Obsidian is often described as a “note-taking app with a graph”.
That’s underselling it.
At its core, Obsidian is:
- a folder of Markdown files
- with backlinks
- and a powerful mobile client
There is no database. There is no proprietary format.
That means:
- I can edit everything in Neovim
- I can search with ripgrep
- I can version notes with Git
- I can read and capture ideas on my phone
Obsidian becomes the memory, not the editor.
Why Neovim as the primary interface
Neovim wins for the same reason it wins for code:
- speed
- composability
- refactoring at scale
- zero friction for text-heavy work
Architecture notes, ADRs, research summaries - these behave more like code than prose. They get renamed, split, linked, and revisited.
Neovim gives me:
- structural editing
- repeatable workflows
- muscle memory instead of UI hunting
Obsidian GUI is great for reading and browsing. Neovim is unbeatable for thinking and writing.
One vault, two interfaces
There is exactly one source of truth:
~/second-brain
Neovim and Obsidian both operate on the same vault.
- Desktop: Neovim (creation, refactoring, structuring)
- Phone: Obsidian Mobile (capture, review, reading)
No sync hacks. No exports. No duplication.
The System in Practice
Folder structure (minimal, intentional)
second-brain/
├── 00-inbox/
├── 01-notes/
├── 02-projects/
├── 03-architecture/
├── 04-research/
├── 05-docs/
├── templates/
└── assets/
Folders are gravity wells, not strict categories.
The real structure comes from links.
Linking strategy (the important part)
Every meaningful note links to at least one other note.
In Markdown:
[[gitops-secrets]]
[[k3s-architecture]]
This creates:
- backlinks
- context
- a navigable knowledge graph
The rule is simple:
If two ideas are related, they should be linked - even loosely.
The graph is not the goal. The graph is the side effect of thinking clearly.
Templates: why they look “strict”
Every note starts from a template.
Not because I like ceremony - but because structure prevents entropy.
All templates follow the same rules:
- frontmatter first
# Titleas the first heading (markdownlint md041)- no extra blank lines
- no trailing whitespace
- list blocks always separated properly
This makes notes:
- linter-safe
- easy to export (Hugo, Pandoc, PDF)
- consistent after months or years
Example: note.md
---
type: note
status: draft
tags: []
created: { { date } }
---
# {{title}}
## Idea
TODO
## Context
TODO
## Links
-
The placeholders are intentional:
- they guide writing
- they keep markdownlint happy
- they disappear naturally as the note matures
Inbox as a buffer, not storage
The inbox is allowed to be messy.
Everything else is not.
Once a day (or every few days):
- open
00-inbox - convert entries into real notes
- link them
- delete the rest
Inbox is a buffer, not a graveyard.
Why markdownlint is non-negotiable
Notes age.
Bad formatting ages badly.
markdownlint enforces:
- readable diffs
- predictable structure
- clean exports
- long-term maintainability
This is the same reason we format code.
Notes are code for future thinking.
The result
What I ended with is:
- a second brain that scales
- a system that works equally well in a terminal and on a phone
- notes that can be published, refactored, or archived without pain
- zero lock-in
Most importantly:
The system disappears while I’m thinking.
That’s the real goal.
What’s next
Natural extensions of this setup:
- daily technical log
- weekly review notes
- publishing directly from the vault to Hugo
- using the vault as input for search or RAG later on
But none of that works without a clean foundation.
This one does.