Decentralized Code Collaboration Using Radicle

Computer software is arguably one of the most impactful technologies of our time. Over the past few decades, major changes in individual behavior, work habits, social organization, and wealth distribution have been triggered by software innovations, and everything suggests there’s more to come.

One way to categorize software-based services is how decentralized and censorship-resistant they are. Systems operating on a peer-to-peer instead of client-server architecture are more decentralized and, by minimizing reliance on powerful intermediaries, provide individual users with more agency and control over their information and interactions. [1]

An example of such a technology is Radicle, a decentralized application for code collaboration that combines Git with a peer-to-peer (P2P) gossip protocol called Radicle Link. Radicle takes a local/offline first approach to data storage but also allows users to selectively connect and share information with their peers. This enables anyone to ’make their own GitHub,’ including collaborative features like issues, patches, and discussions. However, by opting for local storage and P2P sharing, Radicle minimizes the platform and censorship risk that inevitably comes with relying on centralized service providers.

Radicle Link distinguishes between two types of identities: Personal (individual users storing their data or interacting on Radicle) and Project (software projects on which one or more actors collaborate). These identities are not ’accounts’ on some website but unique to each user and their device. Radicle identities are self-sovereign, portable, and can be used with any client built on the network. A well-known downside of a P2P model is that data is more scattered and less discoverable than on centralized platforms. To provide a global registry of identities without sacrificing decentralization, Radicle integrates with Ethereum (and potentially other blockchain and smart contract networks in the future). Not only does Ethereum help with canonicity (i.e. establishing a shared view of the latest ’official’ state of some info), it also enables the creation of crypto wallets (for individuals, teams, projects) and accessing the various decentralized financial and governance applications deployed on Ethereum.

In the future, one could imagine software development communities organized as decentralized autonomous organizations (DAOs) whose critical recordkeeping and transactions are handled entirely by Radicle, Ethereum, and other decentralized service networks. [2] Code repositories can be controlled by evolving DAOs through multi-signature arrangements instead of a single administrator while the trust-minimized execution guarantees of smart contracts can be used to experiment with novel and more automated funding mechanisms and administrative procedures. In short, this is a much more Internet-native way for online communities to not just collaborate on code but develop other organizational capabilities that, until now, have required depending on centralized meatspace institutions.

To learn more about Radicle, visit the Docs and Community Forum.

Footnotes

[2] Disclosure: The author’s work is funded by Placeholder, an investor in RAD and ETH.