over-engineered something that didn’t need engineering
I was building a snippet tool called Snipfuck. Tried other tools, didn’t like any, so thought “fine, I’ll build my own.”
Instead of just letting the filesystem handle files and folders, I added an extra layer to track snippet ids, paths, and structure through an index.json. Basically a small abstraction to “manage” what the OS already manages.
It worked at first, but the moment folders moved, files renamed, or anything shifted, the whole thing became annoying to maintain. Conflicts, syncing, extra logic, unnecessary complexity.
Then I looked at how Obsidian does it. It doesn’t track anything. It just watches the filesystem and treats it as the source of truth. No extra layer. No bookkeeping.
So the takeaway is pretty straightforward: If the underlying system already gives you the structure, don’t build another one on top of it.
Simple holds up. Complex falls apart.