After trying (and often failing) to maintain a knowledge base or even keep track of daily notes, I realized the problem wasn't the tools, it was the system.
At one point, I couldn't even find a note I had written just the day before.
So I decided to rebuild from the ground up.
In this post, I'll walk you through how I designed my current knowledge base system. A setup that's simple, effective, and sustainable. It's made up of just a few essential components.
The Essential components#
1) Folder Structure: Just Take Note#
1.1) Flat Structure#
notes/
├── tech-behind-this-site/
│ └── note.md
├── parsing-mdx-to-html/
│ └── note.md
└── customize-erpnext/
└── note.md
Forget complex hierarchies. I use a flat folder structure to:
- Easily capture random thoughts or ideas, even when they don't fit neatly into a category
- Avoid decision fatigue, no need to figure out which folder something belongs in
- Embrace the non-hierarchical nature of most knowledge
This keeps things fast, frictionless, and flexible.
1.2) Separation of Draft and Publish#
notes/
├── draft/
│ └── useful-things/
│ └── note.md
└── publish/
└── the-design-of-this-knowledge-base/
└── note.md
Every note starts in a /draft/
folder.
This makes it easy to:
- Capture rough ideas without worrying about polish
- Revisit and expand on thoughts when time allows
- Promote only the most useful content to the public
/published/
folder
Not every note deserves to be published—and that's okay.
1.3) Assets Live Within the Note Folder#
Each note has its own folder, including an /assets/
subfolder to store any images or files.
This way, assets stay organized and deleting or moving a note doesn't leave behind orphaned files.
notes/
└── draft/
└── useful-react-pattern/
├── assets/
│ ├── react_pattern_img.jpg
│ └── another_pattern_img.jpg
└── note.md
2) Pinned Posts: Creating Entry Points#
notes/
└── publish/
├── _pin001_getting-start-with-erpnext/
│ └── note.md
└── customize-form-in-erpnext/
└── note.md
As your notes grow, certain topics will start to take shape. When that happens, create a pinned post, a summary or guide that links to other related notes.
This becomes the entry point for anyone (including your future self) to dive into that subject.
3) Tags: Organizing the Chaos#
With the chaos of flat folder system, tags bring an order.
- Tags are used to group related ideas/topics
- They can be hierarchical, unlike the folder structure
Tags add a second layer of structure, without adding complexity to the file system.
Final Structure#
notes/
├── draft/
│ ├── useful-react-pattern/
│ │ ├── assets/
│ │ │ ├── react_pattern_img.jpg
│ │ │ └── another_pattern_img.jpg
│ │ └── note.md
│ └── another-useful-things/
│ └── note.md
├── publish/
│ ├── _pin001_getting-start-with-erpnext/
│ │ └── note.md
│ └── the-design-of-this-knowledge-base/
│ └── note.md
└── tags/
├── business-modules/
│ ├── tag.md
│ ├── accounting/
│ │ └── tag.md
│ ├── selling/
│ │ └── tag.md
│ └── stock/
│ └── tag.md
├── programming/
│ └── tag.md
└── software/
└── tag.md
Summary#
This simple system helps me stay consistent and creative. It embraces how humans actually think: messy, nonlinear, and often spontaneous.
If you've struggled with traditional note-taking systems, try simplifying.
Start with folders, add some tagging, and build from there.