You can create some very powerful workflows with dataviewer, properties and templates.
Whatever note taking style you want really, automatically moving them to folders, etc.
I highly recommend using unique notes with tags to start with, you can reorganize it as you need.
I have #snippets for code snippets, #walkthrough, #todo. Theres plugins to automatically move these to folders if you want.
Notes can easily link or embed each other too, so going from bug -> bug -> project isn't an issue. And creating glossaries is super easy with dataviewer.
Bookmarks for glossary's and searching with tags a keywords makes it easy to find what you're looking for even if its in a pile. And properties let you mark things like "completed: false" for todo items.
The best part: All of your notes are markdown, so you can easily move them elsewhere if needed.
Great to know, I always read that people dislike Obsidian for being closed-source.
It's also not self-hosted by default, but seems possible with a sync plugin.
Thanks, I will look into it!
The only reason I'm okay with that is that it's a client side application that works with markdown, and their schema for "canvas" is opensource.
> It's also not self-hosted by default, but seems possible with a sync plugin.
I've been very happy with the git plugin for syncing personally, I know many people recommend syncthing. I think there's some obstacles for iphone support specifically although I don't use it on mobile.
Edit: reading your requirements I’m sure above satisfy them except probably ‘programming notebook’, unless there’s an obsidian addon for that.