

Since you’re a bit concerned about self hosting and collaboration, I would recommend Codeberg - they are a non-profit based in Germany with widespread support and, as far as I know, is the public Forgejo instance with the largest user base.
If you want, you can also host your own Forgejo instance and mirror your Codeberg repos to it. That way you can have two copies of your data, just in case Codeberg ever goes offline.
You could also potentially use Gitlab, but I would personally prefer something Forgejo based. Forgejo has been much more responsive/snappier in my opinion; Forgejo is primarily written in Go, while Gitlab is mostly Ruby.
This process is called ‘bootstrapping’, and is actually quite common in software. For example, the C compiler is written in C. The first iteration of the C compiler was written by hand in assembly code with a very limitted feature set, and that compiler was then used to compile the next iteration, allowing the second version (I’m not sure it was actually the second version; there may have been a few iterations in assembly) to be written in C itself.
For Forgejo, you dont actually need Forgejo to build Forgejo; just a computer with the Go compiler and any other dependencies. Then, once you have the first version, you can publish the code you have on Forgejo. Nothing too crazy there 🙂
This also leads to ‘dogfooding’, which is a whole other term…