The quiet exodus: why devs are moving repos off GitHub

4 min read 1 source clear_take
├── "GitHub's AI training on public repos is the primary driver of the exodus"
│  └── Gedxx (HowToGeek) (HowToGeek) → read

The article argues that Copilot's training on public repositories without explicit consent is the sharpest grievance pushing developers away. Even after settings changes were introduced, opting out of AI training feels like an ongoing battle rather than a sensible default, which erodes trust in GitHub as a neutral host.

├── "GitHub has drifted from Git host to opinionated platform, and that bloat is pushing purists out"
│  └── Gedxx (HowToGeek) (HowToGeek) → read

The piece frames Issues, Actions, Projects, Discussions, Codespaces, Copilot Workspace, Sponsors, and Spark as evidence that GitHub is no longer a Git host but a platform with product opinions. Developers who want a lean, forge-focused experience are gravitating to Codeberg, Forgejo, Gitea, and sourcehut precisely because those tools stay in their lane.

├── "Geopolitical account lockouts have shattered the illusion of GitHub as neutral infrastructure"
│  └── Gedxx (HowToGeek) (HowToGeek) → read

The article highlights that developers in sanctioned regions have been abruptly locked out with little warning, and that the wider community has taken note. When code hosting is subject to the political posture of a US corporate parent, self-hosted forges and European nonprofits like Codeberg start looking like risk mitigation rather than ideology.

└── "GitHub won't lose market share, but it may lose the tastemaker layer that anchors open source"
  └── top10.dev editorial (top10.dev) → read below

The editorial argues the raw numbers are a distraction — GitHub's dominance is secure in aggregate. What matters is that the migrators skew heavily toward senior maintainers of small, high-signal projects, the same demographic that once tipped the balance away from SourceForge. If the center of gravity for tastemakers shifts, the network effect that is GitHub's real moat could erode from the top down.

What happened

HowToGeek's piece — currently sitting at 229 points on Hacker News — makes explicit what has been quietly happening in developer chat channels for two years: a non-trivial number of engineers are moving personal repos, side projects, and in some cases small-company code off GitHub. The destinations are Codeberg (a German nonprofit running Forgejo, a hard fork of Gitea), self-hosted Gitea or Forgejo instances, GitLab CE on a VPS, and — for the truly committed — sourcehut.

The stated reasons cluster into four buckets. First, Copilot: GitHub trained its code model on public repos without asking, and even after the settings changes, opting out of AI training feels like a running battle rather than a default. Second, ownership: Microsoft's stewardship has been fine on the whole, but every product decision now gets read through the lens of "what does the parent company want." Third, feature bloat: Issues, Actions, Projects, Discussions, Codespaces, Copilot Workspace, Sponsors, and now Spark — GitHub is not a Git host anymore, it's a platform, and platforms have opinions. Fourth, geopolitics: developers in sanctioned regions have been locked out with little warning, and the rest of the world noticed.

Codeberg's growth curve isn't dramatic in absolute terms, but the composition of who's leaving is what matters — it's disproportionately senior maintainers of small, high-signal open-source projects. That's the same demographic that seeded GitHub's dominance over SourceForge fifteen years ago.

Why it matters

The interesting question isn't "will GitHub lose market share" — it won't, not measurably. The interesting question is whether the *center of gravity* for open source shifts. GitHub's moat has never been the Git hosting; it's been the network effect of every project living at the same URL pattern, every contributor already having an account, every CI provider integrating first. If a meaningful slice of the tastemaker layer — the maintainers whose repos other maintainers watch — decamps to Codeberg or their own forge, the moat gets shallower without anyone noticing until it matters.

Forgejo, the fork Codeberg drives, is the story here more than Codeberg itself. Gitea's decision to spin up a for-profit entity (Gitea Ltd.) in 2022 triggered the fork, and Forgejo has since diverged with federation as a design goal — the idea being that a Codeberg repo could accept issues and pull requests from a self-hosted Forgejo instance the same way Mastodon servers federate. If that ships and works, the "one giant central forge" model that GitHub represents starts to look like the AOL of source control: fine, dominant, and structurally obsolete.

The self-hosting side has also gotten unreasonably easy. A single docker-compose file, a $5/month VPS, and a Cloudflare Tunnel will get you a Forgejo instance with CI (via Woodpecker or Forgejo Actions, which is Actions-compatible) in under an hour. Backups are a `pg_dump` and a `tar` of the repo directory. The pain point that killed self-hosted forges a decade ago — that they were miserable to run — is gone. What remains is the social cost: your contributors need an account somewhere they've never heard of.

Community reaction on the HN thread is telling. The top comments are not the usual "GitHub is fine, stop whining" pile-on. They're specific: one maintainer describes moving a 4k-star repo to Codeberg and losing roughly 30% of drive-by contributions, but gaining higher-quality issues because the barrier-to-entry filter is real. Another notes that their CI bill dropped to zero because they run Forgejo Actions on the same VPS. A third points out that Codeberg has an explicit no-crypto, no-AI-training, no-tracking policy written into its bylaws — you can't negotiate that away by acquiring the nonprofit, because there's nothing to acquire.

What this means for your stack

For most working developers, the pragmatic move is boring: leave your work code on GitHub because that's where your CI, your SSO, and your team live. For personal projects and OSS libraries, treat Codeberg as a viable primary or mirror. `git remote add codeberg` is a one-line hedge; you can push to both and let the URL rot problem sort itself out later.

If you're maintaining a project with a real user base, the calculus changes. The question to ask is not "is Codeberg better" but "how much of my contributor pipeline depends on GitHub-specific features I can't replicate." If the answer is "Actions and Sponsors," you have a migration path — Forgejo Actions is API-compatible and GitHub Sponsors was never great for indie maintainers anyway. If the answer is "Discussions and Copilot Workspace integration," you're stuck, and that's useful information about how much lock-in you've accumulated without noticing.

For teams evaluating self-hosting: the honest cost is not the VPS, it's the on-call. Somebody has to care when the disk fills up, when the TLS cert doesn't renew, when a contributor's account gets spam-flagged. If that somebody is you and you already run infra, the marginal cost is real but small. If you're a five-person startup with no ops person, GitHub Team at $4/user/month is still the right answer and will be for years.

Looking ahead

The realistic 2027 picture isn't "GitHub loses." It's a bimodal ecosystem: GitHub owns proprietary and enterprise code, Codeberg and federated Forgejo instances host a growing chunk of the OSS long tail, and the boundary between them becomes a mirroring convention rather than a binary choice. The thing worth watching is Forgejo federation — if pull requests can cross forge boundaries the way email crosses mail servers, the centralization argument for GitHub collapses, and the exodus stops being a story about ideology and starts being a story about architecture.

Hacker News 321 pts 229 comments

Why developers are ditching GitHub for Codeberg and self-hosting alternatives

→ read on Hacker News

// share this

// get daily digest

Top 10 dev stories every morning at 8am UTC. AI-curated. Retro terminal HTML email.