I take notes and associate them with one another using this.
https://www.giuspen.com/cherrytree/
Specifically I use an indentation list like I used to in grade school, in the program it is automatically formatted to different arrow symbols when I tab them
- Subject 1
- sub item 1
- subsub item 1
- sub item 2
You can link to other sections of notes, insert code blocks with scrolling, and other things.
For multi component projects I lay them out in the note tree as I do on disk, i.e.
>project name
>>project component 1
>>>project component 1 notes
...
I also use whatever graphical program for drawing things sometimes.