Why I Built rbnotes: A Vim-Style Note Editor
I take a lot of notes. Architecture decisions, half formed ideas about a saga's compensating actions, todos I'd otherwise forget in an hour. For years my notes app was just whatever was fastest to open, which meant it was almost never the one with any real organization. And whatever app had good organization was almost never fast to actually write in. I kept switching tools instead of fixing the real problem, which is that every note editor I tried made me choose between speed and structure. rbnotes is what happens when I stopped accepting that trade off.
The mouse is the bottleneck, not the app
I spend most of my day in a terminal and in editors with Vim keybindings, for the same reason a lot of engineers do. Once modal editing becomes muscle memory, reaching for a mouse to click into a text field starts to feel like a context switch you never asked for. Most notes apps are built mouse first. Click to create a note, click to format text, click to find something in a sidebar. Every one of those clicks is a small tax on the actual thought you were trying to get down.
rbnotes is keyboard first from the ground up, not keyboard accessible as something bolted on later. Normal mode for moving around, insert mode for writing, visual mode for selecting and restructuring. It's the same mental model I already use for code, just applied to notes, so there's basically zero relearning involved.
A command line instead of a menu
Instead of a settings menu and a toolbar, rbnotes has a command line, the same colon prefixed pattern Vim users already know by heart. Create a note, jump to one by name, search, archive something. All of it typed, all a few keystrokes away, none of it requiring you to hunt through a nested menu trying to remember where a feature lives. If you can type faster than you can point and click, this is just faster, full stop.
Minimal on purpose
The easiest way to kill a notes habit is to open the app and get distracted by the app itself. A sidebar full of folders you have to maintain, a dozen formatting options you didn't need for a quick thought. The writing surface in rbnotes is deliberately plain. No tag hierarchy to keep up with, no template picker standing between you and the first keystroke. The constraint is the feature. Fewer decisions between having a thought and getting it written down means more thoughts actually make it onto the page.
What building it actually taught me
The hard part wasn't the modal editing. Vim's mode model is well documented and porting the muscle memory over was mostly just a matter of care. The hard part was resisting feature creep. Every notes app eventually grows a database view, a graph view, a kanban board, because those are all reasonable things to want sometimes. rbnotes stays useful precisely because it says no to almost all of that, and stays fast at the one thing it's actually for, which is getting a thought out of your head with the least amount of friction possible.
It's still evolving. Take a look at note.rbmo.xyz if you want to see where it's at.