Building an Obsidian Vault That Actually Works

Updated 2026-03-04

Obsidian is a powerful note-taking tool, but a new vault is just an empty folder with a plugin manager. The default setup teaches you nothing about how to organize your thinking. Here’s a structure and workflow that survives contact with real use.

The Core Principle

Don’t organize by topic. Organize by action.

Topic-based organization — Programming/, Ideas/, Recipes/ — sounds sensible but breaks down because:

  • A note can belong to multiple topics
  • You’ll spend time debating where to put things instead of writing
  • The hierarchy becomes a cage

Instead, organize by where a note is in its lifecycle.


Folder Structure

1
2
3
4
5
6
7
8
9
vault/
├── 00-inbox/ # Capture everything here first
├── 10-notes/ # Processed, permanent notes
│ ├── concepts/ # Atomic ideas, one per note
│ ├── references/ # Book notes, article summaries
│ └── projects/ # Project-specific working notes
├── 20-journal/ # Daily notes (YYYY-MM-DD.md)
├── 30-resources/ # Templates, attachments, assets
└── 90-archive/ # Dormant notes that aren't deleted

The numbers force a consistent sort order in the file explorer. Adjust the categories to match your actual work — don’t adopt someone else’s system wholesale.


The Inbox Is Mandatory

Every capture goes to 00-inbox/ first, without judgment. The inbox is not where notes live — it’s a transit zone.

Create an inbox note:

1
2
3
4
5
6
7
8
---
title: Capture
tags: [inbox]
---

- [ ] Interesting idea about CSS container queries
- [ ] Follow up on the reflog article
- [ ] Book recommendation: The Art of Unix Programming

Process the inbox weekly. For each item: turn it into a proper note, link it to something existing, or delete it. If processing feels heavy, your notes are too complex — write shorter, more atomic notes.


Atomic Notes

An atomic note contains exactly one idea. Not “JavaScript” but “JavaScript closures capture variables by reference, not by value.” The title is a complete sentence or clear claim, not a category.

1
2
3
4
5
6
7
8
9
10
11
12
13
---
title: Git commits are snapshots, not diffs
tags: [git, version-control]
created: 2025-02-05
---

A Git commit stores a pointer to a complete tree object — the entire state
of the repository at that moment. Git computes diffs on-demand by comparing
two tree objects. This is why rebasing creates new commit hashes.

Related:
- [[Git object model]]
- [[Why rebasing rewrites history]]

The “Related” section at the bottom builds the graph that makes Obsidian’s graph view useful.


Daily Notes

Daily notes are the connective tissue. They don’t need to be essays — a daily note might just be:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 2025-02-15

## Done
- Finished the Obsidian workflow post
- Fixed sidebar overflow bug in Vaultex

## Notes
- [[CSS container queries]] — discovered `cqi` unit, need to write this up
- [[Git internals]] — the reflog section could go deeper

## Tomorrow
- [ ] Write up the `cqi` note
- [ ] Review open PRs

Use templates to pre-fill the structure so you’re never staring at a blank page:

1
2
3
4
5
6
7
8
9
10
11
12
---
title: {{date:YYYY-MM-DD}}
tags: [journal]
---

# {{date:YYYY-MM-DD}}

## Done

## Notes

## Tomorrow

Linking Strategy

Link liberally, but link with intention. A link should mean “this concept is directly relevant, and I may want to navigate between these notes.”

  • Link from a concept note to its definition
  • Link from a daily note to a concept it touched
  • Link from a project note to all relevant reference material

Don’t link just because two things share a word. The graph view is only useful if the links have semantic meaning.


Method Use For
Links [[note]] Relationships between ideas
Tags #topic Status, type, or broad category
Properties (YAML) Machine-readable metadata
1
2
3
4
5
6
7
---
title: CSS Container Queries
tags: [css, layout, modern-web]
status: draft
source: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_container_queries
created: 2025-02-15
---

Use status as a tag or property to know which notes are drafts, in-progress, or evergreen. Filter by status to find notes that need attention.


Plugins Worth Installing

These are the plugins that pull their weight without adding complexity:

Plugin Purpose
Templater Smarter templates with JavaScript logic
Dataview Query your vault like a database
Calendar Navigate daily notes with a calendar sidebar
Linter Auto-format front matter and whitespace
Git Auto-commit and push your vault as a backup

Avoid plugin bloat. Every plugin is a potential sync conflict, a breaking update, and a habit to maintain. Only install what you use every week.


Dataview Queries

Dataview lets you query front matter and file metadata:

1
2
3
4
5
6
7
```dataview
TABLE created, status, tags
FROM "10-notes/concepts"
WHERE status != "archive"
SORT created DESC
LIMIT 20
```

A “recently updated notes” query for a dashboard:

1
2
3
4
5
6
```dataview
LIST
FROM ""
WHERE file.mtime >= date(today) - dur(7 days)
SORT file.mtime DESC
```

The Review Loop

A vault without review accumulates digital clutter. Weekly:

  • Process the inbox
  • Check the daily notes from the past week
  • Promote any notes worth expanding to proper concept notes

Monthly:

  • Review notes tagged draft or in-progress
  • Archive or delete notes you haven’t visited in 3+ months
  • Trim the graph — remove links that no longer make sense

The goal isn’t to have a perfect vault. The goal is to have a vault that helps you think — and that means it needs to be small enough to navigate, not large enough to impress.