Lately I’ve been seeing a lot of chatter about GitHub alternatives. I’m interested in looking into them as well but I was curious what everyone else’s experience was.
I’ve been looking at Codeberg but I’m really anxious to leave GitHub Actions behind and Codeberg’s replacement doesn’t seem ready yet.
We have a more advanced PR flow (stacking, round-based reviews), jujutsu support and we just launched our new CI system. Come join! https://tangled.sh/signup. The goal is to be the new town square for collaborating with friends and open source communities.
It's built fully in the open (https://tangled.sh/@tangled.sh/core) and we have a neat little community built around it on our Discord https://chat.tangled.sh.
Last night was a ton of fun with the sudden influx of users thanks to the GitHub news. :)
I'm not familiar with ATProto; what does this mean in practice? Does it just change the failure modes if something breaks?
I've never used Gerrit directly, but I'm guessing that Jujutsu's change IDs are like a native version of what Gerrit does there.
I regularly (attempt to) do stacked diffs on GitHub with jj, and even with a bunch of automations it's still a clunky, awkward experience.
[1] https://blog.tangled.sh/stacking
A few things that would make me actually use it: - namespaces (aka, organizations in GitHub terminology) - private repos (I usually start with private repos and then make them public)
The interface is really friendly and I like how approachable it is. You should make dedicated docs site instead of throwing folks at a bunch of markdowns. Maybe create a “Pages” equivalent and demo it by building a docs site?
Appreciate the feedback! A dedicated docs site is in the works (along side a pages offering!).
What does that mean? Doesn't jj just use git as its backend?
My top-of-funnel is not searching github but recommendations or searching technology/platform specific repositories e.g. for software it's flathub/f-droid and for rust its crates.io/libs.rs.
Where the code is hosted is in theory irrelevant... but I'm ashamed to say that when code turns out to be on gitlab my heart sinks. It's a bit of a red flag for e.g. no bug-tracking, no contributions, no maintenance, absent maintainer and unexpected licenses.
It's gross personal hypocrisy because I hate the absurdity of commercially owned FOSS collaboration and centralised git and happily self-host myself... but those not publishing code on github are awkward bastards :)
You can have 1:1 parity with any company or product, but unless you have their word of mouth distribution and adoption, you will lose. Every time.
People in aggregate, as crowds, are relatively static and inflexible. Once they learn a fact once, it sticks. You cannot unteach that without lifting metaphorical mountains. The first mover with escape velocity wins.
The amount of energy needed to undo that is massive.
You'll have fringe 0.01%ers adopt some other tool, but they'll never carry enough gravitas to bring the entire network with them.
Anecdotal evidence:
- Github, Facebook, and Reddit have never been unseated
- Instagram has never been replaced, only supplemented
- Twitter/X has only lost steam due to extremely bad press, an unwanted name change, and a huge effort from Meta (which leveraged traffic and synergy from Instagram). And even then, it's still well within the public zeitgeist. Bluesky and Mastodon didn't even make dents.
- Google has never been displaced (granted, Google pays a lot of money to maintain defaults and maintain a web "pane of glass" monopoly, redefine the address bar as a search bar, etc.)
Just because I use Codeberg doesn't mean Github should die. Just because I never ever visit Facebook doesn't mean you should stop using it.
Why can't we all just play nice?
Except GitHub, maybe.
Granted, the replaced services were nowhere near the popularity levels of the current ones, and have made horrible decision.
https://tangled.sh is the other contender in this space that I know of. uses atproto (same as bluesky) under the hood.
fundamentally activitypub is insufficient to define these kind of networks. you'd need to have some sort of object-capability representation. the creators of forgefed are also moving in this direction: https://codeberg.org/Playwright/playwright
At some point I made very tiny contributions to OSS projects that had their own Gitlab hosted instances.
Sure a password manager makes it tolerable, but what about having an anonymous way of opening up PRs (subject to owner moderation of course)?
Use the author name and email for a virtual identity and when the PR request is accepted (not merged) force an email address validation for the PRer so that comment interaction can happen via email.
Fork the original repo onto your forge. Your forge could be your own forgejo instance, your own GitLab instance, just a plain git repo, or even Github if you like it so much.
Then send a note to the original authors informing them of your fork and the patch you wrote. Request that they review your work and pull it into their repo if they approve of it.
You don't need an account on their forge and they don't need an account on your forge.
Similar for indexes of open source repos - I dont know of a singlar winner now but it was for a bit freshmeat for a feed of open source project updates
Public projects: Github. Having no problem with it. Also makes me happy poisoning LLMs with my shitty code.
I wanted to use their pages service as well to serve an SPA but their https://srht.site/limitations prevent SPAs from contacting external services I need. I get why they do that but I need my SPA to let users login to their databases and there's simply no way to do that while adhering to SourceHut's policy.
Fortunately pico.sh², codeberg³ and GitLab⁴ (not GitHub) don't have that restriction. I experimented with each of them last year. All of them worked reasonably well. Eventually I settled on GitLab which had the nicest CI/CD of the three at the time.
¹- https://sr.ht
²- https://pico.sh
³- https://codeberg.org
⁴- https://gitlab.com
Deleted Comment
It’s not a direct equivalent to pull requests because it lacks all of the easy history, inline commenting, comment status tracking, and ease of use, among other things.
- GitHub for things I expect broad collaboration on
- SourceHut for things I just want to share (or expect contributions from a specific group that are comfortable with email git flows)
- Self-hosted for everything else. This used to be Gitea, but I've recently switched to charmbracelet/soft-serve, which fits my needs well (it's small and comparatively simple)
As other folks have noted, the social features of GitHub are hard to replicate elsewhere, but I've enjoyed SourceHut's stripped back approach.
Gogs is FOSS but basically BDFL. What does and does not make it into Gogs (it's still around) is ultimately decided by one person, and he's fairly conservative. Gogs is very fast but lacks a lot of features that would allow it to go head-to-head with GitHub or Gitlab.
So, Gitea was forked from Gogs to allow it to take a different direction, with a larger group of maintainers and more input from the user community.
There were two major attempts to have hosted Gitea. The first was Codeberg, a nonprofit based in the EU. The second is a business that took the name Gitea, is based in the US, and changed Gitea (the software) to the "open core, closed premium" model.
This change led to the creation of the Forgejo fork, which Codeberg adopted.