Argues that while Codeberg's ~150,000 accounts are a rounding error against GitHub's ~100M, the composition of the migrating cohort — OpenBSD contributors, Nix developers, Fediverse folks, embedded engineers — matters more than the raw count because these developers historically function as leading indicators for broader industry shifts.
The HowToGeek piece documents a quiet but real migration pattern, framing Codeberg and self-hosted forges as viable alternatives that developers are actively choosing rather than a fringe protest movement.
The article explicitly names Copilot training without meaningful opt-in, Microsoft's ownership, opaque moderation, and platform enshittification as the specific grievances driving the migration. These are framed as concrete, identifiable causes rather than vague dissatisfaction.
Argues Forgejo has crossed a technical threshold where it can be recommended to teams without caveats: single Go binary, minimal memory footprint (Codeberg runs on a handful of modest VMs), and Forgejo Actions in the 7.x line implements GitHub Actions workflow syntax closely enough that most existing .github/workflows/*.yml files work unchanged.
Frames the 2022 Forgejo hard fork of Gitea — triggered by the copyright assignment controversy — not as fragmentation but as a productive schism that produced a Codeberg-sponsored, community-governed project which has since outpaced its parent in the features that matter for GitHub migration.
A HowToGeek piece making the rounds on Hacker News (321 points and climbing) documents what a lot of us have been watching in our peripheral vision: developers are quietly leaving GitHub for Codeberg, and a small cottage industry of self-hosted Git forges is picking up the slack. The specific catalysts named in the post are familiar — Copilot trained on public repositories without meaningful opt-in, Microsoft's ownership of the platform, opaque moderation decisions, and the slow enshittification pattern that anyone who used GitHub in 2015 can feel in their bones.
Codeberg, a non-profit run out of Germany on the Forgejo codebase, has roughly doubled its registered user count over the last 18 months and now hosts well over 150,000 accounts — still a rounding error next to GitHub's ~100M, but a meaningful signal from the exact developers who tend to be leading indicators for the rest of the industry. The Hacker News thread reads like a demographic snapshot of that leading edge: OpenBSD contributors, Nix people, Fediverse folks, a surprising number of embedded engineers, and the reliable contingent that has been running their own Gitea instance since 2018 and would like you to know about it.
The self-hosted side of the story is where things have actually changed. Forgejo — the Codeberg-sponsored hard fork of Gitea created in 2022 after Gitea's copyright assignment drama — has matured into something you can plausibly recommend to a team without caveats. It runs in a single Go binary, sips memory (Codeberg itself famously runs on a handful of modest VMs), and as of the 7.x line ships Forgejo Actions, a runner that speaks the GitHub Actions workflow syntax closely enough that most `.github/workflows/*.yml` files just work.
The reflex reaction to "developers are leaving GitHub" is to point at the numbers and laugh. Fair — the numbers are laughable. But the composition of who is leaving matters more than the count. When the OpenBSD project, SourceHut's Drew DeVault, and a rotating cast of high-signal maintainers all publicly move their canonical repo elsewhere, it changes the calculus for the next maintainer deciding where to host. GitHub's dominance was never about the product being irreplaceable; it was about network effects. Network effects unwind on the edges first.
The Copilot question is the real accelerant, and the community reaction on the HN thread is more nuanced than the tabloid framing suggests. Nobody in the top comments is arguing that AI-assisted coding is going away. The argument is about consent and about who captures the value. GitHub trained on public repos under an interpretation of open-source licenses that most of those licenses' authors would dispute, then sold the resulting product back to the same developers for $10/month. Codeberg's terms of service explicitly forbid this, and Forgejo has shipped a `robots.txt`-adjacent mechanism to signal AI-training opt-out at the repo level. That's a product feature Microsoft cannot ship without cannibalizing its own revenue.
The more interesting technical story is that self-hosting a Git forge in 2026 is genuinely easy in a way it wasn't in 2020. A Forgejo instance with Actions, container registry, and package hosting fits comfortably on a $6/month VPS. GitLab CE, by comparison, still wants 4GB of RAM before it will speak to you and treats every minor upgrade as a small adventure. Gitea itself is fine but has lost momentum to Forgejo since the fork; the last year of meaningful features has landed on Forgejo first. SourceHut remains the purist's choice — email-based patches, no JavaScript, aggressively minimal — and its niche is growing rather than shrinking.
There is a real counter-argument, and the HN thread surfaces it honestly: leaving GitHub costs you drive-by contributions. The pull request from a stranger who found your bug via Google, forked your repo in two clicks, fixed it, and opened a PR — that workflow does not exist on Codeberg at the same magnitude, because the account overlap isn't there. For a library maintainer whose value comes from community contributions, that's not a small thing. For an internal tools team at a company, it's irrelevant.
The pragmatic move for almost every team is not migration but mirroring. Push to your self-hosted Forgejo or Codeberg as origin; mirror to GitHub as a read-only public face; run CI where the code actually lives. This gets you the sovereignty argument (your history, your issues, your data), keeps the discoverability argument (people can still find you), and lets you turn off the GitHub mirror the day Microsoft does something unforgivable without a fire drill. Forgejo has first-class push mirroring built in; the setup is roughly two form fields and a deploy token.
For solo developers and small teams, the calculus is simpler: if you don't need drive-by PRs, you don't need GitHub. A Forgejo instance on Hetzner will cost you less than a Copilot subscription and give you Actions-compatible CI, a container registry, and the smug satisfaction of controlling your own infrastructure. The one honest caveat is backups — your GitHub repo is backed up by Microsoft's SRE org whether you like it or not, and your $6 VPS is backed up by you. Automate that or you will learn the lesson the expensive way.
One thing to actually watch: how Forgejo Actions handles the runner problem. Self-hosted runners are the operational tax on any CI system, and Forgejo's approach (a lightweight Go binary that pulls jobs, no Docker-in-Docker acrobatics required) is materially better than GitLab's runner or Woodpecker's. If you've been putting off getting off GitHub Actions because you didn't want to babysit runners, that argument has weakened.
The next 12 months are the interesting window. If Codeberg crosses 250k users and Forgejo Actions hits feature parity with GitHub Actions for the 80% case, the mirror-then-migrate pattern becomes the default for a certain kind of maintainer — and once it's the default for that cohort, the wider drift starts to look less like a rounding error and more like the beginning of a redistribution. GitHub isn't going anywhere. But the assumption that it's the only reasonable place to host code, which held for roughly a decade, is quietly ending.
Top 10 dev stories every morning at 8am UTC. AI-curated. Retro terminal HTML email.