Almost a year (off by two days) before this post I published a blog post detailing my issues with Github and Github Pages. Now a year later I’ve finally got around to switching off of Github again.
I’ve been using Github since around 2019, not that long in the life of Github, but I didn’t have a major reason to publicly share my personal projects until that point. With my increased interest in sharing my mediocre personal software projects publicly I quickly realized that I do not like Github and I really do not like Microsoft. The interface is slow and unintuitive, service quality has degraded, and later on the site started being scraped by Microsoft for AI. This is why around 2021 I started hosting my own instance of Gitea. This solved my problem for a while, and it was quite positive to not be relying on someone else’s service.
The action sparking my re-adoption of Github was the loss of all of my infrastructure on one of my hosts, this was fortunately just a small fraction of my services, but it did include my git server. I lost many projects over this that were not backed up properly. While this was a learning experience for me, I was left unwilling to start another git server. It’s not that I think I’d be prone to another data loss situation, I mostly didn’t want to start fresh on a site that had none of my configuration and none of my users. The point I switched back was when I started learning about Github Actions and Github Pages and was loving their improvement to my productivity.
I have been unwilling to give any money to Microsoft through Github, so I have avoided purchasing pro (even if it is pretty reasonably priced). This came back to bite me the other day when I experienced an issue with one of my projects that had failed to update due to private repo Actions limits being reached. I decided that enough was enough and purchased a subscription to Sourcehut on the spot. Sourcehut is a fantastic collection of services and I couldn’t have been more glad for the switch. I was afraid of rewriting all of my Github Actions workflows, but the Sourcehut CI is refreshing to work with. You simply choose an image, import your secrets, declare your packages, set file paths for artifacts to be exported on completion, and then create tasks in the form of shell scripts. You can also rerun and edit build manifests without commiting to your repo, so you don’t need to make dozens of commits while creating your CI config. This has made my life so easy and is in such stark contrast to the complex and annoying system Github provides.
After setting up a few Java and Docker based projects with Sourcehut’s CI and even experimenting with the issue tracker and IRC bouncer, I decided that I should tackle this site. I’ve been dying to move this site off of Github. Without a pro subscription my drafts folder was published for all to see, now I can make this site publish from a private repo, and Sourcehut has once again managed to be easier than Github and much quicker to set up. Sourcehut Pages is not a complex black box like Github Pages, to update a site to it you just submit a request to the pages.sr.ht api with a domain name and a tarball containing the static site contents (and an access token if you’re submitting this outsite of a CI script with the proper OAUTH permissions). This means you can build your CI script any way you choose, build the contents how you’d like to, and add a CLI hut
command to upload your site at the end of your script. Another benefit of this system is website maintainers are able to update their site without updating the repo. Just as the Unix philosophy would dictate, the functions of the larger Sourcehut ecosystem are well built software projects standalone that can be strung together by the user, not an all-in-one platform that forces the user into one single workflow.
I owe a massive thanks to Drew DeVault for his amazing work on Sourcehut. I’ve only been using this platform for a very short time, but I believe that it will make a lasting effect on how I view source control and FOSS project management. Sourcehut is the most sensible and well thought out suite of software I have used in a long time.