What really stands out to me in this migration story isn't the technical side at all, but the reminder that "feature parity" isn't the real hurdle here. Codeberg is already good enough for most day to day workflows; what it doesn't have is the gravitational pull GitHub built through network effects, integrations, and plain old inertia.
This is partially being addressed by projects like https://tangled.org. It's built on the same protocol as bluesky, meaning your identity is preserved across different platforms so that _where_ your git is hosted is unrelated to how you discover and connect with others.
If only we could use something like a gpg key as our identity. Maybe if it had a mechanism to share and revoke keys, upgrade them, cross-sign them with others to develop some sort of like trust system that was web-like. I bet we could like build a whole infrastructure around it to maintain developer identities in a completely decentralized way.
My primary pain point with Codeberg has been that the issue search is worse, so that there are cases where I'm rather certain than issue exists-- because I've triaged it in the past-- but it's hard to find with the keyboard search. Hopefully that can be improved soon.
There were some times were Codeberg's general performance was noticeably worse, but most recently it has been fine.
If you thinking of migrating a project with hundreds of issues, I would do a test migration and practice a few different searches to test the result quality.
And just sheer amount of documentation and examples out there. Everyone uses it, therefore everyone writes about it, the new hire probably knows it, and if they don't they can find it easily.
Then again maybe for stuff like actions and in general CI/CD it's not all that bad, you don't need whole team to know exactly how to write it, you just need to have a person knowing it. and it's generally not all that hard to learn.
It feels like a <game theory> problem (Tragedy of the commons? First mover? I dunno them well enough). It’s probably a mistake for any one company to not pick GitHub, because it’s likely a higher friction distraction from what the actual goals are of the company. But enough companies paying that price ultimately would benefit everyone by fuelling stronger competition.
This is why CI should be separate from code repository storage and that should be separate from your collaboration tools. They all can speak git if you want.
Are there any alternatives to Github that offer similar bang for the buck? Particularly for very small teams or solo devs that need private repos? The author here specifically mentions Codeberg, which seems like it's just for FOSS projects.
You can self host the software underlying Codeberg, which is Forgejo. Then there is also GitLab which has a lot more features but is arguably more intensive to maintain. And then there is the long tail, such as the projects Forgejo was forged from (Gitea and Gogs) and various other FOSS forges e.g. Phorge which was forked from the now discontinued Phabricator.
Stick with Github if it solves your problem. No particular reason to move off, only reasons I've seen so far is "don't like Microsoft" and "Don't like the UI". But overall, GitHub is the leading tech in this space. For FOSS, I can see why some may want to move off, but for commercial work, it's great. Seems to be a bit of a bandwagon of articles of people moving off hitting hackernews (which in reality represents a tiny percentage of users), no need to hop on the bandwagon unless you have some compelling reasons for something else.
That’s interesting. I would have said the opposite. I’ve never used any of the social features, but the technical aspects (including integrations) are where the value is.
It does break and go down; and GHA are a real pain in the ass. But the basic hosting and PR workflow are fine.
The PR workflow is fine if you don’t care about stacked PRs, you don’t write reviews, you don’t read nontrivial reviews, and you don’t need the diff viewer.
The site UI has been going downhill these years. It's become heavy and slow, and the buttons are more and more randomly placed. Like after you search for something in the repo, to go back to the repo front page you needed to click on the most unexpected button.
It's still getting things done, for sure, but no longer pleasant to work with.
I think Github has a nice UI.....when the contents finishes loading.
That's the real problem with Github these days. Too much critical information behind throbbers that take their sweet time. I find Codeberg much more responsive, despite being an ocean away and having the occasional anti-AI-scraper screen.
Some competitors like Gitlab have reduced friction by offering "Login with Github", so if you've already got a Github account, the bar for signing up some alternative forges is low.
I help with one of the most popular projects on Codeberg, Fuzzel. I can say we get no shortage of issues and feature requests from being on an alternative forge. Indeed, we have plenty!
I like sourcehut. It's the only forge out there that isn't set out to copy the Github UI like everyone else. And its UI itself feels instantaneous, as if it was running locally.
The UI is fast, but it can be difficult to navigate, at least if you aren't familiar with it. In particular, unless it is explicitly mentioned in the README, it isn't at all clear how to report a bug, or submit a patch, or view relevant mailing list archives.
I have to interact with bitbucket on a daily basis. My advice is not just "no" but "heck no."
Bitbucket is slow to push to and pull from. From a reliability standpoint I have far more issues with Bitbucket than Github. The web UI feels completely off in a way that's hard to describe if you've never used it - it's like it was created as an afterthought or a skin on an older system, without any sort of craftsmanship behind it. There's also no source code search.
There's probably more, but quite honestly I try and stay out of the web interface of my bitbucket repos as much as humanly possible, so I shall stay happily ignorant of the rest. It's a shame, because I remember Bitbucket when it was the Github for Mercurial with a decent (if derivative) interface, and they allowed you to have private repositories without paying money.
Now, Bitbucket no longer supports Mercurial and Github gives you private repositories. Given those realities, why anybody would ever choose Bitbucket in TYOOL 2025 is beyond my ken.
Yes, but you are still not allowed to use them for proprietary software development. That makes it quite useless for most teams developing commercial software.
Private repositories are only allowed for things required for FLOSS projects, like storing secrets, team-internal discussions or hiding projects from the public until they're ready for usage and/or contribution.
They are also allowed for really small & personal stuff like your journal, config files, ideas or notes, but explicitly not as a personal cloud or media storage.
So the ToS says only private repos that support FLOSS, but then backdoors into "small & personal stuff" which is pretty loose and up to Codeberg's discretion so probably not the best place for your private side project repos.
You're right, and after thinking about it a bit more, I think this TOS is actually more confusing than what came before. Saying explicitly that, e.g. MIT licensed software was allowed (because that license is approved by OSI), makes it unambiguous. This feels like if someone complained or had too many repos they're liable to get nuked from orbit. That being said Forgejo is FLOSS and this service is hosted for free so they're allowed to set whatever terms they want. I'll delete my upthread comment as it's misinfo.
No problem. I'm confused by it as well. I migrated a repo that is more source available than open source and didn't realize that it probably is against ToS until afterwards.
Ongoing availability issues, Microsoft's shoehorning of AI, GitHub's focus on migrating to Azure infrastructure rather than adding features and fixing shortcomings. If I had to guess.
> If you're publishing your code anywhere, it's getting trained on
citation needed. first they need to know my code exists... spend time and traffic crawling it because it's sure as hell not going to be hosted on azure... probably get detected and banned.
I'm personally very tired of shoving AI everywhere otherwise GitHub is okay-ish albeit it seems it performed much better when it was a rails website rather than a react "app".
Not naming names but heard from contacts that it is currently a sh*t-show of politics internally right now at GitHub and no progress is being made/large parts of the platform are abandoned unless P0.
typedload was the most difficult because I test it on multiple versions of python, but woodpeckerCI does its job so I can still run the tests even after the migration.
For the other projects I have I didn't bother to set up a CI since it's trivial to run locally.
Does Codeberg provide free CI runners? I'd estimate Microsoft spends over $100m/year on free Github CI. Likely their biggest cost. It doesn't seem like a reasonable thing Codeberg to fund for free.
You can use your own Woodpecker instance with Codeberg. I do this at work and privately and it works great and is much faster than the free CI that Codeberg can afford.
Actually, that's only for the Woodpecker instance. Forgejo Actions can be used without asking for permission, and three tiers of (Linux-only, adm64-only) free runners are provided.
Been a while since I applied, but when I did the "reasonable case" was mostly just your repo being FOSS and having a license file (+ a very vague description of what you plan to do and how much resources you'll use)
> Running CI/CD pipelines can use significant amounts of energy. As much as it is tempting to have green checkmarks everywhere, running the jobs costs real money and has environmental costs.
Honestly I think the mention of environmental costs has likely made users hesitant to sign up. Mentioning it costs real money is reasonable. Mentioning the environmental costs is not; the environmental harm is equivalent to the population buying a few dozen extra cars, which can easily be influenced by random marketing decisions by automakers and dealers.
In my experience reprimanding tech savvy people for the environmental costs of compute just doesn’t work. It’s far better to rephrase things into performance optimization problems, which naturally pique engineers’ interest.
What really stands out to me in this migration story isn't the technical side at all, but the reminder that "feature parity" isn't the real hurdle here. Codeberg is already good enough for most day to day workflows; what it doesn't have is the gravitational pull GitHub built through network effects, integrations, and plain old inertia.
This is partially being addressed by projects like https://tangled.org. It's built on the same protocol as bluesky, meaning your identity is preserved across different platforms so that _where_ your git is hosted is unrelated to how you discover and connect with others.
FWIW, Forgejo (Codeberg) is also building federation capability [0].
[0]: https://codeberg.org/forgejo-contrib/federation/src/branch/m...
If only we could use something like a gpg key as our identity. Maybe if it had a mechanism to share and revoke keys, upgrade them, cross-sign them with others to develop some sort of like trust system that was web-like. I bet we could like build a whole infrastructure around it to maintain developer identities in a completely decentralized way.
My primary pain point with Codeberg has been that the issue search is worse, so that there are cases where I'm rather certain than issue exists-- because I've triaged it in the past-- but it's hard to find with the keyboard search. Hopefully that can be improved soon.
There were some times were Codeberg's general performance was noticeably worse, but most recently it has been fine.
If you thinking of migrating a project with hundreds of issues, I would do a test migration and practice a few different searches to test the result quality.
And just sheer amount of documentation and examples out there. Everyone uses it, therefore everyone writes about it, the new hire probably knows it, and if they don't they can find it easily.
Then again maybe for stuff like actions and in general CI/CD it's not all that bad, you don't need whole team to know exactly how to write it, you just need to have a person knowing it. and it's generally not all that hard to learn.
It feels like a <game theory> problem (Tragedy of the commons? First mover? I dunno them well enough). It’s probably a mistake for any one company to not pick GitHub, because it’s likely a higher friction distraction from what the actual goals are of the company. But enough companies paying that price ultimately would benefit everyone by fuelling stronger competition.
This is why CI should be separate from code repository storage and that should be separate from your collaboration tools. They all can speak git if you want.
Are there any alternatives to Github that offer similar bang for the buck? Particularly for very small teams or solo devs that need private repos? The author here specifically mentions Codeberg, which seems like it's just for FOSS projects.
Gitlab is pretty good, plus you can self host it if you really want. It's an interesting company too, they're 100% remote.
You can self host the software underlying Codeberg, which is Forgejo. Then there is also GitLab which has a lot more features but is arguably more intensive to maintain. And then there is the long tail, such as the projects Forgejo was forged from (Gitea and Gogs) and various other FOSS forges e.g. Phorge which was forked from the now discontinued Phabricator.
Stick with Github if it solves your problem. No particular reason to move off, only reasons I've seen so far is "don't like Microsoft" and "Don't like the UI". But overall, GitHub is the leading tech in this space. For FOSS, I can see why some may want to move off, but for commercial work, it's great. Seems to be a bit of a bandwagon of articles of people moving off hitting hackernews (which in reality represents a tiny percentage of users), no need to hop on the bandwagon unless you have some compelling reasons for something else.
The point of GitHub is not technical - the website is terrible. It's the social network.
That’s interesting. I would have said the opposite. I’ve never used any of the social features, but the technical aspects (including integrations) are where the value is.
It does break and go down; and GHA are a real pain in the ass. But the basic hosting and PR workflow are fine.
The PR workflow is fine if you don’t care about stacked PRs, you don’t write reviews, you don’t read nontrivial reviews, and you don’t need the diff viewer.
The site UI has been going downhill these years. It's become heavy and slow, and the buttons are more and more randomly placed. Like after you search for something in the repo, to go back to the repo front page you needed to click on the most unexpected button.
It's still getting things done, for sure, but no longer pleasant to work with.
I think Github has a nice UI.....when the contents finishes loading.
That's the real problem with Github these days. Too much critical information behind throbbers that take their sweet time. I find Codeberg much more responsive, despite being an ocean away and having the occasional anti-AI-scraper screen.
Some competitors like Gitlab have reduced friction by offering "Login with Github", so if you've already got a Github account, the bar for signing up some alternative forges is low.
I help with one of the most popular projects on Codeberg, Fuzzel. I can say we get no shortage of issues and feature requests from being on an alternative forge. Indeed, we have plenty!
Azure Devops, free for up to 5 users. Free runners Free private repositories Plus work item tracking
I like sourcehut. It's the only forge out there that isn't set out to copy the Github UI like everyone else. And its UI itself feels instantaneous, as if it was running locally.
The UI is fast, but it can be difficult to navigate, at least if you aren't familiar with it. In particular, unless it is explicitly mentioned in the README, it isn't at all clear how to report a bug, or submit a patch, or view relevant mailing list archives.
I also like it, particularly for its outstanding CI, but I don't like the patch/email-centric approach. (Gave it a try, didn't have a good time.)
GitLab. There's also the option of self hosting it on a cheap server if you don't like cloud services.
If you want bang for your buck, and you use free GitHub Actions, then no.
bitbucket?
Gittea for self hosting is something I always wanted to try.
I have to interact with bitbucket on a daily basis. My advice is not just "no" but "heck no."
Bitbucket is slow to push to and pull from. From a reliability standpoint I have far more issues with Bitbucket than Github. The web UI feels completely off in a way that's hard to describe if you've never used it - it's like it was created as an afterthought or a skin on an older system, without any sort of craftsmanship behind it. There's also no source code search.
There's probably more, but quite honestly I try and stay out of the web interface of my bitbucket repos as much as humanly possible, so I shall stay happily ignorant of the rest. It's a shame, because I remember Bitbucket when it was the Github for Mercurial with a decent (if derivative) interface, and they allowed you to have private repositories without paying money.
Now, Bitbucket no longer supports Mercurial and Github gives you private repositories. Given those realities, why anybody would ever choose Bitbucket in TYOOL 2025 is beyond my ken.
Sourcehut [1] is another interesting one.
[1] https://sourcehut.org/alpha-details/
Note that private repos are supported on Codeberg. (I would link to one of mine, but you'd just see a 404 :P)
Yes, but you are still not allowed to use them for proprietary software development. That makes it quite useless for most teams developing commercial software.
<s>There's nothing about Codeberg that's FOSS only afaict.</s>
This was incorrect, I misread the changes to the TOS.
Codeberg requires that the repos you host are FOSS
https://codeberg.org/Codeberg/org/pulls/1219 Not true anymore.
From the current Terms of Service:
So the ToS says only private repos that support FLOSS, but then backdoors into "small & personal stuff" which is pretty loose and up to Codeberg's discretion so probably not the best place for your private side project repos.You're right, and after thinking about it a bit more, I think this TOS is actually more confusing than what came before. Saying explicitly that, e.g. MIT licensed software was allowed (because that license is approved by OSI), makes it unambiguous. This feels like if someone complained or had too many repos they're liable to get nuked from orbit. That being said Forgejo is FLOSS and this service is hosted for free so they're allowed to set whatever terms they want. I'll delete my upthread comment as it's misinfo.
No problem. I'm confused by it as well. I migrated a repo that is more source available than open source and didn't realize that it probably is against ToS until afterwards.
I've noticed that several projects on the front page today (and over the past few days) are migrating away from GitHub.
Is there any recent event or broader trend that explains this shift?
Ongoing availability issues, Microsoft's shoehorning of AI, GitHub's focus on migrating to Azure infrastructure rather than adding features and fixing shortcomings. If I had to guess.
... Training their own models out of your code...
If you're publishing your code anywhere, it's getting trained on. MS does not restrict themselves to only training on GH-hosted code.
Yet, not restricting themselves to train on permissively licensed code only.
The two ends of the spectrum, both source available and copyleft licensed code shouldn't be used for training, but who's listening.
The point still stands for private repos, and also not making the job easy for them.
They don't train on private repos, there has been no proof of that anyways
> If you're publishing your code anywhere, it's getting trained on
citation needed. first they need to know my code exists... spend time and traffic crawling it because it's sure as hell not going to be hosted on azure... probably get detected and banned.
No citation needed. It should be an assumption and thought as a malicious cybersecurity threat.
Zig’s announcement[0] might provide some insight
[0] https://ziglang.org/news/migrating-from-github-to-codeberg/
My guess is it's a Summer of the Shark-esque phenomenon. https://en.wikipedia.org/wiki/Summer_of_the_Shark
I'm personally very tired of shoving AI everywhere otherwise GitHub is okay-ish albeit it seems it performed much better when it was a rails website rather than a react "app".
Not naming names but heard from contacts that it is currently a sh*t-show of politics internally right now at GitHub and no progress is being made/large parts of the platform are abandoned unless P0.
The new focus of GitHub is to harvest data for AI.
Everything else not important to them.
I spent some time last week adding Forgejo/Git to my local NAS via docker and tailscale.
More and more people seem to be migrating away from Github. Now if only there were some Mercurial solutions among the alternatives. . .
SourceHut has Mercurial hosting: https://hg.sr.ht
I use SourceHut and I'm glad it exists but its workflows leave much to be desired.
I migrated a while ago.
typedload was the most difficult because I test it on multiple versions of python, but woodpeckerCI does its job so I can still run the tests even after the migration.
For the other projects I have I didn't bother to set up a CI since it's trivial to run locally.
Does Codeberg provide free CI runners? I'd estimate Microsoft spends over $100m/year on free Github CI. Likely their biggest cost. It doesn't seem like a reasonable thing Codeberg to fund for free.
You can use your own Woodpecker instance with Codeberg. I do this at work and privately and it works great and is much faster than the free CI that Codeberg can afford.
For me this is the GitHub moat.
It isn't really a moat so much as a loss leader. Travis CI was free back in the day IIRC.
So it's a moat that trickles out to the sea and has to be kept filled very expensively.
(I'm just keeping the metaphor alive because for me it is the primary blocker, whatever we call it.)
Well if/when GH eliminates the free tier, I'll probably churn. I agree that's the main thing keeping me there.
They do, but their capacity is limited so you have to ask them for access and make a reasonable case.
https://docs.codeberg.org/ci/
Actually, that's only for the Woodpecker instance. Forgejo Actions can be used without asking for permission, and three tiers of (Linux-only, adm64-only) free runners are provided.
Ok, that's very interesting. Last I checked only self-hosted runners were documented, but I definitely want to look into this.
Been a while since I applied, but when I did the "reasonable case" was mostly just your repo being FOSS and having a license file (+ a very vague description of what you plan to do and how much resources you'll use)
The article quotes from Codeberg,
> Running CI/CD pipelines can use significant amounts of energy. As much as it is tempting to have green checkmarks everywhere, running the jobs costs real money and has environmental costs.
Honestly I think the mention of environmental costs has likely made users hesitant to sign up. Mentioning it costs real money is reasonable. Mentioning the environmental costs is not; the environmental harm is equivalent to the population buying a few dozen extra cars, which can easily be influenced by random marketing decisions by automakers and dealers.
In my experience reprimanding tech savvy people for the environmental costs of compute just doesn’t work. It’s far better to rephrase things into performance optimization problems, which naturally pique engineers’ interest.