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’ve never stumbled upon a project by browsing GitHub casually.
Same.
The “discoverability” of github is two things:
1) Recognition of the name; so if I cannot find the source code and I believe something to be open source I will google the product name with “github”.
2) I can reasonably expect everyone to have an account, so getting issues and PRs is less effort than with other forges.
But I’ve practically never discovered some new FOSS from githubs social features, and I actually look at my friends activity feeds.
Completely agreed, it had essentially everything I wanted out of such a system. I think they would've nailed it if they had just integrated it into the browser / an extension, and I'm baffled that they left it in such an awkward state for the full run - almost smells like intentional burying.
Revocation was hard, but it's not like existing systems are solving that in practice either, and you can get a long way by just keeping short leases (which is fine because nothing needs to communicate with any third party).
If passkeys weren't so blatantly DRM-friendly I might like those, but they seem intentionally human-hostile for no good reason at all.
You've have never typed: language, project type into the search bar and found countless projects and reviewed a few to find something that matches what you wanted. You've never clicked on who someone is following and found really cool repos? I'm always surprised by the useful projects I never thought would exist.
Yeah. I've never done that. I can see the value in it, though.
Personally, I do a Kagi search, or I make an LLM do it for me.
I highly prefer word-of-mouth recommendations like Reddit, HackerNews, or Lobsters. It's quite easy to browse threads where people mention hating some package and switching to something else. It's also a lot easier to see gamified posts (astroturfing), whereas it's really hard to judge projects on GitHub. So many forks are distractions, and stars mean so little. As such, I highly value a personal blog post.
Similarly, I look at what the projects I find link to. They'll often be "inspired by" another project, or a rewrite in a different language. It's a great way to see how different creators consider trade-offs between different projects.
I only browse someone's GitHub when I see an insightful blog post, and I want to learn more about the author and what they work on. Usually I close that tab within 10 seconds cause I can't be bothered to figure out which of their 100 repos is interesting.
My best analogy is that GitHub is the TripAdvisor/Yelp/Google Reviews of finding a good restaurant. Those platforms have been gamified aggressively. The signal is low, and you can't flatten judgement of a restaurant into a 1-5 star scale. Your best bet is to find opinions tied to real people that aren't tied to points.
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).
I would imagine RSS solves this pretty nicely? (Though personally I subscribe to project blogs for major updates; the GitHub news feed is overwhelming with information I don't care about)
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.
GitHub is really two separate products: a code forge for teams and a social coding platform to collaborate on open source.
When I use the social platform, it is mostly as a read-only website. I am occasionally commenting, opening issues, PRs etc. The slowness and annoyances do not matter that much.
But I live in the team tool, where the annoyances and paper cuts are painful. Besides poor craftsmanship, there is often tension between the simpler design for social which sacrifices usability for pro use cases.
The social platform, which has huge network effects and is really hard to replace, is basically a loss leader for marketing the team product. I wonder if it would be viable for another company to create a team tool that stands on its own by outclassing Github like Linear outclasses Jira? That should be easier to replace. And Microsoft could keep running the social platform for the time being, where the adoption of alternatives is much slower and requires a much longer time frame.
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.
I really like sourcehut but I do find it frustrating that it does not offer LFS. I know I could point at another providers’ LFS, but then I may as well use their entire git offering too
I don't know why you censored "underage". People are weird.
Anyway, the only source I've really heard trying to make Devault a sex-pest comes from Bryan Lunduke, who's an idiot that isn't opposed to embellishing or flatout lying about people he doesn't like, so I am afraid that I'm skeptical of that claim.
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.
Last time I looked into self hosting Windows CI, it seemed like everything kind of expected you to install all your tools ahead of time, rather than anything containerised. I assume Nix helps with that? Are there any docs you can point me at?
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 have - both considered it and actually did it for a while.
A few years, one hack, and a couple of apartment changes later, my server is behind on maintenance and lying somewhere waiting for me to set it up and update it. Meanwhile, my free action workflows just keep working. On a good day, at least - Microsoft’s SLA is like one 9 and it’s on the wrong side of the comma.
24 GB does sound pretty sweet. I’ll check if they still offer that, thanks. The price of having to accept an Oracle EULA might just be higher than anything else mentioned thus far, though.
might be a silly question, but isn't macos relatively easily virtualisable? i understand it's not done commercially bc of licensing issues, but is there a piece of software where you just get a vps or two and virtualise all of your build targets yourself, so your ci bill is just the vps bill?
Virtualizing macOS on non-Apple hardware is illegal. That, and in between the costs of hardware (even assuming I breach their licence and go non-Apple) and the costs of electricity, this quickly becomes a sizeable time and cash investment.
VPS bills accumulate. I must have saved hundreds or thousands of dollars by not hosting this myself over the years.
Yeah I think people vastly underestimate the value of free CI runners - especially free Windows/Mac runners. Big projects with dozens of members can afford the effort to set up their own runners but small one-man projects aren't going to bother and they represent the vast majority of Github.
Microsoft spends around $100m/year on free CI runners. Github is going to have to get a lot worse before most people give that up.
Also the post correctly mentions the importance of stacked PRs and how it's crazy that it has taken Github this long to get them. But it fails to mention that it's taking its competitors even longer. Gitlab doesn't have them. Forgejo has no plans. The only other forges I know that support them are Phabricator/Phorge (I think anyway; it's been a while), and Tangled, which tbh looks like it has blown its weirdness budget way too much to be a viable Github competitor.
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
I agree and I will go further: radicle has the only competent federation model. They are the only designers who understood from the beginning that issues and PRs belong to the repo, not to a bunch of random servers hosting every issue opened by a different user.
It also allows for arbitrary levels of redundancy without passively saturating the network with ActivityPub traffic that no one looks at.
There needs to be some kind of shared infrastructure to make it easier for new contributors.
As for issue tracking, there are also other git-native alternatives out there. Epiq is entirely git-backed, vendor agnostic and persists state as a versioned log in your repo.
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.
And once you’re no longer a small company, setting up any server comes with a pile of bureaucracy. As a dev, I don’t want to set up a server when 80% of the work is filling out SOC 2 change management forms and dealing with crowdstrike. (And nobody wants to spend time debugging why crowdstrike makes the CI pipeline slow or arguing with your auditors about why your ephemeral images don’t actually need crowdstrike.)
When we say it’s about “discovery”, it’s not about people anonymously obtaining and using the software. What we really mean is that lots of users need to have accounts so that star count go up.
As a maintainer of an open source project I largely care about CI, discoverability on the web, and the sign up burden being small so that issues continue to be reported. I think Radicle and Tangled are probably the future in that way. Tangled needs to support private repositories and Radicle needs a real CI solution. We're not far off from either.
I don't mind that Tangled is VC funded as long the tech is open (it is) and as far as I can discern it is federated and decentralized. You and I probably have different ideas of what the future may be and that's okay.
There is a view where developers think of a forge as a place where they host their code.
Than there is another view where the forge is where you go to get code others have written, and this is where GitHub shines. Because of the collective audit.
> 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.
I've worked in a couple of companies who used bitbucket, and I've been glad when each of them migrated elsewhere.
Bitbucket managed to be slow, annoying, and suffer more outages than github ever did. (Though perhaps that has changed, we're all aware that github has been struggling "recently".)
Before we can talk about a replacement we need to know what is being replaced. If your criteria is a carbon copy of GitHub then of course only GitHub suffices. You have to be more specific about your needs before you can find something else.
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 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.
> I recall some time in 2016 when they were regex replacing variable names in peoples repositories and pestering them if they didn’t accept the request.
I'm conflating multiple things over 5 years, my memory seems imperfect. Apologies.
What I've mixed together:
1) The "Alex" bot, which was opt-in and seemed to be everywhere. [0]
2) The "inclusive-coding-bot" which was not opt-in and just inserted itself into everything (which came out later). [1]
3) Github disabling a popular repository for using the word "Retard". [2]
Neither of the first two were actually endorsed by github, I just conflated them because of the "WebM for Retards" controversy and because they'd been very public about other inclusive things like not interviewing white people [3] or calling white women "some of the biggest barriers to progress are white women". [4]
my God, even 11 years ago, people had the same stupid political arguments as today:
> I think the fundamental misunderstanding we're having here is that people on the left side of the political spectrum believe the solution to all answers is more government control.
Yes, its really similar and unsurprisingly its still inflammatory.
My girlfriend mentioned that this year is an election year in sweden, which made me realise how bad the propaganda was in 2016- but its all the same stuff.
Not for vibe-coders, and also not for any business or user with any project using AI for "most" of the code (an ill-defined term in their ToS that nonetheless safely excludes many serious projects adopting AI for a variety of reasons). I have a code base that is entirely handwritten JS. I am porting it to .NET/C# with AI assistance, plus a lot of supervision and manual revision by me to ensure the quality meets my requirements. When finished, the code base will be "mostly" AI-generated within the meaning of Codeberg's ToS, even though I wrote the underlying code base by hand, and will have overseen and approved every line of AI-generated C# code myself. I don't have any reason to trust that Codeberg will be more or less reasonable in my particular use case, nor that they will interpret their ToS consistently to permit or disallow my project even assuming their terms do allow my project (and it's just of many to be clear). They control their ToS and I assume they drafted it vaguely on purpose to ensure they have flexibility to kick out anyone deemed undesirable. At least that's what I would do in their shoes if I wanted flexibility. If coding is a hobby and you hate AI or simply never use it, you can definitely use Codeberg. If you are an enterprise customer, or you use GenAI to any significant extent (or both), you nearly certainly cannot safely do so. And that's fine; Codeberg can do whatever they want. But Codeberg is in no way a "perfect drop-in 1:1 replacement" for most developers.
>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.
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.
But Git isn't the platform. It's still just a version control.
The article itself is explaining other platforms that work with Git, of which there are dozens. The `git` program itself isn't even developed on Github; it's developed on the kernel.org site [1]. Git != Github.
There's still development for SVN, Perforce still has plenty of paying customers, and Epic games themselves released a new version control a few weeks ago [2], so it's not like everyone assumes that version control is a "solved" problem. I'm honestly not sure what your point is.
Well, it certainly wouldn't be called Github, but I'm sure there would be some equivalent "MercurialHub" or "MonotoneHub" had Git not been created.
Even before Git, there was Bitkeeper (which in some ways was arguably better), and that was what they used for the kernel until some drama with Larry McVoy happened. If there wasn't that drama, I think some kind of BitkeeperHub might have eventually happened.
Yes, Git overtook it, but I still don't really understand your point; it's not about Git, it's about a centralized forge.
>Yes, Git overtook it, but I still don't really understand your point; it's not about Git, it's about a centralized forge.
What you aren't understanding is that all software development proceeds first by an underlying philosophy that evolves into other solutions inspired by the software that came before it. Git inspired the way Github works. You are trying to separate the two into distinct entities when they are really a flowing into one another.
Sure, but GitHub sort of runs contrary to what Git's philosophy, which is why I'm arguing that "Git" is an irrelevant variable with regards to the problems with Github.
Git, as a software version control platform, is supposed to be decentralized. It's designed to mimic the way that kernel development was done, with a lot of separate repos and email being used to merge in diff files.
If anything, Github really brings the subversion model to Git; Git primarily just has categorically better merging than SVN.
>Sure, but GitHub sort of runs contrary to what Git's philosophy, which is why I'm arguing that "Git" is an irrelevant variable with regards to the problems with Github.
Ah, well that makes your position clearer. It does "sort of run contrary" but it also doesn't totally "break" what Git was trying to do. You still have your local copy but your ability to share it is centralized.
The next iteration for SVN MIGHT have been to have some kind of p2p website to share sources since it all ready had a centralized way to share the code. That's usually the way things bounce around. Higher centralization/decentralization/back to centralization. Git kind of arrested that evolutionary curve with a quasi-decentralization and a centralized sharing hybrid.
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.
But WHY they glom on to it and not say, Subversion is my point. We can imagine an alternative world in which Subversion mutated into something more like Git. Why doesn't it exist? Because Git came in and everyone decided it was "the answer to all things".
I've recently seen https://v-it.org/, although the naming ("social software") is strange, the idea seems to be great: automatically maintain your own feature set of the software even if not all of the features are present in the mainline.
>Did you confuse github with git? Indeed centralized git in Github is hardly any different from svn.
I used shorthand since I assumed people here were smart enough to assume that Microsoft buying Git would be understood as Github and not Git. It has proven to be a bad assumption.
Could be because everyone is so eager to assume I'm so dumb. ;) Regardless, the communication wasn't clear enough to convey the meaning, and that much is on me. I won't make that mistake again.
The article in which you are replying to is specifically about different git-compatible forges, not just Github. If you use "Git", people are going to (correctly) think you're referring to the version control software, not Github. This isn't weird.
You may want to read this comment again and really evaluate it as if you didn't write it. Maybe shop it around. Ask your wife, or better some random people with the names scrubbed so they don't know it's you, to tell you who is the asshole and exactly why. What about the statement exposes the asshole by it's own self-contained internal logic? I know, it doesn't matter what 9 out of 10 say, even if they all say the same thing and point out the same reasons, all that proves is "it has proven to be a bad assumption" that everyone else isn't an idiot eh?
Man that's convenient. Why didn't I ever think of that genius way to resolve everything? Oh right, duh.
You may want to read this comment again and really evaluate it as if you didn't write it. Maybe shop it around. Ask your wife, or better some random people with the names scrubbed so they don't know it's you, to tell you who is the asshole and exactly why.
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’ve never stumbled upon a project by browsing GitHub casually.
Same.
The “discoverability” of github is two things:
1) Recognition of the name; so if I cannot find the source code and I believe something to be open source I will google the product name with “github”.
2) I can reasonably expect everyone to have an account, so getting issues and PRs is less effort than with other forges.
But I’ve practically never discovered some new FOSS from githubs social features, and I actually look at my friends activity feeds.
Yeah, 2 is all I really care about. First-party discovery systems are almost always bad imo.
And every time I think about it for more than a second, I get mad that OpenID got eaten by OAuth.
I’m still mad that Mozillas persona got no adoption.
I’m sure it was imperfect, but in theory it was easy to host and easy to implement. :(
Completely agreed, it had essentially everything I wanted out of such a system. I think they would've nailed it if they had just integrated it into the browser / an extension, and I'm baffled that they left it in such an awkward state for the full run - almost smells like intentional burying.
Revocation was hard, but it's not like existing systems are solving that in practice either, and you can get a long way by just keeping short leases (which is fine because nothing needs to communicate with any third party).
If passkeys weren't so blatantly DRM-friendly I might like those, but they seem intentionally human-hostile for no good reason at all.
You've have never typed: language, project type into the search bar and found countless projects and reviewed a few to find something that matches what you wanted. You've never clicked on who someone is following and found really cool repos? I'm always surprised by the useful projects I never thought would exist.
Yeah. I've never done that. I can see the value in it, though.
Personally, I do a Kagi search, or I make an LLM do it for me.
I highly prefer word-of-mouth recommendations like Reddit, HackerNews, or Lobsters. It's quite easy to browse threads where people mention hating some package and switching to something else. It's also a lot easier to see gamified posts (astroturfing), whereas it's really hard to judge projects on GitHub. So many forks are distractions, and stars mean so little. As such, I highly value a personal blog post.
Similarly, I look at what the projects I find link to. They'll often be "inspired by" another project, or a rewrite in a different language. It's a great way to see how different creators consider trade-offs between different projects.
I only browse someone's GitHub when I see an insightful blog post, and I want to learn more about the author and what they work on. Usually I close that tab within 10 seconds cause I can't be bothered to figure out which of their 100 repos is interesting.
My best analogy is that GitHub is the TripAdvisor/Yelp/Google Reviews of finding a good restaurant. Those platforms have been gamified aggressively. The signal is low, and you can't flatten judgement of a restaurant into a 1-5 star scale. Your best bet is to find opinions tied to real people that aren't tied to points.
if I'm language agnostic, i'm not browsing package manager websites for software, i'm searching on github
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/
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
We already have linkedin for that!
Github for lesbians: https://xkcd.com/624/
Or a music making platform
Or a bimonthly curated box of snacks
https://gitnostr.com/
How much do you actually use social features of GitHub besides bug reporting?
Your stars list is browser bookmarks. You can see what others are doing even if you don't have accounts on their sites.
>You can see what others are doing even if you don't have accounts on their sites
Not practically. That works up to a number like three. Are you really going to manually poll every account you care about?
I would imagine RSS solves this pretty nicely? (Though personally I subscribe to project blogs for major updates; the GitHub news feed is overwhelming with information I don't care about)
How were you doing it on GitHub?
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.
GitHub is really two separate products: a code forge for teams and a social coding platform to collaborate on open source.
When I use the social platform, it is mostly as a read-only website. I am occasionally commenting, opening issues, PRs etc. The slowness and annoyances do not matter that much.
But I live in the team tool, where the annoyances and paper cuts are painful. Besides poor craftsmanship, there is often tension between the simpler design for social which sacrifices usability for pro use cases.
The social platform, which has huge network effects and is really hard to replace, is basically a loss leader for marketing the team product. I wonder if it would be viable for another company to create a team tool that stands on its own by outclassing Github like Linear outclasses Jira? That should be easier to replace. And Microsoft could keep running the social platform for the time being, where the adoption of alternatives is much slower and requires a much longer time frame.
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.
I really like sourcehut but I do find it frustrating that it does not offer LFS. I know I could point at another providers’ LFS, but then I may as well use their entire git offering too
Agreed; I occasionally have to awkwardly work around the lack of support for large files by hard-coding S3 links and the like. That kind of sucks.
Honestly I mostly just kind of wish that Git had proper support for binary files. I really need to play with that Lore VCS that Epic made.
[flagged]
I don't know why you censored "underage". People are weird.
Anyway, the only source I've really heard trying to make Devault a sex-pest comes from Bryan Lunduke, who's an idiot that isn't opposed to embellishing or flatout lying about people he doesn't like, so I am afraid that I'm skeptical of that claim.
I always confuse him with DHH. Apologies to DeVault.
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.
Last time I looked into self hosting Windows CI, it seemed like everything kind of expected you to install all your tools ahead of time, rather than anything containerised. I assume Nix helps with that? Are there any docs you can point me at?
https://github.com/highpost/forgejo-appliance
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 have - both considered it and actually did it for a while.
A few years, one hack, and a couple of apartment changes later, my server is behind on maintenance and lying somewhere waiting for me to set it up and update it. Meanwhile, my free action workflows just keep working. On a good day, at least - Microsoft’s SLA is like one 9 and it’s on the wrong side of the comma.
I have one of those free Oracle cloud instances with 24 gigs of RAM; I've considered hosting there, but for now I just use Sourcehut.
There definitely is value in "it's hosted somewhere that's not my house" though.
24 GB does sound pretty sweet. I’ll check if they still offer that, thanks. The price of having to accept an Oracle EULA might just be higher than anything else mentioned thus far, though.
might be a silly question, but isn't macos relatively easily virtualisable? i understand it's not done commercially bc of licensing issues, but is there a piece of software where you just get a vps or two and virtualise all of your build targets yourself, so your ci bill is just the vps bill?
Virtualizing macOS on non-Apple hardware is illegal. That, and in between the costs of hardware (even assuming I breach their licence and go non-Apple) and the costs of electricity, this quickly becomes a sizeable time and cash investment.
VPS bills accumulate. I must have saved hundreds or thousands of dollars by not hosting this myself over the years.
Yeah I think people vastly underestimate the value of free CI runners - especially free Windows/Mac runners. Big projects with dozens of members can afford the effort to set up their own runners but small one-man projects aren't going to bother and they represent the vast majority of Github.
Microsoft spends around $100m/year on free CI runners. Github is going to have to get a lot worse before most people give that up.
Also the post correctly mentions the importance of stacked PRs and how it's crazy that it has taken Github this long to get them. But it fails to mention that it's taking its competitors even longer. Gitlab doesn't have them. Forgejo has no plans. The only other forges I know that support them are Phabricator/Phorge (I think anyway; it's been a while), and Tangled, which tbh looks like it has blown its weirdness budget way too much to be a viable Github competitor.
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
I agree and I will go further: radicle has the only competent federation model. They are the only designers who understood from the beginning that issues and PRs belong to the repo, not to a bunch of random servers hosting every issue opened by a different user.
It also allows for arbitrary levels of redundancy without passively saturating the network with ActivityPub traffic that no one looks at.
There needs to be some kind of shared infrastructure to make it easier for new contributors.
As for issue tracking, there are also other git-native alternatives out there. Epiq is entirely git-backed, vendor agnostic and persists state as a versioned log in your repo.
Im its creator, for full disclosure.
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.
And once you’re no longer a small company, setting up any server comes with a pile of bureaucracy. As a dev, I don’t want to set up a server when 80% of the work is filling out SOC 2 change management forms and dealing with crowdstrike. (And nobody wants to spend time debugging why crowdstrike makes the CI pipeline slow or arguing with your auditors about why your ephemeral images don’t actually need crowdstrike.)
This makes sense for small companies that are pizza shops and barbers. It does not make sense for small companies that are in any sector of IT.
This is what I do. If however I wanted to do some open source I would definitely copy releases to GitHub as well
Brand loyalty.
Let’s be completely honest:
When we say it’s about “discovery”, it’s not about people anonymously obtaining and using the software. What we really mean is that lots of users need to have accounts so that star count go up.
As a maintainer of an open source project I largely care about CI, discoverability on the web, and the sign up burden being small so that issues continue to be reported. I think Radicle and Tangled are probably the future in that way. Tangled needs to support private repositories and Radicle needs a real CI solution. We're not far off from either.
Tangled is a de facto centralized platform and it is VC funded. It is not the future.
I don't mind that Tangled is VC funded as long the tech is open (it is) and as far as I can discern it is federated and decentralized. You and I probably have different ideas of what the future may be and that's okay.
There is a view where developers think of a forge as a place where they host their code.
Than there is another view where the forge is where you go to get code others have written, and this is where GitHub shines. Because of the collective audit.
Didn’t we have these also without GitHub? If you wanted to share code, you could that even without GitHub.
> 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.
I've worked in a couple of companies who used bitbucket, and I've been glad when each of them migrated elsewhere.
Bitbucket managed to be slow, annoying, and suffer more outages than github ever did. (Though perhaps that has changed, we're all aware that github has been struggling "recently".)
In the early days of github, it offered private repositories only for paid users. Bitbucket allowed private repositories for free.
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.
GitSocial? https://github.com/gitsocial-org/gitsocial
Before we can talk about a replacement we need to know what is being replaced. If your criteria is a carbon copy of GitHub then of course only GitHub suffices. You have to be more specific about your needs before you can find something else.
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.
Bro. It’s FOSS. It’s owned by the users. You can run tangled all on your own. If VC somehow ruins it, it’ll still be running just fine.
> Bro. It’s FOSS. It’s owned by the users...
Can you show me where can I donate to the Tangled Non Profit Foundation?
> If VC somehow ruins it, it’ll still be running just fine
I would prefer if it wasn't funded by VCs.
That's so sad. Maybe if devs weren't so FOMO, they wouldn't tie themselves so tightly to things like github, chrome, etc.
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.
Small Tech Discrimination.
6 Years later, a priceless comment and aged like fine pristine wine. [0]
The time to self-host over GitHub is now since they do not even have a CEO of GitHub anymore to help.
[0] https://news.ycombinator.com/item?id=22868406
the git protocol has been federated and self-hostable since 2005. the part where a stranger finds your repo and stars it has not
[flagged]
[dead]
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.)
Yeah seems like six of one, half a dozen of another. GitHub’s downtime blocks devs
Codeberg is a perfect drop-in 1:1 replacement. I find this article to be pretentious nonsense.
Codeberg recently made HN very angry by banning vibecoded projects. It's opinionated. GitHub isn't.
Github is opinionated.
I recall some time in 2016 when they were regex replacing variable names in peoples repositories and pestering them if they didn’t accept the request.
They also worked very hard to change the default branch name for everyone, eventually compromising.
Github definitely has opinions, they might align with yours, for now.
> I recall some time in 2016 when they were regex replacing variable names in peoples repositories and pestering them if they didn’t accept the request.
Do you have more details about that?
I'm conflating multiple things over 5 years, my memory seems imperfect. Apologies.
What I've mixed together:
1) The "Alex" bot, which was opt-in and seemed to be everywhere. [0]
2) The "inclusive-coding-bot" which was not opt-in and just inserted itself into everything (which came out later). [1]
3) Github disabling a popular repository for using the word "Retard". [2]
Neither of the first two were actually endorsed by github, I just conflated them because of the "WebM for Retards" controversy and because they'd been very public about other inclusive things like not interviewing white people [3] or calling white women "some of the biggest barriers to progress are white women". [4]
[0]: https://github.com/get-alex/alex
[1]: https://github.com/inclusive-coding-bot
[2]: https://news.ycombinator.com/item?id=9966118
[3]: https://i.insider.com/56b3d2f12e526555008b505e?width=791
[4]: https://www.businessinsider.com/diversity-guru-discusses-whi...
my God, even 11 years ago, people had the same stupid political arguments as today:
> I think the fundamental misunderstanding we're having here is that people on the left side of the political spectrum believe the solution to all answers is more government control.
Yes, its really similar and unsurprisingly its still inflammatory.
My girlfriend mentioned that this year is an election year in sweden, which made me realise how bad the propaganda was in 2016- but its all the same stuff.
Not for vibe-coders, and also not for any business or user with any project using AI for "most" of the code (an ill-defined term in their ToS that nonetheless safely excludes many serious projects adopting AI for a variety of reasons). I have a code base that is entirely handwritten JS. I am porting it to .NET/C# with AI assistance, plus a lot of supervision and manual revision by me to ensure the quality meets my requirements. When finished, the code base will be "mostly" AI-generated within the meaning of Codeberg's ToS, even though I wrote the underlying code base by hand, and will have overseen and approved every line of AI-generated C# code myself. I don't have any reason to trust that Codeberg will be more or less reasonable in my particular use case, nor that they will interpret their ToS consistently to permit or disallow my project even assuming their terms do allow my project (and it's just of many to be clear). They control their ToS and I assume they drafted it vaguely on purpose to ensure they have flexibility to kick out anyone deemed undesirable. At least that's what I would do in their shoes if I wanted flexibility. If coding is a hobby and you hate AI or simply never use it, you can definitely use Codeberg. If you are an enterprise customer, or you use GenAI to any significant extent (or both), you nearly certainly cannot safely do so. And that's fine; Codeberg can do whatever they want. But Codeberg is in no way a "perfect drop-in 1:1 replacement" for most developers.
Codeberg just banned projects where the code has been written by GenAI.
Sourcehut: https://sr.ht
Not a drop-in replacement for GitHub admittedly. Requires a bit more skills from the contributors. Which might be a fine gate, actually.
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 (?)
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.
But Git isn't the platform. It's still just a version control.
The article itself is explaining other platforms that work with Git, of which there are dozens. The `git` program itself isn't even developed on Github; it's developed on the kernel.org site [1]. Git != Github.
There's still development for SVN, Perforce still has plenty of paying customers, and Epic games themselves released a new version control a few weeks ago [2], so it's not like everyone assumes that version control is a "solved" problem. I'm honestly not sure what your point is.
[1] https://git.kernel.org/
[2] https://lore.org/
Here is a simple question to highlight my point. Do you think Github would exist had Git not first existed?
I know SVN is still developed, but it is no longer really treated as a solution. That is why we are talking about Git and not Subversion.
Well, it certainly wouldn't be called Github, but I'm sure there would be some equivalent "MercurialHub" or "MonotoneHub" had Git not been created.
Even before Git, there was Bitkeeper (which in some ways was arguably better), and that was what they used for the kernel until some drama with Larry McVoy happened. If there wasn't that drama, I think some kind of BitkeeperHub might have eventually happened.
Yes, Git overtook it, but I still don't really understand your point; it's not about Git, it's about a centralized forge.
>Yes, Git overtook it, but I still don't really understand your point; it's not about Git, it's about a centralized forge.
What you aren't understanding is that all software development proceeds first by an underlying philosophy that evolves into other solutions inspired by the software that came before it. Git inspired the way Github works. You are trying to separate the two into distinct entities when they are really a flowing into one another.
Sure, but GitHub sort of runs contrary to what Git's philosophy, which is why I'm arguing that "Git" is an irrelevant variable with regards to the problems with Github.
Git, as a software version control platform, is supposed to be decentralized. It's designed to mimic the way that kernel development was done, with a lot of separate repos and email being used to merge in diff files.
If anything, Github really brings the subversion model to Git; Git primarily just has categorically better merging than SVN.
>Sure, but GitHub sort of runs contrary to what Git's philosophy, which is why I'm arguing that "Git" is an irrelevant variable with regards to the problems with Github.
Ah, well that makes your position clearer. It does "sort of run contrary" but it also doesn't totally "break" what Git was trying to do. You still have your local copy but your ability to share it is centralized.
The next iteration for SVN MIGHT have been to have some kind of p2p website to share sources since it all ready had a centralized way to share the code. That's usually the way things bounce around. Higher centralization/decentralization/back to centralization. Git kind of arrested that evolutionary curve with a quasi-decentralization and a centralized sharing hybrid.
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.
But WHY they glom on to it and not say, Subversion is my point. We can imagine an alternative world in which Subversion mutated into something more like Git. Why doesn't it exist? Because Git came in and everyone decided it was "the answer to all things".
There's a mercurial, a very similar idea built in a very similar times. It was supported by BitBucket until recently.
I've always liked Mercurial--particularly the simplicity of it.
I've recently seen https://v-it.org/, although the naming ("social software") is strange, the idea seems to be great: automatically maintain your own feature set of the software even if not all of the features are present in the mainline.
git was harder to use (harder to reason about), but it did something cvs/svn didn't do, so, harder or not, it made something possible vs not possible.
Did you confuse github with git? Indeed centralized git in Github is hardly any different from svn.
>Did you confuse github with git? Indeed centralized git in Github is hardly any different from svn.
I used shorthand since I assumed people here were smart enough to assume that Microsoft buying Git would be understood as Github and not Git. It has proven to be a bad assumption.
I don't know, maybe that's because people are somewhat used to see other people confusing Git with GitHub.
There's no way everyone knew you're so smart.
>There's no way everyone knew you're so smart.
Could be because everyone is so eager to assume I'm so dumb. ;) Regardless, the communication wasn't clear enough to convey the meaning, and that much is on me. I won't make that mistake again.
The article in which you are replying to is specifically about different git-compatible forges, not just Github. If you use "Git", people are going to (correctly) think you're referring to the version control software, not Github. This isn't weird.
You may want to read this comment again and really evaluate it as if you didn't write it. Maybe shop it around. Ask your wife, or better some random people with the names scrubbed so they don't know it's you, to tell you who is the asshole and exactly why. What about the statement exposes the asshole by it's own self-contained internal logic? I know, it doesn't matter what 9 out of 10 say, even if they all say the same thing and point out the same reasons, all that proves is "it has proven to be a bad assumption" that everyone else isn't an idiot eh?
Man that's convenient. Why didn't I ever think of that genius way to resolve everything? Oh right, duh.
You may want to read this comment again and really evaluate it as if you didn't write it. Maybe shop it around. Ask your wife, or better some random people with the names scrubbed so they don't know it's you, to tell you who is the asshole and exactly why.
"The one that was wrong about soimething, and then when shown, doubled down and blamed everyone else."
"The one than said everyone else disappoints them, and doing that while being in error themselves is just an extra shovel full."
I'll cop to my own smarminess, but that came later, as reaction, not an action.