Hanna's Thoughts

The chaotic thoughts of a freelance software engineer.

Contemplating moving away from GitHub


While GitHub is probably the most prevalent and popular source hosting service for git, I have voiced my frustrations with it before and multiple times have considered fully switching to Sourcehut. The main issue is popularity, but I suppose popularity isn't the most important deciding factor when choosing a platform to host the source code for my projects.

There's many things I dislike particularly about GitHub, but the most prevalent points of disinterest are the following:

  1. GitHub is closed source / proprietary, proprietary software hosting open

source software feels very hypocritical, and overall I feel like it ruins trust a bit. 2. The CI configuration is overly complex for the projects I maintain, as I showed in this post, the configuration compared to Sourcehut, or other hosts in some cases is extremely complicated. 3. The ability to self host a platform or software that hosts source code is important to me, as if for whatever reason the platform goes down, all my work is temporarily or permanently gone.

Another small thing is the user interface, it's familiar but it also feels old and overused, the current design is just a reskin/modernization of the old design. I'm not too picky about the design of the host of my source code, I've even considered using Fossil, which has things like a webpage, wiki, issue tracking, and other things built into the software itself, so spinning up a webpage for a project takes seconds.

I've also contributed to Sourcehut multiple times, and know the software and architecture better than something closed source or written in ruby such as GitHub or GitLab. Overall I like the experience of using SourceHut more, and while it would be a sacrifice for the popularity of my projects, due to finding projects on it being a bit more of a grind, overall the feeling is the same.

Some projects would probably stay on GitHub, mainly my personal website, so that Cloudflare Pages can access it, and automatically build my setup and throw it up on a global, fast CDN.

The main gripe I'd say I have with Sourcehut is some pages look really broken, an example of this would be the paste service. However, since the platform is open source, not only can I fix what I don't like and possibly put out a patch, I can even self host the platform if I so desire (even if it's not supported, officially). Another sort of thing I'd have to get used to is the heavily email based workflow Sourcehut uses, unlike GitHub and other services, sending patches, discussion, and other things is all done through email, which is convenient in one regard, but kind of tedious in the other.

One downside to using / switching over to Sourcehut is the lack of webhook support, closest thing would be using a CI/CD config to send a request on successful build/commit/push/etc, but this is more tedious than say clicking a few buttons, reason this is sort of an issue for me is services such as the unofficial Zig package index Aquila uses webhooks to push new versions automatically.

One last thing is however despite these gripes I have, Sourcehut does offer much more than just git hosting, including: mercurial, email lists (for discussion and patches), issue/todo tracking, pastes, static page hosting, dispatch for using CI on third party services, and most recently, a public IRC bouncer.

So overall, I think my best bet would to be to switch for a while, see if I want to continue using it for my personal things, and possibly expand to using it for everything in the future, and decide from there.

Tags:  EngineeringOpen-SourceJournal