Comment by moksha256

3 days ago

To me the biggest not-easily-replaceable value is the "Hub" part of GitHub. It's easy enough to stand up your own Gitea or Forgejo instance for mirroring personal Git repos, set up your own GitLab instance for more sophisticated collaboration and CI workflows, etc...but the discoverability GitHub provides in its current form, since the vast majority of repos are hosted there (or at least have some kind of mirror there) is unparalleled.

For what specifically?

My top-of-funnel is not searching github but recommendations or searching technology/platform specific repositories e.g. for software it's flathub/f-droid and for rust its crates.io/libs.rs.

Where the code is hosted is in theory irrelevant... but I'm ashamed to say that when code turns out to be on gitlab my heart sinks. It's a bit of a red flag for e.g. no bug-tracking, no contributions, no maintenance, absent maintainer and unexpected licenses.

It's gross personal hypocrisy because I hate the absurdity of commercially owned FOSS collaboration and centralised git and happily self-host myself... but those not publishing code on github are awkward bastards :)

It's 100% the network, not the tech.

You can have 1:1 parity with any company or product, but unless you have their word of mouth distribution and adoption, you will lose. Every time.

People in aggregate, as crowds, are relatively static and inflexible. Once they learn a fact once, it sticks. You cannot unteach that without lifting metaphorical mountains. The first mover with escape velocity wins.

The amount of energy needed to undo that is massive.

You'll have fringe 0.01%ers adopt some other tool, but they'll never carry enough gravitas to bring the entire network with them.

Anecdotal evidence:

- Github, Facebook, and Reddit have never been unseated

- Instagram has never been replaced, only supplemented

- Twitter/X has only lost steam due to extremely bad press, an unwanted name change, and a huge effort from Meta (which leveraged traffic and synergy from Instagram). And even then, it's still well within the public zeitgeist. Bluesky and Mastodon didn't even make dents.

- Google has never been displaced (granted, Google pays a lot of money to maintain defaults and maintain a web "pane of glass" monopoly, redefine the address bar as a search bar, etc.)

  • Why should Github, Facebook, Reddit, or anybody else be unseated.

    Just because I use Codeberg doesn't mean Github should die. Just because I never ever visit Facebook doesn't mean you should stop using it.

    Why can't we all just play nice?

    • > Why

      This is why VCs won't fund consumer. It's frothy, fickle, and the incumbents have saturated the network effects market. And that totally sucks.

      I'm a believer in strong antitrust and that a fire every decade or so clears the forest of dead growth and renews the ecosystem. Evolution and reinvention staves off ossification. Instead of working on hyper-optimization of things like better ad targeting in search of more growth, we're working on more important problems and lifting bigger weights.

      More startups means better compensation for ICs and innovators. Rewards for capital risk rather than extremely large wealth funds and pension plans.

      Look at your Fords and Boeings. Totally stagnant. Newer international competition is refreshing and energized.

      Or Google of just two years ago, before they had their "come to Jesus" moment. Where they witnessed visions of the loss of their single largest cash flow flashing before their eyes.

  • All your examples have replaced some other service in the past.

    Except GitHub, maybe.

    Granted, the replaced services were nowhere near the popularity levels of the current ones, and have made horrible decision.

    • > All your examples have replaced some other service in the past.

      This was pre-broadband penetration, pre-smartphone. That was a really different era.

      Social networking wasn't really that big before Facebook. Friendster, MySpace, and Xanga were all niche communities.

      > Except GitHub, maybe.

      Github toppled SourceForge, which was awful.

      Reddit is probably the player that unseated the closest peer competitor. It toppled Digg, which was pretty big at the time. (Digg had itself disrupted Slashdot, StumbleUpon, and Del.icio.us, but those were niche communities.)

The defacto hub to search for projects and host projects has shifted before - it may be hard to believe now but at one time sourceforge was in github's position. Now that was a much earlier time in web collaborative repos but it could shift again.

Similar for indexes of open source repos - I dont know of a singlar winner now but it was for a bit freshmeat for a feed of open source project updates

I'd like to see a federation of git-hosting instances, fediverse-style.

  • there's https://forgefed.org/ defined by the creators of forgejo. there is no complete implementation of the spec. from the last forgejo changelog, the "star" action has been completely federated. federated PRs and issues are a long way away.

    https://tangled.sh is the other contender in this space that I know of. uses atproto (same as bluesky) under the hood.

    fundamentally activitypub is insufficient to define these kind of networks. you'd need to have some sort of object-capability representation. the creators of forgefed are also moving in this direction: https://codeberg.org/Playwright/playwright

It's not only discoverability, but also the need for accounts.

At some point I made very tiny contributions to OSS projects that had their own Gitlab hosted instances.

Sure a password manager makes it tolerable, but what about having an anonymous way of opening up PRs (subject to owner moderation of course)?

Use the author name and email for a virtual identity and when the PR request is accepted (not merged) force an email address validation for the PRer so that comment interaction can happen via email.

  • This is an entirely self-inflicted problem. Git was designed so you can just send someone a patch by e-mail. It was GitHub that introduced “pull requests”, which require an account, as the main method of collaboration. Vendor lock-in as a feature.

  • Or...

    Fork the original repo onto your forge. Your forge could be your own forgejo instance, your own GitLab instance, just a plain git repo, or even Github if you like it so much.

    Then send a note to the original authors informing them of your fork and the patch you wrote. Request that they review your work and pull it into their repo if they approve of it.

    You don't need an account on their forge and they don't need an account on your forge.

    • For me that adds to many steps, and removes collaboration transparency.

      Disregarding the fact that I would need to have a way to reliably find the contact information, the review process would probably take place outside the source code platform.

      2 replies →

it depends on which network effects you want to benefit from. if you want your project to have visibility or attract contributors, then yeah. (although, mirroring your project to github can still accomplish a lot of that.) but if you want to benefit from forge tooling, like the ecosystem of github actions, then there are pretty good efforts to match API compatibility -- e.g., the gitea action runner can work with most github actions.