Building a Personal Knowledge System with Obsidian
Years of context switching have taken a toll on my concentration. My solution has been to write things down—during meetings, while working through problems, when learning something new. The habit stuck, but finding a home for all these notes proved harder than I expected. I’ve tried various tools over the years, and Obsidian has been by far my favourite. I would prefer something open source, but for my workflow, nothing else comes close.
As always, I’m sharing what works for me. Might not be what works for you. Take what you want, discard the rest.
Why Obsidian
- Plain markdown files — notes are
.mdfiles in normal folders, editable with any text editor - Portable — if I stop using Obsidian, the notes remain usable without conversion
- Local-first — no account required, no server dependency, I choose how to sync (or not)
- VIM mode — I’ve been trying to get more familiar with VIM motions, and Obsidian’s built-in VIM mode lets me practice while taking notes. A bit clunky, but it works.
My one complaint: the search is not the best. There are plugins for improving it like omnisearch, but they are also not perfect.
Plugins
I like to keep plugins at a minimum. I only install them when they solve a specific problem, or improve my workflow.
I only install plugins when I hit a concrete problem, not because they look cool.
| Plugin | Why I Use It |
|---|---|
| Dataview | Query notes like a database—list meetings, tasks, or notes by tag/date |
| Templater | Templates with variables for recurring note types (daily notes, meetings) |
| Advanced Tables | Makes markdown table editing tolerable |
| Excalidraw | Quick sketches of systems, workflows, or UI ideas |
| Natural Language Dates | Convert “next Tuesday” into actual dates |
| Waypoint | Auto-generated table of contents per folder |
| Highlightr | Color-coded text highlighting |
| Iconic | Custom icons for files/folders |
The 3 plugins that makes a huge difference are Dataview, Templater, and **Natural Language Dates.
Obsidian has a built-in templating system, but Templater allows for more advanced features like variables, loops, and conditionals.
Natural Language Dates is a simple plugin that allows me to write @today, @tomorrow, @next week, etc. and transform them into actual dates.
But by far, Dataview is my favourite.
Dataview
Dataview is a powerful plugin that allows you to query your notes like a database. It can be used to list meetings, tasks, or notes by tag/date. It also supports advanced features like filtering, sorting, and grouping.
For example, you can list all meetings for the current month:
LIST file.link WHERE file.name = "Meeting Notes"
SORT date DESCKeeping It Simple
Organization
I use separate vaults for work, study/learning, and personal. The work vault is the most structured—here’s its folder layout:
000 - Obsidian META # Vault configuration, CSS snippets
001 - Templates # All note templates
002 - Inbox # Quick capture, unsorted notes
003-006 # Domain-specific areas (glossaries, culture docs, career)
007 - Entities # People, teams, clients
008 - Meetings # Meeting notes
009 - Projects # Project-specific notes
010 - Tasks # Task tracking
011 - Research # Exploration and research notes
013 - Incidents # Incident reports and postmortems
014 - Software Architecture # Architecture decisions and diagrams
015 - Recurring Logs # Daily, monthly, yearly logs (organized by year/month)
016 - Automation # Scripts and automation docs
017 - Diagrams # Excalidraw and other visual assets
022 - Cheatsheet # Quick reference notes
023 - Snippets # Code and text snippets
100 - Archive # Old or completed itemsI like to use numbered prefixes to keep folders in a stable order. Some plugins let you drag folders into position, but I prefer explicit numbers. it’s a simpler solution and they’ll survive if I ever migrate to another system. The gaps exist because I’ve deleted folders or left room for future categories. Quick captures go to Inbox and get sorted during periodic reviews.
Entities
The Entities folder holds notes for people, teams, organizations, and projects. This is an idea I came up with and has proven to be super useful. When I link [[Jane Doe]] in a meeting note, a Dataview query in her entity note automatically gathers all mentions, giving me a full history before any conversation.
Daily Workflow
Each workday revolves around a daily note with these sections:
| Section | Purpose |
|---|---|
| Priorities | What I intend to move forward today |
| Meetings | Notes or links, pulled via Dataview |
| Learnings | Discoveries, decisions, TILs |
| Reflections | End-of-day review |
Quick notes start in the daily note. If something becomes a long-term topic, I promote it to its own note. Monthly, I run Dataview queries to surface patterns: which projects took time, what kept getting postponed.
My templates are in this GitHub Gist.
Keeping It Simple
If a convention, plugin, or folder structure fails that test, I change or remove it.
Conventions stay stable. Dataview relies on predictable structure—consistent tags, field names, entity naming. Changing conventions every few weeks breaks queries.
Accept some mess. Not every note needs to be polished. Some are scratchpads. Some links will be missing. That’s fine—I clean things up when it becomes useful, not as a constant project.
Plain text lasts. .md files are widely supported, easy to back up, and outlive any tool.