Running a git forge is easy, I find the social coding/network effect the stickiest part of GitHub. I want my code to be discoverable, and I want to discover others' code.
I wanted to leave GitHub but I'm still stuck there. What it would take for me to finally leave is some kind of federation of the social features, so I can port my stars over, see what others are working on, etc.
Are we using GitHub differently? I don’t understand how the social network part of GitHub has to do with having your code discoverable and to discover.
I’ve never stumbled upon a project by browsing GitHub casually. It’s always through finding the product first and trying to find the source code. If the source code is on some other website, I’ll probably figure it out, but it’s be a new muscle. Same with making an issue or a PR. The barrier is higher but not so high that I wouldn’t complain about a bug.
If anything, I find the social tools on GitHub like PR reviews, issue management, and notifications to be terrible for their job. Perfectly fine for a 1 person project and absolutely awful for a team.
Yes, I think many people use GitHub just for code storage, and that's fine.
I casually browse GitHub sometimes in the same way I do HN. I follow friends and colleagues and through the feed see what they're building and starring. I use global search to find tools and libraries that do what I want.
Sometimes, I come across a repo I like that's on say GitLab, but not GitHub. I quickly forget about such projects because they live in my bookmarks instead of my stars list.
>I find the social tools on GitHub like PR reviews, issue management, and notifications
I don't consider these social features, at least not in the way I'm talking about.
I’m in something of the same boat, although I don’t particularly care about my own stars and what not, for me it’s just a rather effective place to find open source projects to use/contribute towards (along with hosting for my own projects).
I have found running GitHub mirrors for my own projects hosted on a private Forgejo instance works well enough, but the fracturing of GitHub will inevitably cause more difficulty in discovering others’ work. I suppose that opens opportunities up for either federation, or at least aggregation (Sourceforge has been doing that already, although I find its interface a little clunky).
For any given project, are there any forks / is this one a fork, and which ones are more recently/actively maintained, and what are the changes?
That network display where you can not only see all the forks in a timeline, but click on the individual commits is super handy.
Idk how you'd assemble that out of a federated system. It's probably possible but seems like it would require a lot of update traffic going in all directions between all nodes.
I hadn't ever used the email-based pull request until I started using Sourcehut, but ever since I did I've honestly grown to prefer it. People shouldn't require an account at a for-profit company to make contributions to FOSS.
Sourcehut is pretty niche but I like it a lot, and I don't really mind paying for things relative to the value they provide me.
99% of commits on a project come from 1% of contributors, so the main issue w/ migrating to an alternative isn't the networking effect of github, rather that you can't carry over github specific stuff (prs/issues)
i personally like how radicle.xyz managed that, where they manage issues/prs/user identities as git objects, so your entire project is self contained as git repository
If your a small company developing something closed source is there any reason to use GitHub over just setting up a git infrastructure on your private server?
Only reason that I see is that is free to use, why other alternatives are either paid or you needs to be hosted (and thus you need to pay the cost of a server and the work to maintain it).
Free means it's not yours, and could disappear or change at any time.
If you are a small software company, presumably your code is your most important asset. You should be self-hosting that, then you can know exactly where it is and whether it's actually backed up and you can instantly talk to the person who is responsible for it.
To be a little less flippant, small companies don't have an IT department to setup and maintain a git server ... and more. GitHib is also an issue tracker. It's also a (minimal) static webhost. And it's also a way to run actions on your builds.
All that isn't trivial to setup or maintain, so small folks especially will often find it cheaper and faster to pay M$ for all that.
Not saying it doesn't come with downsides and the hassle of maintenance, but at home I have a Linux server (running a Windows VM) + Mac Mini + Forgejo + Forgejo workers on each one of them. With NixOS it was relatively painless to get setup correctly, everything in a reproducible manner, and now I can have a ~10 line YAML file that adds cross-platform builds+signing+publishing when needed, and performance is much better than the free/cheap CI workers you get from Microsoft and others.
They’re free, too. If your project is public, you can spin up dozens (hundreds?) of jobs (10 or so of which will run in parallel) on every push and Microsoft casually pays for it. I’d love to move off GH but I would have to significantly reduce my CI usage (before you ask - already more optimized than anything you usually see) or pay quite a lot for my hobby projects.
Genuine question: Have you considered moving to your own server?
I ran Forejo for a bit, but I made the mistake of trying to use Jenkins for CI, which is very annoying for someone who really doesn't doesn't enjoy devops work.
I think people trying to move off GitHub are being over righteous.
There are far worse companies than GitHub. People acting like this company is the Nazi regime are being ridiculous. GitHub (like most of tech) is rather progressive, and trivial differences in perspective should not be taken so seriously.
Of course, you can choose whichever service you'd like, for whatever reason you'd like, but acting like allies that agree with you on almost everything are enemies is no way to make progress. This is something that should not be high on the list of priorities.
I hear you, and that's a perfectly valid reason to leave. Even if your company left for righteousness reasons rather than reliability, supporting businesses based on your morals is a commendable thing.
I just think GitHub is a long way from Tammany Hall.
> Bitbucket is the obvious existing counterexample: a conventional commercial forge that has never developed into a shared open-source community comparable to GitHub
Agreed. All my customers are on Bitbucket. All the libraries used by their projects (Ruby, Python, JS) are on GitHub.
>GitLab is capable, but it feels incredibly corporate, even more so than GitHub.3 Nor have I found it as good as GitHub at helping people stumble across projects and developers.
So it's not enough for an alternative to do everything you want ... it ALSO has to look "not incredibly corporate", and it has to bring millions of users to your project. Otherwise it's not viable.
It’s really another way of saying: it needs to meet GitHub’s current utility and functions today.
And one of them is ease of discovery. GitHub make’s it really easy to do that. Same with contribution.
As far as looks go? That’s more subjective.
But the discovery and contributions piece is easy to prove, just look at how much traction a project gets when it’s hosted there versus elsewhere. Even really large projects that has many contributors have moved there like WebKit
Right, I'm not saying "there are no differences between GitLab and GitHub". They have all the same core functionality, but obviously GitHub has a unique community with more OSS folks.
What I'm saying is, you could pick almost any popular Internet site, craft your requirements to describe it exactly, and write a blog post lamenting how there's no alternative.
It doesn't mean there's really no alternative (for you or anyone else) ... it just means you're announcing to the world that you are a big fan of that site, and you personally will never be happy with any other site no matter what.
> And one of them is ease of discovery. GitHub make’s it really easy to do that. Same with contribution.
At the end of the day, this seems to be the author's ultimate decision factor. None of the alternatives--open-source, self-hosted, or commercial--have the social gravitational pull GitHub does. Popularity begets popularity.
My projects are gone from microsoft github.com. Not because I decided to move away, but mostly because github.com is now blocking noscript/basic HTML browsers for most of its basic functions, then it was actually them who did boot me away.
Github is not something that should be replaced. Rather, a different kind of model needs to exist. Before Git, there were things like Subversion, for instance. All of that slowed way down after Git showed up to the party because people liked the fact Git was "easier to use" and eventually networking effects. When Microsoft purchased Git, the death knell had all ready sounded, but nobody was listening.
How would subversion fix this problem exactly? It would still be a centralized forge that Microsoft could still control/ruin. In fact, more centralized than Git, which itself was designed to be decentralized (though admittedly most people don't use it that way).
Microsoft didn't purchase "Git", they purchased Github, the largest forge for Git. Git will continue to exist no matter what Microsoft does.
Also, I have absolutely no desire to ever, ever go back to SVN. When I was a junior engineer in my first software job, every Friday I would have to do The Merge, which would usually take most of the day because it would be spent solving all the merge conflicts. When I discovered the git-svn thing, it was like manna from heaven since it made a 4+ hour job take around ~45 minutes.
Your apparent problems with Git the source control system aren’t what any of this is talking about, this is about GitHub as a platform.
SourceForge is your better “pre-git” analogue here, and it, like SVN, still exists and is actively maintained and used.
I am aware of what this article is talking about in terms of platforms. Sourceforge might be a better analogy. What I was saying is that development of other source control like Subversion halted as Git entered the scene. Git was first version control, subsequently a platform.
The issue isn't the technology (git, subversion, cvs, etc), it's that developers FOMO and glom on to what every other developer uses so you end up with these huge silos that they inevitably complain about.
Running a git forge is easy, I find the social coding/network effect the stickiest part of GitHub. I want my code to be discoverable, and I want to discover others' code.
I wanted to leave GitHub but I'm still stuck there. What it would take for me to finally leave is some kind of federation of the social features, so I can port my stars over, see what others are working on, etc.
Are we using GitHub differently? I don’t understand how the social network part of GitHub has to do with having your code discoverable and to discover.
I’ve never stumbled upon a project by browsing GitHub casually. It’s always through finding the product first and trying to find the source code. If the source code is on some other website, I’ll probably figure it out, but it’s be a new muscle. Same with making an issue or a PR. The barrier is higher but not so high that I wouldn’t complain about a bug.
If anything, I find the social tools on GitHub like PR reviews, issue management, and notifications to be terrible for their job. Perfectly fine for a 1 person project and absolutely awful for a team.
Yes, I think many people use GitHub just for code storage, and that's fine.
I casually browse GitHub sometimes in the same way I do HN. I follow friends and colleagues and through the feed see what they're building and starring. I use global search to find tools and libraries that do what I want.
Sometimes, I come across a repo I like that's on say GitLab, but not GitHub. I quickly forget about such projects because they live in my bookmarks instead of my stars list.
>I find the social tools on GitHub like PR reviews, issue management, and notifications
I don't consider these social features, at least not in the way I'm talking about.
I’m in something of the same boat, although I don’t particularly care about my own stars and what not, for me it’s just a rather effective place to find open source projects to use/contribute towards (along with hosting for my own projects).
I have found running GitHub mirrors for my own projects hosted on a private Forgejo instance works well enough, but the fracturing of GitHub will inevitably cause more difficulty in discovering others’ work. I suppose that opens opportunities up for either federation, or at least aggregation (Sourceforge has been doing that already, although I find its interface a little clunky).
In the end GitHub will be a dating site
Or a music making platform
I remember there's at least one serious effort for forge federation. But don't know what it's called or how to search for it.
Edit: here's one: https://forgefed.org/
And the forks/network tree.
For any given project, are there any forks / is this one a fork, and which ones are more recently/actively maintained, and what are the changes?
That network display where you can not only see all the forks in a timeline, but click on the individual commits is super handy.
Idk how you'd assemble that out of a federated system. It's probably possible but seems like it would require a lot of update traffic going in all directions between all nodes.
Fediverse all the things.
Codeberg is a perfect drop-in 1:1 replacement. I find this article to be pretentious nonsense.
I hadn't ever used the email-based pull request until I started using Sourcehut, but ever since I did I've honestly grown to prefer it. People shouldn't require an account at a for-profit company to make contributions to FOSS.
Sourcehut is pretty niche but I like it a lot, and I don't really mind paying for things relative to the value they provide me.
99% of commits on a project come from 1% of contributors, so the main issue w/ migrating to an alternative isn't the networking effect of github, rather that you can't carry over github specific stuff (prs/issues)
i personally like how radicle.xyz managed that, where they manage issues/prs/user identities as git objects, so your entire project is self contained as git repository
If your a small company developing something closed source is there any reason to use GitHub over just setting up a git infrastructure on your private server?
Only reason that I see is that is free to use, why other alternatives are either paid or you needs to be hosted (and thus you need to pay the cost of a server and the work to maintain it).
Free means it's not yours, and could disappear or change at any time.
If you are a small software company, presumably your code is your most important asset. You should be self-hosting that, then you can know exactly where it is and whether it's actually backed up and you can instantly talk to the person who is responsible for it.
If you can't afford 5-10 dollars/month for a cheap vps, you have no business setting up a company.
Convenience.
To be a little less flippant, small companies don't have an IT department to setup and maintain a git server ... and more. GitHib is also an issue tracker. It's also a (minimal) static webhost. And it's also a way to run actions on your builds.
All that isn't trivial to setup or maintain, so small folks especially will often find it cheaper and faster to pay M$ for all that.
This is what I do. If however I wanted to do some open source I would definitely copy releases to GitHub as well
The only reason I keep my projects on it is the Windows and macOS runners.
Not saying it doesn't come with downsides and the hassle of maintenance, but at home I have a Linux server (running a Windows VM) + Mac Mini + Forgejo + Forgejo workers on each one of them. With NixOS it was relatively painless to get setup correctly, everything in a reproducible manner, and now I can have a ~10 line YAML file that adds cross-platform builds+signing+publishing when needed, and performance is much better than the free/cheap CI workers you get from Microsoft and others.
They’re free, too. If your project is public, you can spin up dozens (hundreds?) of jobs (10 or so of which will run in parallel) on every push and Microsoft casually pays for it. I’d love to move off GH but I would have to significantly reduce my CI usage (before you ask - already more optimized than anything you usually see) or pay quite a lot for my hobby projects.
Genuine question: Have you considered moving to your own server?
I ran Forejo for a bit, but I made the mistake of trying to use Jenkins for CI, which is very annoying for someone who really doesn't doesn't enjoy devops work.
How’s about radicle.dev ? Apparently like GitHub, but decentralized like Git.
It's mentioned in the article.
I tried it, years apart. It's forever experimental, and requires hosting for forever online repo anyway.
Forgejo is also mentioned, to me it's a valid alternative, without the community aspect.
I think people trying to move off GitHub are being over righteous.
There are far worse companies than GitHub. People acting like this company is the Nazi regime are being ridiculous. GitHub (like most of tech) is rather progressive, and trivial differences in perspective should not be taken so seriously.
Of course, you can choose whichever service you'd like, for whatever reason you'd like, but acting like allies that agree with you on almost everything are enemies is no way to make progress. This is something that should not be high on the list of priorities.
While many have ethical issues with GitHub, my understanding is that the current wave of people leaving are doing so because of _reliability_ reasons.
I might have moved off for self righteousness but my company might be more interested in moving off because their reliability is absolutely garbage
I hear you, and that's a perfectly valid reason to leave. Even if your company left for righteousness reasons rather than reliability, supporting businesses based on your morals is a commendable thing.
I just think GitHub is a long way from Tammany Hall.
A devops friend of mine raises an intriguing point - he does not aim for many-nines reliability with dev infrastructure.
He aims for people being able to keep doing their work when whatever service they regularly use is down.
(Which also means that he is able to go on vacation.)
That's so sad. Maybe if devs weren't so FOMO, they wouldn't tie themselves so tightly to things like github, chrome, etc.
> Bitbucket is the obvious existing counterexample: a conventional commercial forge that has never developed into a shared open-source community comparable to GitHub
Agreed. All my customers are on Bitbucket. All the libraries used by their projects (Ruby, Python, JS) are on GitHub.
This guy is defining himself into a corner:
>GitLab is capable, but it feels incredibly corporate, even more so than GitHub.3 Nor have I found it as good as GitHub at helping people stumble across projects and developers.
So it's not enough for an alternative to do everything you want ... it ALSO has to look "not incredibly corporate", and it has to bring millions of users to your project. Otherwise it's not viable.
It’s really another way of saying: it needs to meet GitHub’s current utility and functions today.
And one of them is ease of discovery. GitHub make’s it really easy to do that. Same with contribution.
As far as looks go? That’s more subjective.
But the discovery and contributions piece is easy to prove, just look at how much traction a project gets when it’s hosted there versus elsewhere. Even really large projects that has many contributors have moved there like WebKit
Right, I'm not saying "there are no differences between GitLab and GitHub". They have all the same core functionality, but obviously GitHub has a unique community with more OSS folks.
What I'm saying is, you could pick almost any popular Internet site, craft your requirements to describe it exactly, and write a blog post lamenting how there's no alternative.
It doesn't mean there's really no alternative (for you or anyone else) ... it just means you're announcing to the world that you are a big fan of that site, and you personally will never be happy with any other site no matter what.
> And one of them is ease of discovery. GitHub make’s it really easy to do that. Same with contribution.
At the end of the day, this seems to be the author's ultimate decision factor. None of the alternatives--open-source, self-hosted, or commercial--have the social gravitational pull GitHub does. Popularity begets popularity.
I share the feeling though, by corporate I believe what is meant: does not cater to public communities.
GitHub was community first, then enterprise. MS hasn't managed to ruin that.
found the vanilla dvorak user (?)
GitSocial? https://github.com/gitsocial-org/gitsocial
My projects are gone from microsoft github.com. Not because I decided to move away, but mostly because github.com is now blocking noscript/basic HTML browsers for most of its basic functions, then it was actually them who did boot me away.
I don't know, tangled.org seems promising.
Tangled is VC funded and owned by investors, not the community like Codeberg or Forgejo.
https://blog.tangled.org/seed/
Avoid.
Github is not something that should be replaced. Rather, a different kind of model needs to exist. Before Git, there were things like Subversion, for instance. All of that slowed way down after Git showed up to the party because people liked the fact Git was "easier to use" and eventually networking effects. When Microsoft purchased Git, the death knell had all ready sounded, but nobody was listening.
How would subversion fix this problem exactly? It would still be a centralized forge that Microsoft could still control/ruin. In fact, more centralized than Git, which itself was designed to be decentralized (though admittedly most people don't use it that way).
Microsoft didn't purchase "Git", they purchased Github, the largest forge for Git. Git will continue to exist no matter what Microsoft does.
Also, I have absolutely no desire to ever, ever go back to SVN. When I was a junior engineer in my first software job, every Friday I would have to do The Merge, which would usually take most of the day because it would be spent solving all the merge conflicts. When I discovered the git-svn thing, it was like manna from heaven since it made a 4+ hour job take around ~45 minutes.
Your apparent problems with Git the source control system aren’t what any of this is talking about, this is about GitHub as a platform. SourceForge is your better “pre-git” analogue here, and it, like SVN, still exists and is actively maintained and used.
I am aware of what this article is talking about in terms of platforms. Sourceforge might be a better analogy. What I was saying is that development of other source control like Subversion halted as Git entered the scene. Git was first version control, subsequently a platform.
The issue isn't the technology (git, subversion, cvs, etc), it's that developers FOMO and glom on to what every other developer uses so you end up with these huge silos that they inevitably complain about.