Deep in my dev archive, in a folder that has been copied from disk to disk for thirty years, sits a Visual Basic project called InfoStore. The version block in the project file reads "Free form data base for Windows 95, Copyright 1998 Daniel Hofman." I dug it out this week, and I want to tell you about it, partly because the design aged better than I ever expected, and partly because not releasing it is one of those decisions I still think about.
The problem was the usual one. Notes everywhere: stray text files and paper taped to the monitor. I wanted one place to keep all of it, organized in a tree like the file system I already understood. So I built one. Visual Basic 4 at first, then carried into VB 5. Two panes: a folder tree on the left, a rich text editor on the right. You clicked a note in the tree, it opened on the right, and when you clicked the next one the app saved the last one for you on the way out.
That's it, captured in 1997. The tree on the left is my programming knowledge base of the era: Visual Basic, C++, SQL, Win32. The note on screen is VB code for dragging a resize rectangle, saved as rich text with its own colors. Keep this picture in mind for a few paragraphs.
One note, one file
Here is the part I got right, and it was a deliberate decision, not luck. Note content never went into a database. Every single note was its own file on disk, in a Data folder next to the app, written as plain RTF.
There was a small Access database in the mix, but it only held the skeleton: the tree structure, note titles, creation dates, and a counter that handed out file names. The words themselves lived in the files. If the database ever died, your notes were still sitting there as ordinary documents any word processor could open.
And why RTF? Because it was the closest thing to a universal rich text format at the time. Word opened it, WordPad opened it, everything opened it. I remember thinking that whatever I wrote should still be readable in twenty years, no matter what happened to my app or to Microsoft. A proprietary format traps your notes; a folder of RTF files traps nothing.
That bet paid off with interest. A few days ago I pointed a Linux box at that Data folder, 160 notes, the oldest stamped January 1996, and every one of them opened. Thirty years and not a single migration. The app is long dead and the notes never noticed.
If that design sounds familiar, it should. A vault of individual files in an open format, a tree in the sidebar, an editor on the right, with the app as a view over the folder rather than a jail around it. That is Obsidian's whole pitch, and it is why I trust it with my notes today. Evernote went the other way with a big proprietary silo, and plenty of people learned the hard way what getting notes back out of a silo costs. My 90s self would have felt very smug about that, if he had ever shown the thing to anyone.
The rest of the app
For a personal tool it was surprisingly complete, about six thousand lines of VB in the end. The feature I was proudest of was search. It read every note file line by line, with a progress bar and a stop button, and you could point it at the whole tree or just the branch you were sitting in. Results came back as their own tree: each note that matched, and under it every matching line, with counters at the bottom telling you how many folders and how many lines it found. The whole point of keeping notes is finding them again, and that dialog delivered. With 160 notes, brute force search was plenty fast.
There it is doing its job: searching for "Rect" across the tree, 25 folders and 651 matching lines, every hit listed under its note. That screenshot is from 1997, and I still measure search dialogs against it.
The editor had a toolbar with the standard Windows font dialog behind it, so any selection could get its own font and styling, and each note could have its own background color, which the database remembered. Printing went through the real Windows page setup dialog, which VB did not give you for free; that meant declaring the raw comdlg32 API calls by hand and filling C structures from Basic. There was even a maintenance screen to compact the Access database, because Access databases of that era bloated if you looked at them wrong.
The color palette, dropped down over a note. Sixteen colors, straight off the toolbar. In 1997 that was luxury.
Then I put it in a drawer
I used InfoStore for years. The note timestamps run from 1996 to 2001, so it saw real daily service. What I never did was release it.
There was no App Store in 1998, but there were shareware sites, and I knew about them. I just never felt the thing was ready, or polished enough, or whatever the excuse of the month was. Meanwhile the category grew up without me: Evernote arrived in 2008, Notion in 2016, Obsidian in 2020, and file-per-note in an open format became the design people now argue for with religious conviction. I had it running on Windows 95.
Yes, hindsight is cheap, and I'm not claiming InfoStore would have become any of those products. But the lesson cost me enough that I'll write it down: the gap between "built and working" and "released" is mostly nerve, not code. A few years later I did ship a product, Universal Explorer, and never looked back. InfoStore was the practice run that taught me how much it costs to keep good work in a drawer.
The notes still open, though. Every one of them. Whatever else my 90s self got wrong, he picked the right file format:)
If you have your own never-released app sitting in an old folder somewhere, I'd like to hear about it in the comments. Thanks for reading!
TerminalNexus
Comments