I host my own forge for the sources of my various projects. I avoid GitHub as much as possible since they are now owned by Microsoft. I do not consent to having my source code used for "features" like Co-pilot. All I require is a place to host my code and to collaborate with my friends. I do not accept trading away a non-exclusive, irrevocable grant to use my code for purposes I am unaware of and likely won't approve.

I am fortunate enough to have the resources and skills to self host. I do so to be able to have more control over how my code is accessed and used. A forge is only one of several services I run and support myself for this reason.

I initially adopted Gitea for my forge. Sadly, one of the original maintainers decided to move that project closer to an enclosed, commercial project. I do not trust that maintainer mostly because of how they handled the change. Thankfully, a hosted forge, Codeberg, created a soft fork and set up governance from its own non-profit. The soft fork and Codeberg's commitment to submitting their work upstream means that the switch to Forgejo is very easy.

Codeberg seems more committed to adding federation to Forgejo. Federation would mean users on a federating forge can open issues and interact in other ways on a remote server without opening an account. The ideal will be when pull requests can easily be opened across different forges so it doesn't matter how and where you host your code. Honestly, this was an early model of distributed source control systems I miss: being able to directly clone and push, peer-to-peer. Projects like Forgejo are helping reclaim that model and provide free and open ways to enjoy it.

Codeberg is an excellent forge if you want a GitHub alternative and are not in a situation to self host.