GitLab is also getting worse and worse. They're going full-in on AI and each new release is more cluttered with useless features and requires more and more resources to run smoothly. After six years self-hosting a GitLab instance for a few hundred users (among which a few dozens are quite active), I abandoned this summer and I'm currently migrating the instance to Forgejo.
IME switching git providers is very hard, especially getting off of github. Most companies have insane numbers of integrations, automations, etc on top of GH. So yeah, its on us, but its also pretty simple algebra: does GH's downtime affect us more than the cost of switching? Most companies the answer is no.
When people ask why people aren't switching to Gitlab, ADO, Bitbucket, etc, I believe this is the reason.
I would not call it irresponsible. If you have a big, long running project you're going to want to develop complex pipelines and build processes to help with development and testing. This will save a lot of time and create a more consistent workflow, but switching vendors can require redoing work that was built over years.
> you're going to want to develop complex pipelines and build processes to help with development and testing
Opinion: Complex build processes are great. Complex _pipelines_ are a trap. I'm in a position to see the output of a lot of teams at a very large company. The teams that have complex build processes _that they can run locally_, and then have some trivial CI yaml to run the build, are doing great.
The teams that designed their build around CI are brittle and eventually end up in a state where they can _only_ do some parts of their build on CI.
IME it's worth it to set very hard boundaries shaped like: (1) Everything needs to be able to be run locally (usually in a devcontainer), (2) CI config shall be stupid simple. If you have more than like two lines in a script section, it goes into a Tools/Build script file that must work locally and is just called in a one-line CI script.
#1 guarantees you can operate without CI, and #2 guarantees you can move CI providers trivially.
If only we had a way to run code in a pre-defined isolated environment that can hide most of the differences of the actual hardware...
Oh, we do have Docker/Podman?
Then why not use _them_ to define your build pipelines? Bonus points: you can run them locally without tearing out your hair. And you can use normal scripting languages and task runners (taskfiles, good old makefiles, Ninja, etc.) for sequencing.
>develop complex pipelines and build processes to help with development and testing. This will save a lot of time and create a more consistent workflow,
Beware the trap of making the pipeline so complicated it's like code except you can't debug it like regular code, and takes an hour between attempts to see if it worked.
This year, the migration projects I have worked on were some of the most fun. Migrations have changed from the death-by-1000-cuts that they were, to the which-AI-method-to-best-ensure-100%-fidelity. So, I don't believe the "very hard" part. Obviously it would involved recreating or reshaping many features that very involved in an integration to have a disruption-free move, but I think the complexity is manageable for most companies if they put in some effort.
This fun was not revenue-generating, I suspect, so it's already a loss. Also it's a long-tail change, which will likely create unexpected situations here and there, and de-value experience and knowledge already available. Cumulatively it can be much more expensive than staying, unless GH will continue to falter, of course.
90% uptime is abysmal. That degree of poor performance can easily cost astounding amounts of money and/or cause secondary incidents. It's just harder to quantify than the cost of switching.
I can't imagine anybody switching to ADO from GitHub. Microsoft has made clear that ADO is on life support, and are slowly stripping features out like public repos.
I look forward to when GitHub Actions has feature parity with Azure Pipelines.
It really is a testament to the power of mindshare and vendor lock-in. Git is GPL-licensed, the format is a de-facto standard, the commits and tags live in an on-disk format, merging and collaboration doesn't require a server, and yet somehow we still managed to end up with a centralized system with GitHub at the center.
Most companies aren't on GH at all, but are doing some internally hosted forge. Companies who build on GH are very much in the minority in my experience.
I agree with the sentiment of the post, and Github deserves every bit of it. Tried codeberg (which uses forgejo) and I am very happy with it personally.
What frontier model did GitHub train? All of the frontier labs scraped GitHub like they scraped everything else. While GitHub has certainly tried to profit from AI, directing ire at GitHub for frontier labs training on public code seems misplaced.
I know, GitLab. Gitea. Bitbucket. They have some features, but it’s like suggesting I drive a Nissan Sentra because my BMW breaks down once in a while.
GitHub is going the wrong way, but there really is nothing workable for open-source projects except GitHub. I don’t want to register on all these random GitHub killers just to open an issue or PR in a random project I’ve interacted with.
For personal or team setups, any third-party service will work well.
> GitHub is going the wrong way, but there really is nothing workable for open-source projects except GitHub.
Open source projects existed just fine before GitHub, and they will exist just fine if they choose to move off GitHub as well. It's not a big deal if people won't do drive by contributions any more.
With SourceHut banning projects that use LLMs[1], I’m looking to migrate this weekend.
While I can host Forgejo just fine[2], doing so means no one will be able to contribute to the projects, since federation isn’t a thing yet. Heck, getting contributions on SourceHut was hard enough, and it doesn’t even require people to register an account.
I might need to bite the bullet and go with GitHub. Regardless of what I think about the company and Microsoft, it’s where the people are.
It ridiculous, Codeberg did the same. I get why, really, I do, but it's creating a severe damage that will be abused by a third evil actor that will take over the wasteland of GitHub and GitLab by creating a service that will allow anything (until it is enshittified of course)
Outcome? Everyone on their own self-hosted git servers, zero collaboration.
What kind of collaboration were you getting on your random GitHub uploads? I didn't get any. This collaboration thing seems like an excuse if people have a way to contact you.
Codeberg only banned projects that are majority LLM-coded. They did not ban all use of LLMs.
It seems my eyes skipped the part of "[...]mostly consist of code written by generative AIs[...]" my bad. Which means I have to apologize twice, because of the other comment. Damn, good slap in the face xD
Oh my. I hadn't noticed this, but I've been kind of expecting it. I've been a big SourceHut user for years now. So I'll be having to decide what to do myself. I absolutely get their stance, but I don't see a world in which I will go back to writing meaningful amounts of code by hand again.
I may try out tangled.sh. It's really nice to have my code stored and backed up somewhere other than infra I control and manage.
I'm personally pretty excited about Tangled (and ATProto in general), but I do have to caution that I've had some performance issues and some technical ones with hosting my own 'knot' and 'spindle' services
GitHub ripped out the logo that said "meritocracy" on it because the new CEO and its internal self-described feminist coder groups found it "problematic." The CEO even went on Twitter with a smug "Words matter." tweet. Coincidentally, it wasn't long after when their quality really started to nosedive.
I was about to mention Codeberg but I saw the last two changes to the terms of use and they're basically digging themselves into the ground with so many restrictions
No but I use LLMs for repetitive tasks and chores mainly, the ToS forbids any use of LLMs, not just "reasonable" or "unreasonable" use. And even if it wasn't my case, if someone wants to purely vibecode, they should be free to do it. As I mentioned in another comment, I understand the restriction, I really do, it's not abut the code and more about the complications posed by automated LLM flows (unending shit PRs, merges, thousands of CI jobs running for no reason...) but still, I don't think it's the way to go.
Btw, did anyone notice they removed access to "who starred the project" recently. You can only check your own repos, not external ones. It was very nice to find related people before.
I'm in the middle of a Forgejo migration myself for similar reasons. What finally pushed me over the edge was a hour long Actions outage that prevented me from pushing a hot fix for a bug to my webapp. (I relied on GH Actions to build and push an ARM Docker image.) For work that a business depends on, I can't recommend GitHub Actions. It's not just the outages that personally annoyed me, but the fact that I'm paying for it as well. So far I'm loving Forgejo and have no regrets!
I'm curious what you're replacing Actions with on the Forgejo side, and whether running that infra yourself feels like part of the benefit or another thing you'd rather not own
Forgejo has Runners that you can install on another server and register with Forgejo Actions. There might be 3rd party Runners you can pay to use, I've just run my own on a hardened VM.
64 comments
[ 0.20 ms ] story [ 7.5 ms ] threadI mean this in the least dismissive way possible, cause I quite like it, but this isn't good enough prose for the average LLM.
When people ask why people aren't switching to Gitlab, ADO, Bitbucket, etc, I believe this is the reason.
Opinion: Complex build processes are great. Complex _pipelines_ are a trap. I'm in a position to see the output of a lot of teams at a very large company. The teams that have complex build processes _that they can run locally_, and then have some trivial CI yaml to run the build, are doing great.
The teams that designed their build around CI are brittle and eventually end up in a state where they can _only_ do some parts of their build on CI.
IME it's worth it to set very hard boundaries shaped like: (1) Everything needs to be able to be run locally (usually in a devcontainer), (2) CI config shall be stupid simple. If you have more than like two lines in a script section, it goes into a Tools/Build script file that must work locally and is just called in a one-line CI script.
#1 guarantees you can operate without CI, and #2 guarantees you can move CI providers trivially.
Oh, we do have Docker/Podman?
Then why not use _them_ to define your build pipelines? Bonus points: you can run them locally without tearing out your hair. And you can use normal scripting languages and task runners (taskfiles, good old makefiles, Ninja, etc.) for sequencing.
Beware the trap of making the pipeline so complicated it's like code except you can't debug it like regular code, and takes an hour between attempts to see if it worked.
Do you have a source for that claim?
I look forward to when GitHub Actions has feature parity with Azure Pipelines.
I use https://sharemygit.com to share repos around.
I know, GitLab. Gitea. Bitbucket. They have some features, but it’s like suggesting I drive a Nissan Sentra because my BMW breaks down once in a while.
For personal or team setups, any third-party service will work well.
Open source projects existed just fine before GitHub, and they will exist just fine if they choose to move off GitHub as well. It's not a big deal if people won't do drive by contributions any more.
While I can host Forgejo just fine[2], doing so means no one will be able to contribute to the projects, since federation isn’t a thing yet. Heck, getting contributions on SourceHut was hard enough, and it doesn’t even require people to register an account.
I might need to bite the bullet and go with GitHub. Regardless of what I think about the company and Microsoft, it’s where the people are.
[1]: https://sourcehut.org/blog/2026-08-27-tos-changes-and-llms/
[2]: And already do locally, as a mirror to SourceHut.
Outcome? Everyone on their own self-hosted git servers, zero collaboration.
Codeberg only banned projects that are majority LLM-coded. They did not ban all use of LLMs.
I may try out tangled.sh. It's really nice to have my code stored and backed up somewhere other than infra I control and manage.
https://codefloe.com/
https://codeberg.org/ForgeFed/Vervis
https://radicle.dev/