There’s something that’s been low-key bothering me for many months now: the fact that so much open source software is hosted on proprietary platforms and has such a strong dependency on non-open source non-free forges.
Now, sometimes we must be pragmatical, and use the closed sourced software when we don’t have a choice. But when it comes to products like GitHub, there’s plenty of choices. And most of them are, feature-wise and UI-wise, superior. GitHub merely has one leading point: it has more users, hence, a stronger network effect.
The network effect has value: it’s easier for people to jump in and contribute.
Recently, Drew DeVault blogged on this same topic. While he’s the author of a competing forge, but I think his points have merit on their own, regardless of personal position (by the way, huge shout-out to SourceHut, which as a wonderfully simple yet powerful CI/Builds system). One particular idea expressed by him resonated with me the most: each time we pick a closed sourced platform as a home for an open source project, we’re also saying to open source forges “you’re not good enough”.
This situation sucks. As a software developer, I’m often annoyed about how hard it is to come across career opportunities in the open source ecosystem – but on the other hand, I’m also feeding products competing with open source forges, products who don’t care about ethics, respecting people, privacy, or anything else other increasing users and more and more profits.
It’s only natural to want one’s project or endeavour to grow (plus, most of us appreciate more income!), but growth is only feasible up to a point. After reaching said point, it is simply not possible to continue growing a user-base without damaging the product, the ecosystem, or both. Failing to understand this is failing to understand how to build sustainable industries. Sadly, this is all too common in the modern world.
So after months (probably years) of this bothering me I’ve decided that I’ll be moving all projects off proprietary platforms and onto open source ones. This isn’t a simple undertaking: there’s a lot of documentation and background lurking in issues and pull request discussions. A lot of people rely on projects I maintain, and one can’t suddenly one day change where everything is located.
However, these are all problems that can be solved.
I’ll be publishing plans for individual projects in the coming weeks. For the moment, I’m considering Codeberg for most migrations, mostly because it’s easy to carry over Issues and Pull Requests, and the UI should be familiar to existing contributors. Currently there’s only a beta CI, but I intend to continue experimenting with integrating Sourcehut’s Builds with Codeberg.
Smaller projects will come first, since they have the least chance of negative impact, and larger projects will follow. I’ll be starting with GitHub projects first, then gradually moving over to GitLab. Open-core is simply not open source, and I invite you to see this excellent talk by Frank Karlitschek (founder of Nextcloud) on the topic if you’d like to learn more about the subject.