I basically have two trees:
1. Software; organized by domain name in ~/software, containing all git repositories I work on (~/software/github.com/user/repo)
2. Documents; stored in ~/Nextcloud, synced with a server. In there, I have a nested system of Johnny Decimals (https://johnnydecimal.com) - nested, because I manage multiple projects which itself use that format again, so
~/Nextcloud/10-19 Companies/10 Company A
~/Nextcloud/10-19 Companies/11 Company B
~/Nextcloud/10-19 Companies/12 Company C
My desktop is my temp folder, everything on there will be "resolved" within a day or two.This way, I have all my documents synced and available on all my devices. I do not use Finder tags but rely heavily on Spotlight search.