The Sourcehut Project Hub

blog image

I’m happy to announce that the SourceHut project hub is now available for
general use! This is one of the most important developments in the progress of
the SourceHut alpha thus far. If you want to see how it works interactively, try
checking out the SourceHut project, add your own
projects
, or browse the public project
index
. For a more wordy introduction, read on.

Screenshot of the public project index on the SourceHut project hub

So why is the project hub necessary and/or interesting? SourceHut is composed
of many small Unix-style tools for software development, which each “do one
thing and do it well”. These tools are things like git hosting, bug tracking,
mailing lists, CI, and so on. This allows you to use them independently and
compose them however you please, which maps well onto the reality of how many
projects are organized. Compare this to platforms like GitHub, GitLab, Gitea,
and so on, where resources like bug trackers and pull requests map 1:1 to a git
repository, even when it doesn’t make sense.

In reality, many projects have dozens of git repos but would prefer to receive
bug reports in one place, for example. There are many ways projects are
organized, and with a one-size-fits-all approach, many of them are forced to
resort to meta-repositories, bots to chase down lost users posting things in the
wrong place, and so on. Additionally, this insistence on a single git repo being
the face of your project is very developer-centric. Only a fraction of visitors
to your project actually want to browse the source code — many others are
looking for documentation, bug reports, support channels, and so on; and
frontloading the source code can be intimidating.

The ability to freely compose resources on SourceHut to suit your project’s
needs addresses this. The primary disadvantage of our approach has been
difficulty in finding out what resources belong to which projects, and getting
around between them. The new project hub addresses this with a single “hub” for
your project, with a more general introduction to the project and links to the
each of the tools your project is using. You can have zero, one, or any number
of git or Mercurial repos, mailing lists, and bug trackers, in any combination
which is useful for your needs, and the project hub will organize them for you.
It streamlines the workflow for new projects and will make it easier for new
users to figure out how to get started on SourceHut.

The project hub also solves a problem which has long been a matter of interest
to SourceHut users: discoverability. How do you find what projects are hosted on
the platform? The hub solves this with the public project
index
. Each public project which you create on the hub
is listed here, and you can search through all of them to discover interesting
projects to use or contribute to. I’ve also added a list of featured projects,
where I will be hand-picking interesting projects to share.

This version of the hub is the MVP,
and there’s more development I want to do in the future. Some of this includes:

  • Adding project tags, like #python or #linux.
  • Linking back to the parent project from resource pages.
  • Handling more project resources, like wikis.
  • RSS feeds everywhere!

The hub also comes with smaller changes to the rest of the site — the
“sourcehut” link on every page’s navigation will now take you back to the hub,
and hg.sr.ht has been made a first-class target in the nav.

Please give the new service a shot and send along any feedback that comes to
mind, via sr.ht-discuss or by
emailing me directly. Enjoy!

Read More