Introduction

The Upstream client will be the primary client for code collaboration and code reviews for projects in the Radicle platform. The primary value proposition for the Radicle platform is the decentralized nature of the underlying protocol. That said, at its core, the platform is only useful to DAOs if teams can collaborate on it. The Upstream client will help facilitate all the collaboration.

The main demographic that will be using the initial MVP are DAOs that have a small to mid sized group of developers. We expect these teams will test out the platform with a smaller project, with a few core contributors and varying guest contributors.

Scope

MVP Features

<aside> đź’ˇ This is a diagram that walks through the MVP user flow and problem sets: https://whimsical.com/upstream-mvp-U4YYGUP4T7gFbqxeVJbQ1C

</aside>

The MVP features are designed to give users a working code collaboration tool. Much of the inspiration is taken from tools such as Github, Gitlab and Bitbucket. We will start by offering features that allow team members to effectively pull code and commit fixes to the project.

Our goal is to allow DAOs to begin using Radicle to host their code and utilize a third party project management software for issue tracking. Our Post-MVP features will focus on code collaboration tools.

Category Feature Name Value Known Problems Notes Status
Project Project Compatibility - New projects created on the CLI should be searchable from Upstream - Upstream currently uses the p2p protocol, while the CLI uses push/pull seed nodes.

Post-MVP Features

After our MVP launch, the goal is to have a few DAOs that use the Radicle platform as their primary code collaboration tool within their development team. Once the features are stable and teams can efficiently collaborate using them, we will begin discovery for our post-MVP features.

We have identified a few quick follow-up features that we’d like to implement shortly post-launch:

Category Feature Name Value Notes
Project Issue Compatibility - New issues and comments created on a project should also show up on the web client
Project Search - Collaborators can search for a project without knowing the exact project URN
Issues Issue Creation - Maintainer needs to be able to create an issue on a project All issues should be auto-assigned a unique ID. The maintainer should be able to attach various data to the issue, including name and description
Commenting - Both maintainers and collaborators should be able to comment on an issue Comments should be able to be both rich text with the ability to attach images
Issue Update - Both maintainers and collaborators should be able to automatically see new issues and comments posted There will need to be some subscription that automatically updates the UI when new activity is detected
Issue Statuses - Maintainers need to be able to set a status on any particular issue

As the product matures, our features will mainly focus on 2 categories:

Web3 Unique Features