Ditching GitHub
Introduction
It’s been a long time coming, but as of this post, I’m mostly off GitHub. If I didn’t need it for work, I’d have deleted my account entirely. Unfortunately, our organization still relies pretty heavily on some features, at least for the time being.
My open source projects have been relocated and their GitHub repositories have been archived. This site, which was previously hosted on GitHub Pages, has also been moved.
Why?
Like many others, I’ve been uneasy about GitHub’s direction ever since the Microsoft acquisition. The acquisition itself was pretty ironic given the company’s historically hostile stance towards open source. For a while, though, things mostly stayed the same.
Over time, that changed. Between the continued enshitification of the user experience, the organizations they continue to do business with, and the increasingly questionable actions and practices around AI, I finally hit my limit. Every other thing they do feels like a middle finger to the developer community, and I’m over it.
Countless others have already written about this in far more detail than I will here, so I’m not going to turn this into another one of those posts. If you’re curious, you can easily find plenty of discussion on places like lobste.rs or the orange site.
Where Am I Going?
Codeberg is a non-profit alternative powered by Forgejo. All of my semi-active open source projects have been moved there, and you can find me at https://codeberg.org/hernanat.
Hosting open source projects on a community-run, non-profit platform feels far more aligned with the ideals of open source than keeping them on a commercialized slop app that I no longer enjoy using. The community is growing quickly, and I’m interested to see whether the operating model holds up long term.
Even if it doesn’t, it felt worth the risk to get away from what Microsoft has turned a service I once loved into.
Migration Experiences
Repos
I kept putting this off because I assumed it would be a pain in the ass, but the actual migration ended up being surprisingly painless. Codeberg provides a tool for migrating repositories from a number of providers, including GitHub.
For each repo, all I had to do was provide a link, check a couple of boxes, and supply an API key for the migration. The entire process, including archiving the old repositories, took less than ten minutes. After that, I went through and purged a bunch of long-dead repos from my GitHub account as well.
This Blog
This part was less pleasant. This site is a Jekyll blog that I had been hosting on GitHub Pages for quite some time. Codeberg offers a similar Pages feature, but it is currently in maintenance mode after being maintained by a single person for a long time.
On top of that, some users have reported intermittent availability issues, so I decided it probably wasn’t something I wanted to rely on yet.
In the end, I migrated the site to a cheap DigitalOcean droplet for the time being. It’s less convenient, but it gives me an excuse to play around with nginx and other things I don’t usually touch, which has been fun. When I’m feeling less lazy, I’ll put together a sane deployment process and probably write about it.
Closing
If you’re thinking about exiting GitHub yourself, I’d encourage you to give Codeberg a try. Some notable projects, like Zig, have already moved over, which gives it more credibility than it might have otherwise.
Right now my only real complaint is that things can feel a bit slow at times, but with more projects, more users, and so – hopefully – more resources and funding, I expect that to improve. I’m also looking into how I can contribute myself. Stay tuned.