This post is mirrored on my blog.

Cakelisp is now developed here. The GitHub branch is already stale, and I do not plan on mirroring to GitHub. While I had many reasons for migrating, the straw that broke the camel's back was Copilot, which in order to resist I must keep my code off of GitHub entirely.

Migration progress

The GitHub migration I planned has gone slower than I expected.

I didn't have an urgent reason to move, so I admittedly took my time with it. It is annoying work as well:

  • I had to go repository-by-repository and verify I had mirrored them to my Gitea instance properly. I have 59 repositories, most of which are original work.
  • I needed to update every repository that references the GitHub source for its submodules to instead reference the source. This work is still ongoing, though my most active projects have been ported over already.
  • I need to update my local checkouts of every repository to point to the remote, because these don't automatically update even if the .gitmodules changes the source URL. This is a pretty annoying problem because I have checked out repositories on at least 6 different machines, each of which will need to be updated to prevent me from accidentally pulling from the stale GitHub source.
  • I have to decide how to handle the few repositories where I actually have collaborators. Content Collector has received some great updates recently from the community. I am going to wait and see if there are future contributions. If I don't get new PRs in the next 6 months, I'll finish moving Content Collector over as well.

There are a few more decisions I haven't made as to how far I want to go with the migration:

Should I archive the repositories?

This leaves the code still on GitHub for their monetary gain, which means I don't avoid the Copilot problem. It also signals to potentially interested people that the project is no longer developed, which is not true.

Should I delete the repositories?

This solves both the Copilot issue and means people won't misread the archived status, but means that old URLs to the code will become 404s.

Should I delete everything, including my profile?

This would be the ultimate commitment to self-hosting. The main drawback is if I want to submit a pull request to a repository on GitHub, I won't have any way to do so unless they provide a public email address (which they almost never do). I don't often submit PRs, but I have (to Ogre, STB, and a few other projects), and I probably will need to in the future.

Should I mirror my dependencies to my site?

This would include repositories like SDL, FreeType, etc. I think it is a good thing to do, but repositories can take up a significant amount of space and mirror bandwidth, which has costs. I think I will eventually do this based on the idea that submodules will break as often as URLs break, which is relatively frequently.

A bright future

Despite these troubles, I am still convinced I am doing the right thing. I feel a much stronger sense of pride and ownership when I host my own code.

I do think there will be less collaboration if the contributors need to use a site other than GitHub to find my work, but I am willing to pay that price.

I like hosting my own website. There's a definite sense of freedom and self-sustainability that comes with it. On the negative side, it is much quieter, and I will admit seeing those GitHub stars pile up on Cakelisp and my other repositories is validating.

When I was a kid I coded a simple blog website in PHP. I added a counter which went up every time someone visited the site. Seeing this number go up ended up being detrimental. I would feel bad about it being low, and got excited when it went up even if it was just a bot or something. I think it's better to not measure those kinds of things for those reasons, and instead just put things out there. I much prefer receiving deliberately written emails rather than obsessing over trivial numbers.