GitHub has alternatives, but no replacement
50 points by lalitm
50 points by lalitm
Github has no replacement because "one web site that holds all the source code in the world" is and always has been a fundamentally terrible idea. Google has no replacement because "one search engine to find literally any piece of information in the entire world" is and always has been a fundamentally terrible idea. Twitter has no replacement because "one set of social norms and moderation staff for everyone in the entire world" is and always has been a fundamentally terrible idea.
Remember freshmeat.net? I miss that. It'd be great if something similar emerged to solve the discoverability issue without all centralizing on a single forge.
If you don't remember freshmeat, it was an opt-in directory where people could announce projects/releases. It was organized by tags and categories and licenses. I no longer recall whether you could point it at an RSS feed and not even need to go announce each release there, but I think there was something in that spirit, too. And you could monitor RSS feeds for various slices of it. An opt-in directory would address the only benefit I perceive from the extreme centralization of github, anyway. But that's a thing that wouldn't get very valuable until it got real momentum. And that social problem is the hard part.
There's freshcode.club, though it doesn't list too many projects yet, and as you write that's the hard part.
There are also many others listed at https://freshcode.club/links. I think AlternativeTo is the largest end-user-oriented one, but sadly it's proprietary.
Oh, cool. freschode.club even captures the aesthetic of freshmeat.net from when it was at its peak. AlternativeTo, apart from being proprietary, has seemed a bit spammy to me for a while now.
IMHO Github's killer feature is the generous amounts of free CI time it donates to open source projects (not just for Linux but MacOs and Windows hosts too). And by killer I mean that GitHub effectively killed a number of competitors providing similar services. Switching away from GitHub means learning to pay for this again. Not everybody will be able to afford it but I don't see a better alternative.
I think we'd be much better off if the two pieces of functionality were handled by different providers though. There's no reason why your git host has to be your CI runner.
I agree that the days of massive amounts of free CI might be gone, but if there's a competitive market with easy switching without having to uproot your git, we might at least get a real market.
That is how it started out, no? There used to be CI runners and companies running them, but through vertical integration GitHub managed to win over the lions share of the market.
This doesn’t match the history as I remember it. Before GitHub, every OSS repository had travisci.yml and appveyor.yml, and those were free. GitHub actions didn’t solve “free CI” problem, because the problem had been solved before.
The problem that GitHub actions did solve was “cross platform CI with a single provider”. They replaced two files with just a one. And later added MacOS support.
It is puzzling that, to my knowledge, approximately none of the CI replacement systems address the cross-OS corner of the problem, which is still a major value proposition from GitHub actions with little competition.
I agree.
But you can use that killer feature without the other features. I've moved a repository over to Codeberg, but set up Codeberg to automatically push commits to a mirror which still lives on GitHub. I use GitHub's compute, but the repo itself is clear that it's just a mirror and has issues and PRs disabled with a link to the Codeberg repo.
It's maybe not the most elegant solution, you'd miss CI in merge requests (if this was a project which accepts merge requests), but the main thing I use CI for in that project is to build new releases and sometimes manually check that it still compiles on older GCC versions. So this setup works well for me.
Now I want to try doing CI using a blank GitHub repo with an action that clones a Codeberg repo, and a push webhook from Codeberg triggering it. It's almost definitely against ToS, but still
TFA thinks that Tangled looks interesting, but unfortunately I don't think that's a viable alterantive for the open source community in the long run: it's based on the Bluesky protocol. This means it's forever at the whims and mercy of VC money.
IMHO we should build the next generations of our tools on genuinely open and free protocols, and make sure there are no single points of failure or places where money can be squeezed out.
it's based on the Bluesky protocol
Of which there are now like a dozen 3rd party implementations of all the various components. Calling it the "Bluesky" protocol is a bit disingenuous too, it's ATProto. The only hard reliance on BlueSky infrastructure is the PLC directory which is in the process of getting moved under the stewardship of a European non-profit.
I don't get why people write comments like yours while also acknowledging that there's a hard reliance on centralized BlueSky infrastructure
tangled's architecture is nothing like bluesky however. you can selfhost the tangled appview entirely in memory. if you are worried about atproto being developed by bluesky, it is presently being standardized at the IETF.
Are HTML and HTTP "genuinely open and free", in your view? Lots of money from big companies in directing the future of those.
SourceHut is focused and transparent and, like Codeberg, openly values-driven.4 Its email-oriented workflow, while battle-tested by projects like the Linux kernel, is unfamiliar to most GitHub users.
Just to set the record straight on SourceHut. It is true that SourceHut happy path is to use email to collaborate. But SourceHut supports submitting changes through its Web UI. The flow is similar to other forge's:
The other parts of the collaboration flows are harder to do from the web UI:
The replacement doesn't have to be a single package. Similar to how people don't use GitHub for everything today (e.j. It is common to use a separate issue tracker in professional settings. It was common to use a separate CI (Travis, CircleCI) before actions. You can mix and match tools that suit your own flow. E.j. You can use codeberg with builds.sr.ht using yojo. You can self-host a forgejo instance with Gerrit like the lix project does.
I'm sure the outage today was completely irrelevant ;)
I think the problem is that Github KNOWS it has "alternatives, but no replacement"
Sounds like a market ripe for a new contender to me. Hopefully one actually supporting IPv6 in 2026 LOL
$ dig +short AAAA gitlab.com.
2606:4700:90:0:f22e:fbec:5bed:a9b9
I fucking love IPv6, I wanted to check if that address works without the Host header but of course web browsers still don't support IPv6 so I just googled "2606:4700:90:0:f22e:fbec:5bed:a9b9" instead. Great
IPv6 addresses are written in brackets in URLs. Browsers shouldn't support nonstandard URLs.
$ echo https://[$(dig +short AAAA gitlab.com.)]/
https://[2606:4700:90:0:f22e:fbec:5bed:a9b9]/
is what you're looking for, but I can't check from here because my ISP doesn't support it yet, and I don't have anything set up to work around that. In fairness, I believe that if I accepted the equipment upgrade my ISP keeps trying to schedule, it might. But I haven't, because I don't like them and want to switch.
This reads like "GitHub has alternatives, but no replacement, for vibecoding". Do people really expect contributions to their vibecoded projects? If not then you might not even need a forge.
My first blog post was about migrating from Trac to GitHub, the cool kid at the time. The issue then was that it was difficult to fight spam without requiring a user to create an account (something that would ensure most users won't interact with you). Today is far worse as you have to fight spam even when requiring an account and you also have to protect yourself from scrapers...
The article also does not mention CI. GitHub runners available for free for Linux, MacOS and Windows is a difficult match.
Wrong, https://gitgrasp.com/ is a real replacement.
Not a single server, not P2P, just independent, normal git servers, self-hosted or not, announced over a social layer that can be used only as much as you want, with all the restrictions necessary.
I clicked hoping to be surprised by technical gaps I wasn't aware of, but instead this article is focused on the social aspect. When the definition of Tool X includes exactly how people have chosen to use it (like discovering projects) then it is not surprising that there is nothing exactly like Tool X.
Gitlab is a perfectly fine replacement from a technical perspective, and is better for privacy if you self-host. This could be seen as a negative if your goal is to stumble across projects. I guess that's why I've never felt like I need to "replace" GitHub.
Every time this comes up I see the same split: people who only need a forge argue "just self-host / use Forgejo / whatever", people who need CI argue about runner minutes, people who care about contribution UX argue about accounts and conventions. They're all correct for their own use case and somehow still talking past the actual bottleneck.
what conventions I want you to follow
This has been an issue on GitHub for years. There are a variety of different conventions for different projects, despite the more vocal people demanding there be only 1 convention.
That makes each of them fundamentally less “straightforward” than a for-profit company. It makes me wonder whether there is room for one.
sigh. Has nobody learned yet that these companies always end up either going under, or becoming wildly successful and lead to an enshittified product? Then the cycle will start over again.