Ditching GitHub - Personal Choices

And Why You Should Only Maybe Do The Same

Let me start this by saying that I haven’t stopped using GitHub entirely.

I still use GitHub for reporting issues to projects hosted there, and for contributing code.

I have stopped using GitHub for projects which I create, which fall into two categories:

  1. Private closed source projects, either hopeful commercial work or “I want to have this more polished before being public” work.
  2. Public free and open source projects.

Private Projects

For these, I run a semi-private Git forge. I use Gitea for the purpose, but intend to move to Forgejo when I can. (It is a Gitea fork operated by Codeberg, more on them in a minute.)

I currently use Woodpecker for CI on this forge, and don’t provide open account registration. Instead, I only provide access to some people I know, which is fine because I only use it for closely held projects and experiments.

Public Projects

For these, however, I prefer to use a forge with open account registration, so that people can file issues without first going through me (which would require figuring out how to contact me) to make an account.

So, I intend to use Codeberg, which I’ve variably used in the past and which is run by a non-profit which I’ve donated to before (not much, because I’m not flush with cash, but you know, vote with your wallet and all that).

Codeberg is suited to this purpose, but not my private projects, because it is for free / open source software only. This is fine by me, especially when it’s operated by a non-profit. It’s just a practical implication worth noting.

Should You Copy Me?

Well, maybe. I’m making an effort to ditch GitHub for few reasons, and it is entirely possible that my reasoning won’t be sufficient for you personally.

  1. GitHub Copilot irks me on a fundamental level, and I want to destroy any legal basis GitHub may have for using any code I write to train it. I’m not going to make a long philosophical argument here. It bothers me, and so I look for ways out.
  2. It has become practical for me to self-host everything I rely on from GitHub.

I want to emphasize that second point: Gitea, now Forgejo, works well enough for me. I couldn’t get Releases to work right on it, but I’ve already set up a website for myself, so I can do binary downloads through that anyway. Everything else I’ve tried using in it has worked how I’d expect. Woodpecker, while I found it something of a pain to configure a systemd service for (I was new to configuring systemd at the time), does what you’d expect and runs tests on commit. I found it decently easy to make it persist build caches, which I’d never bothered doing with GitHub Actions, so my CI builds have generally become faster with the transition.

This does require me to run a server myself, which isn’t completely trivial. I can stomach doing so, but it can be a decent expense and hassle which I could understand not wanting to deal with.

For people who develop purely free and open source software, switching to Codeberg wholesale is absolutely an option. Otherwise, things are still a little hard. It might make sense to look into Sourcehut if the reason you won’t self-host is the required effort, as they have a reputation for being a tad obsessive about user rights, and the only cost for use is, well, money.

Writing Group

I wrote this explanation of my thoughts for the Writing Gaggle. Check out the other posts!

For more posts by me, see my blog.