⟵ Home

On Leaving GitHub

April 28, 2026 ∙ 4 minute read

Those who know me remember how I used to be in love with GitHub. The idea was genuinely interesting: Git is a decentralised system, which is great, but discovering repositories and projects was hard, and GitHub solved that under the premise – or promise? – of “Social Coding”.

But Vito, everyone moved to GitHub, that broke the “decentralised” part!

It may have. But Git, per se, is still decentralised; one may maintain copies in multiple places. The option to keep everything in one place was a choice people made freely, for convenience or visibility, and that’s fine. Git was Git. GitHub was GitHub.

For a long time, they earned the position. Here’s the shape of what they built:

330 people carrying 21 million repositories: the ratio alone is worth sitting with. And yet, the platform was stable, the product made sense, and the surrounding ecosystem was alive in the way that healthy ecosystems are: every service did one thing and did it well. Want automated tests? Travis CI. Static analysis? Codacy. Coverage? Coveralls. GitHub was Git hosting with a social layer on top. The Unix-shaped approach worked – and no surprises there.

I treated my GitHub feed as a homepage for years. The signal from starred-by-people-I-respect was worth the visit on its own. That company was a place I wanted to be part of: large-scale systems, helping people all around the world, contributing back to the community.

June 4, 2018

Microsoft announces the acquisition. The developer community is caught off guard, and although everyone knows very well how Microsoft operates, nobody is quite sure what to expect. The first months are quiet, quieter than expected. Then the displacing begins:

The pattern is Microsoft’s EEE playbook with a fourth E bolted on. Embrace the ecosystem. Extend it with first-party equivalents. Extinguish the third parties that depended on integration access. Then enshittify what remains.

What the numbers look like

GitHub average uptime by month, April 2016 – January 2026. Codespaces and Copilot excluded due to launch partway through the dataset. Vertical line marks the Microsoft acquisition, June 2018. Click to expand.

Pre-acquisition: a flat line at effectively four nines. Post-acquisition: a noisy descent that has never recovered. The worst drops – dipping below 99.6% – cluster in 2020, 2022, and 2023. There has not been a clean year since 2019, and the most recent data point, January 2026, is among the worst in the entire dataset.

This is not subtle, and it does not recover.

What’s left

The product I log into now is slow, the UI nags about Copilot in places where you’re reading issues, reviewing PRs, managing settings. Outages that used to be quarterly are now a weekly occurrence, and the chart above is what that looks like in aggregate, stripped of any individual incident’s ability to be explained away.

I don’t think this is recoverable from inside the company, and I don’t see incentives pointing that way.

What I’m doing

All my projects now live on Forgejo instances I run myself. Maintenance is minimal: it’s a Go binary and a database. The server does what I need and stops there. No feed, no notifications about features I didn’t ask for, and the uptime is whatever I make it — and it’s higher than GitHub’s.

For anyone who doesn’t want to self-host, Codeberg is doing serious work, and Forgejo is building federation so instances can communicate without a central host.

I’ll keep a presence on GitHub for work that requires it. Nothing new goes there.

git remote set-url origin was a two-second command, but the decision to run it took way longer than the migration.