SourceHut, or how I learned to love^W tolerate web development

Apr 15, 2025

Since I decided to start using aerc and it's hosted on SourceHut, I discovered this platform in early March, and quickly became a big fan.

I'm happily paying my (optional) 5 dollars a month, and migrated a lot of my day-to-day stuff (this website, my personal todo management system and various code repositories) to the platform.

In the last 25 years, I had only used 2 other "forges" - SourceForge and GitHub - and the huge advantage of SourceHut over those is that it's fully open source. So if you're annoyed by a bug or have an improvement idea, you can just git clone, fire up Sublime and off you go :-)

In this post, I'll go through a few things I contributed (not all are accepted yet).

Testing infrastructure contributions

The SourceHut software can be deployed by anybody on their own hardware, and since I wanted to make code contributions and test them before submission, I slowly started to follow the deployment and hacking guides.

It's not rocket science, but not super fun either, so I did not make much progress, until I came across this repository, that deploys an instance with most services using Docker Compose, and gave it a try.

The bad news is that it did not really work (at least for me), but the good one is that, again, it's open source, so you know what happened next (git, Sublime and all :-))

  • Properly setup tokens => patch
  • Make services actually talk to one another => patch
  • Make sshd happy => patch

Finally able to deploy and play with the code, I moved to more visible stuff, leaving my familiar backend and infrastructure worlds towards... web development!

Patch management improvements

SourceHut's patch management philosophy is similar to that of GCC or the Linux Kernel: you send patches by email, review patches by email, and (probably, I have not done it yet) merge patches by email.

All this communication is done through a mailing list (e.g. this for aerc), and it it's hosted on SourceHut, the UI provides a nice "patch oriented" view (this for aerc).

Each patch has a status, that can only be changed by list moderators, which is great for control, but sucks for folks like me who have borderline OCD and cringe when they send multiple revisions of a patch, see that they're all "PROPOSED" and cannot mark previous obsolete revisions as "SUPERSEDED" on their own.

List of "Proposed" revisions :-(

That said, it's open source, so you know what happened next (git, Sublime and all :-))

  • Allow patch submitters to update their own patches => patch

Search improvement

SourceHut does not have some of the bells and whistles that GitHub has, which is a good thing, but I sort of miss GitHub's contribution graph.

At some point, I want to be able to show a similar graph on this website for all my open source contributions, not only those on GitHub, and I am therefore looking for reliable ways to find contributions on the various platforms.

For SourceHut, mailing lists seem to be the right way, especially since they support the "from:" search syntax, so all is good... except that not :-)

That said, it's open source, so you know what happened next (git, Sublime and all :-))

  • "from:me" does not find messages generated by the patch UI => i_still_need_to_fix_this
  • Don't let the existence of random users poison from: searches => patch