Why did I choose SourceHut?

on captainepoch's log

I do not have anything against GitHub itself. The platform itself managed to get a lot of people to contribute to FOSS projects, not only their own projects but other people’s projects. It expanded the ecosystem a lot, and it is something you cannot ignore.

The problem with GitHub is that is owned by Microsoft (M$). I do not trust M$ at all. My experience is that, every time M$ touches something, it will get bad over time. And GitHub will be one of those things.

Nevertheless, it was time to look for an alternative.

SourceHut (aka srht) was opened to the public on November 15, 2018. I know this platform because of Diego, a friend of mine. I made an account right away, and just for the simplicity of the platform I was blown away.

SourceHut provides a set of services for hackers to manage projects, i. e. CI/CD pipelines, git & mercurial support, a mailist service, an issue tracker aka todo, wikis aka man pages, and more. You can check out more at the website. This set of features do not only make srht a very well crafted platform, but also a competitive one with other Git forges.

SourceHut is also a platform based on 100% Free and Open Source Software. All the source code is managed at SourceHut itself, and the development and discussion topics are done in the open using the mailists or at the IRC channels.

It is also a platform that respects your privacy, something that a lot of people forget to take into account when choosing a service. No JS, no analytics, no nothing. Not even paying for your GitHub account will fix the tracking it does. In the era where companies gather data of you even in the most simpler apps, I think this is an important step towars a healthy ecosystem.

It also takes like 5 minutes or so to setup git + email and test it with a simple patch. Drew made git-send-email.io as a tutorial for those who are new to this workflow (I am one of those). It is easy to follow, it gives you instructions to get started right away, and it gives you the opportunity to send a patch to a mailist and to make a second one with a suggestion (it is an automated process for your to test the tutorial).

Another good thing about srht is that, if you want to contribute to any project, you do not Yet Another Account(TM). Because everything is done by email, you can avoid making an account into the platform but you can send patches, bug reports and reply to other emails from your email account.

Do you need to communicate an issue of the platform or need to fix something? You can because of the FOSS nature of srht, all of the code, mailists and todo trackers are available to you. It only takes a few minutes to setup your email client and send an email. Or you can also use IRC to talk to the developers of srht, #sr.ht at libera.chat. You have a couple of ways on how to reach the community here.

If you are a new user of SourceHut and need a bit of help, apart of reading the documentation you can reach out within the communication channels to the community, and everyone there will try to give you a helping hand.

The visibility argument

A lot of people will say that GitHub gives you the ability to be seen in the community. This is partially incorrect.

GitHub evolved from being a hacker forge to be more a social network. Therefore, you are being recommended projects and people that are somehow related to your activity inside the platform (hence the tracking I mentioned before). The problem is that GitHub has a ton of users, a ton of repos with a ton of code, and that does mean recommendations can, and will be, bad (a lot of times).

With such quantity of repositories and people, your project mighe be buried in the void faster than you can imagine. Also, stars are not a very good indicator about the popularity of the project, nor are the forks.

Since SourceHut does not track you, the hub (also, projects at srht) will show you projects that are hosted at srht, and nothing more.

GitHub-like alternatives

There are a couple of alternatives if you want to keep using something like GitHub.

Gitea and Codeberg

Gitea is a good option for those who want to preserve the GitHub-like appeal and workflow while keeping their code at their own Gitea instance. It runs in a Raspberry Pi, you do not need a huge server to run it for having small projects and a few contributions.

Codeberg is an EU-based Gitea instance. It is free to use, although donations are appreciated to keep the service running. If you want a good alternative to GitHub, I cannot recommend Codeberg enough times to you.

NOTE: if I am leaving SourceHut for any reason whatsoever I would choose Codeberg as my alternative for FOSS development.

GitLab

GitLab is somehow Open Source, although the main instance is behind its premium business model (after all, GitLab is a company too).

But you can self-host an instance, but be prepared to waste a lot RAM.

Email again?

Yes.

I am a fan of the email since I started using it.

It is an easy, simple way to communicate with people. Everyone has an email address, or more than one.

There are plenty of email clients for all tastes (I use neomutt + emacs/vim, for example), and also plenty of providers to make an account (free and paid).

Setting up the email for collaborating with a project is really easy, and since git has all the necessary stuff embedded for email collaboration, you only need a client to reply to comments made to your patch, so you can send a new version of that.

A lot of people complain about the fact that srht is a mail-based platform. git is intended to be used with the email as the main transport protocol to contribute to any project. GitHub was one, if not the first, of putting all the tools git offers behind a website. Forks are just copies, PRs are just patches from your copy to the original project, and so on. It is not magic.

As an example of a project using email as the main transport protocol for collaborating I always like to use Linux. Linux is being developed in this way since the 90s. It works. And just like in srht, you only need an email account to contribute to the project!

I am putting together resources about having a good email client, choosing a good provider, and so on. You can take a look at adol.pw/email. I accept suggestions, so send me an email if you know more (bear in mind that, at the time of publishing this post, it is a work-in-progress page).

Platforms made by and for FOSS

We do not always use FOSS to develop FOSS. But in this process the idea that using more FOSS to develop FOSS is something that stuck in my mind after reading the article It is important for free software to use free software infrastructure, by Drew DeVault.

After ending the maintenance of Husky, I started to think going back to GitHub would be a good option. But a couple of days after publishing the post, I thought that the success of a platform is that users keep using if after a while. I want srht to be a successful platform, and I intend to keep using it until I cannot longer do it.

All of my future projects will be hosted at SourceHut.

On a personal note, I want to give my appreciation and a big “Thank you!” to all the srht community. Everytime I asked someone anything on IRC, or via email, I always got a response that answers my doubts and questions.

And, specially, to Drew DeVault, because everytime I reached to ask him anything, he always had two minutes to reply to the question, and because he made those videos showing how patches are reviewed and managed via email, and I learnt a lot from him. Or just because reading his opinions makes me to re-think some stuff.

Thank you all!