Repository navigation
v0.3.0 — The Great Filing
The Great Filing: deez-notes v0.3.0
Chapter XXV: The Avalanche
Fourteen notes. That's how many the creator had when he built deez-notes. A handful of Markdown files about Rust lifetimes, a shopping list, and something titled "existential_dread.md" that he swore was about error handling.
Fourteen notes. Clean. Manageable. A single flat list, sorted by date, searchable by fuzzy matching. Perfection.
Then he started using the tool.
Three weeks later, the list had 87 notes. Meeting notes. Project ideas. Recipes (because apparently deez-notes was now a cookbook). Half-finished blog posts. Quick reminders. Config snippets. Documentation drafts. And somewhere in that sea of Markdown, existential_dread.md had become genuinely about existential dread.
The creator opened deez-notes. Stared at the flat list. Scrolled. Scrolled more. Tried the search — typed "deploy", got four results: deploy_checklist.md, deploy_friday_disaster.md, deploy_rollback_plan.md, and deployment_cake_recipe.md (don't ask).
"I built a filing cabinet," the creator whispered, "with one drawer."
He looked at the fuzzy search bar. It looked back, helpfully. Defiantly. As if to say: "I'm doing my best, man."
"You are," the creator admitted. "But I need drawers."
Chapter XXVI: The Confession
xX_DarkTerminal_Xx didn't file a bug this time. Nobody did. This was worse.
This was the creator realizing that the tool he built for himself was becoming unusable. Not because it was broken — because it was flat. Seventeen notes about Rust and seventeen notes about cooking and seventeen notes about work all coexisted in a single scrollable abyss.
Every Unix user knows this moment. It's the moment you stop putting everything in ~/Documents and create subdirectories. The moment ls output scrolls past your terminal buffer. The moment you accept that a flat namespace doesn't scale.
"If I just add one more sorting option—" the creator started.
He stopped. He knew that voice. That was the voice of a developer negotiating with reality. The voice that says "we can optimize the query" instead of "we need an index." The voice that says "just add a filter" instead of "we need categories."
No. The answer wasn't better search. The answer was folders.
Chapter XXVII: The Architecture of Drawers
The creator had a choice.
Option A: Virtual folders. Tags. Metadata. A folder: field in the YAML frontmatter. Pure. Elegant. A lie — because the notes would still live in one flat directory, and every other tool on the system (ls, find, tree) would see chaos.
Option B: Real directories. Actual filesystem folders. Notes live where they belong. Move a note? mv. List a folder? ls. Delete a folder? rm -rf (carefully). Every Unix tool works because the truth is in the filesystem, not in metadata that only one app can read.
The creator chose Option B in under three seconds.
"If it doesn't work with ls," he muttered, "it doesn't work."
Chapter XXVIII: The Great Filing
917 lines of code later, deez-notes could think in hierarchies:
~/notes/
├── work/
│ ├── meetings/
│ │ ├── standup_2026-04-07.md
│ │ └── retro_q1.md
│ └── deploy_checklist.md
├── cooking/
│ ├── deployment_cake_recipe.md
│ └── pasta_carbonara.md
├── rust/
│ ├── lifetimes.md
│ └── existential_dread.md
└── shopping_list.md
Navigation: The side panel now shows the folder tree. Press Enter to dive into a folder. Press Backspace to go up. Press / to search within the current folder.
Moving notes: Select a note, press m, pick a destination folder. The note moves on the filesystem. No metadata. No database. Just rename().
Creating folders: Press F to create a new folder (or subfolder). It's a real mkdir under the hood.
Deleting folders: Select an empty folder, press d. Non-empty folders refuse to die — because rm -rf should be a conscious decision, not a keybinding accident.
The side panel, once a flat list of note titles, now shows breadcrumbs:
📁 work > meetings
And the status bar knows where you are:
[work/meetings] 2 notes | sorted by date
Chapter XXIX: The Persistence of Memory
While building the folder system, the creator noticed something that had been annoying him for weeks: every time he launched deez-notes, it forgot his preferences.
Set the theme to gruvbox? Gone on restart. Sort by title instead of date? Reset. It was like the tool had amnesia.
So he added config persistence. Theme and sort preferences now survive across restarts:
[general]
theme = "gruvbox"
sort_by = "title"
sort_order = "asc"Change the theme with t? Saved. Change the sort with s? Saved. Close and reopen? Everything's exactly where you left it.
Small fix. Big quality of life.
Chapter XXX: The Satisfied Creator
For the first time in the history of deez-notes releases, xX_DarkTerminal_Xx had nothing to do with this one.
No angry DMs. No passive-aggressive GitHub issues. No demands for configurability. Just the creator, alone with his 87 notes, realizing he needed to organize his own mess.
And somewhere, in a Discord server the creator didn't know about, xX_DarkTerminal_Xx typed:
"Folders? FOLDERS?! I've been asking for this since— wait. I haven't actually asked for this. He just... did it? On his own?"
"...Character development."
What Changed
| Component | Before | After |
|---|---|---|
| Note organization | Flat list, single directory | Real directory-based folder tree |
| Side panel | Flat note list | Hierarchical folder + note browser |
| Navigation | Scroll + search only | Folder drill-down (Enter/Backspace) |
| Move notes | Not possible | m to move to any folder |
| Create folders | Not possible | F to create folder/subfolder |
| Delete folders | Not possible | d on empty folders |
| Status bar | Note count only | Shows current path + note count |
| Theme persistence | Reset on restart | Saved to config automatically |
| Sort persistence | Reset on restart | Saved to config automatically |
| Files changed | — | 12 files, +917 lines |
New Keybindings
| Key | Action |
|---|---|
Enter |
Open folder / Open note |
Backspace |
Go up one folder level |
F |
Create new folder |
m |
Move note to folder |
d |
Delete empty folder |
Configuration
Theme and sort preferences are now automatically persisted in your config file (~/.config/deez-notes/config.toml):
[general]
editor = "nvim"
pager = "mcat"
pager_args = ["--paging", "always"]
theme = "gruvbox"
sort_by = "date"
sort_order = "desc"Who Should Update
- Everyone with more than 20 notes — your sanity will thank you
- Anyone who got tired of re-setting their theme every launch — it sticks now
- The creator himself — because
deployment_cake_recipe.mdis finally in the right folder
Updating
Linux:
curl -L https://github.com/BaLaurent/deez-notes/releases/latest/download/deez-notes-linux-amd64 -o deez-notes
chmod +x deez-notes
sudo mv deez-notes /usr/bin/deez-notesWindows:
Download deez-notes-windows-amd64.exe from the releases page and replace your existing binary.
From source:
cd deez-notes && git pull && cargo install --path .Full Changelog: v0.2.3...v0.3.0