Radicle Project Frontpage

So I’ve been trying to use Radicle a lot and mentally comparing the efforts of Radicle with projects like Gitea in combination with something like ForgeFed.

I’m not closely familiar with the Radicle project roadmap and I’m only informed by my occasional look at the repositories, this community and the occasional conversation with @cloudhead.

But, I think there’s one main thing, call it a “feature request” or a “product suggestion”, that I think would help the most with bridging the gap between a UX like Radicle and the existing repository management systems we use today.

Basically, we’re used to finding things on the web. We’re used to casually looking through a project before engaging to potentially grab code or file issues. So we’re used to have some place on the web to be pointed to in order to find a project’s repository. That’s the way it is and it’s not going to change any time soon.

So, to bridge that gap and fill that need developers have, I think a killer product would be a way to host a web-fronted Radicle “front page”. Basically a program that you configure by giving it some Radicle projects (by their ID) and let it be hosted on a domain name. The program uses the Radicle network to find these projects and keep an updated view at all times. It can thus also act as a seed for them. But at the meantime, it providers a Gitea-like viewing experience through the project.

This doesn’t make this page the arbiter of what the project is, namely everyone can host a front page for a certain project. It just gives you something to point non-Radiclers to for them to see the project. Potentially also instructions on how to get the code.

A non-exhaustive list of features such a front page could have:

  • configuring projects in a tree (f.e. "/rust-bitcoin/hal": "rad:git:xxxxx" which makes domain.org/rust-bitcoin/hal host that project)
  • it can optionally host a read-only git repo so that people can pull it from it using their git
  • it could even accept anonymous pushes with patches if we can find some anti-spam measure. they could be published in the name of a special account making it clear it was an anonymous contribution through the front page
  • once ForgeFed materializes, the projects hosted there could emit ForgeFed events so that they are interoperable with other ForgeFed self-hosted repositories

It might seem like this is looking a lot like a Gitea clone, but it is far from the truth. It’s entirely read-only. Gitea is all about access management, determining the state of branches, tags, … But making it read-only and just a way to represent the already-existing Radicle state to a web front-end, it’s just a front-end.

Anyway, something like this might already be planned/in progress, I don’t know. I feel like something akin this is what would convince many projects (and thus developers) to adopt Radicle.

1 Like

Hey @stevenroose - are you referring to something like this: https://app.radicle.network/? or something branded to specific orgs?

Something like that, yeah. At least if it supports “pinning” the projects you want your frontpage to serve and persist locally so that it functions as a seed node as well. And if you can git clone from there as well.

1 Like

hey @stevenroose - thanks for this feedback! this all seems very relevant to the work that the #alt-clients team is doing on the app.radicle.network web client. They’ve already implemented read-only repos & git clone and are working on git push as well iirc.

I’m sure the team would love to see these feature requests documented (maybe in some issues @cloudhead?) so they can be turned into bounties or put on the roadmap. i’ll let the alt-clients team chime in here with their feedback :slight_smile:

Hey @stevenroose – we’re on the same page. I think one thing to figure out still is global discovery: how are these different nodes found and browsed in aggregate? Currently our solution relies on ethereum state.

Another slight difference with what we have compared to what you propose is that instead of there being many frontends, ie. one in front of each node, we have a single frontend (app.radicle.network) that fronts many nodes. This has some nice advantages, mainly around UX.

Things we haven’t figured out yet are:

  • How do we choose which projects show up on the front-page, ie. which projects are promoted?
  • How do we make this system work at a lower cost? Currently it requires a tx on L1 per project which is expensive.
  • How do we decouple the current system from radicle orgs? ie. how do I go about hosting my project in a way that can be browsed on the web portal, without an on-chain org?
  • How do we implement things like search?

I think in some ways we’re close to having a lot of these things. The problem right now is that it’s a hassle to be added to the web portal, even if you’re ok with self-hosting. So we need a way to announce nodes and their projects to the rest of the network in a way that doesn’t depend so much on who follows who on the p2p network, but rather some kind of global registry that is cheaper than a blockchain.