I have an obsession with the process of note-taking.
I often write down my ideas in the form of notes or tasks. I do this through multiple channels. Then I spend a considerable amount of time organizing them.
One common frustration with organizing notes is that I can do this only along one hierarchical dimension.
Perhaps one reason I like to code is that you can implement hierarchies along multiple dimensions more easily, although not always.
Because of the single hierarchy, some notes tend to become forgotten as I put them in some deep end part of a category branch. This then requires me to constantly re- and review my notes and to recategorize and reorganize them.
I have looked into multiple note-taking software, but there is not really a perfect solution for this.
One thing I found helpful is to require only a single function from a particular tool. So, for instance, I would use one particular tool or process for note-taking, then another for categorization, and perhaps a further one for review or note management.
This, however, needs that the different tools speak to each other relatively well. Ready-made solutions often do not allow it, so I found myself moving toward text-based tools. However, you need to utilize some basic scripting to make them work.