My Note-Taking System: From Chaos to Second Brain

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
  • # Title as 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.