I used to be put everything in ~/Programming at the top level. I later started grouping projects by type (JVM, Web etc.) in subfolders because it was getting hard to find things. This was synced with Nextcloud. However, I then at some point passed 2 million files (200GB) in said folder and decided to search for a better solution.
I ended up using a selfhosted Forgejo instance. It allows for easy code searching across all projects, tagging projects by topic and language, LFS, and has useful project management tools built-in.
America bad