Mitch's Blog

Federated Forges

Last modified January 09, 2022

You may have seen or interacted with software projects that host their source code on GitHub before.

While I think GitHub served a great purpose in the past for offering good, reliable source code hosting for free and open-source software (FOSS) especially at a time when the options were slim, it’s time for a change.

GitHub is closed-source, owned by Microsoft which has (until recently) had an atrocious track record regarding FOSS, and they keep adding more and more features which, while convenient, serve to lock you into the platform and offer no or difficult means to export your data.

Luckily, some high-quality software forges have emerged in the meantime:

All of those are themselves open-source (with only GitLab having a separate enterprise tier of the bunch) and offer some unique features among them.

And this variety is a good thing! No one is stuck on a platform they don’t like just because it’s the only option. However, there are some challenges because they aren’t compatible with each other outside of the actual git part for shuffling code around that they all support.

GitHub has had the major benefit of network effects.

Everyone and everything is on GitHub, so I should be too and I should host my projects there.

If you want to host your code elsewhere, or interact with repositories on one of these other platforms, you’d have to create a separate account for each one (or work with patches through email if that is supported) and your discoverability will be much lower than if you were on GitHub.

But the situation is improving!

With the recent announcement by Gitea (which Codeberg runs under the hood) that they’ve secured funding for working on implementing federation for software forges, there soon could be a time where accounts, repos, pull requests, search, and more can all work across different services seamlessly.

There’s some work done already by ForgeFriends for making GitHub and GitLab federated using a separate process, but that’s just a stopgap solution.

I’m hopeful that this will make alternative software forges more attractive to use compared to GitHub and give open-source developers the ability to host on a platform of their choice instead of one out of necessity.

Thanks for reading! Feel free to send an email to the public mailing list at ~mfossen/blog@lists.sr.ht and let me know your thoughts on this post!

A public archive of all submitted emails can be viewed at https://lists.sr.ht/~mfossen/blog