πŸ”

πŸ™ Three GitHubs

There are three things people call "GitHub." They are not the same thing.

1. The git data model

A merkle tree of content-addressed objects. Commits, trees, blobs, refs. It's a distributed, cryptographic data structure that doesn't need a server, doesn't need a company, and doesn't need permission. Linus built it so the Linux kernel could never be held hostage by a platform again.

This is the thing that matters. It belongs to no one.

2. The hosting and API layer

A remote that happens to live at github.com. Bare git repos, served over HTTPS or SSH. An API for reading and writing refs, trees, blobs. CI runners. Container registries. Package hosting.

This is infrastructure. It's useful. It's also commodity β€” Gitea, GitLab, Bitbucket, a Raspberry Pi running git-http-backend in your closet. The hosting layer is interchangeable by design, because the thing it hosts β€” the git data model β€” is distributed by design.

3. The social platform

Issues. Pull requests. Discussions. Stars. Followers. Contribution graphs. Profile pages. Copilot. The green squares. The brand.

This is the part that isn't git. This is the part that can't be exported. This is the part that creates lock-in. Your code is portable. Your stars are not. Your commits are distributed. Your social graph is captive.

And here's the thing β€” the social UX is commodity too. GitHub-but-worse is an entire cottage industry. Every permutation of a short, git-prefixed word where the suffix is some startupy alternative to "hub" β€” Gitea, GitLab, Gitpod, Gitify, Gitmoji, on and on. They all clone the same pull request UI, the same issue tracker, the same contribution graph. But these systems are NOT mutually interoperable on the social level. Only on the git level.


GitHub trained an entire generation of developers to confuse these three things. "Open source" became "has a GitHub repo." "Collaboration" became "pull request." "Community" became "GitHub stars."

The git data model doesn't need GitHub. The hosting layer doesn't need GitHub. Only the social platform needs GitHub β€” and that's the one part they own.

Think for yourself. Question authority.

git github infrastructure social-media philosophy writings published