- Purpose
- Applications and Platforms
- Common Issues
- Concepts
- Related Awesome Lists
- Initiatives and Institutions
- Roadmap
- Contributions
- License
The purpose of this document is to provide an overview and guide to existing open-source decentralized applications (dapps) and platforms for social interaction, social networking, social media, social engagement and creative or project-based collaboration (e.g. Decentralized Autonomous Organizations).
For our purposes, decentralized means that these apps are peer-to-peer (P2P) and/or rely on decentralized infrastructure like public, open-source blockchains (e.g. Ethereum or Bitcoin) or protocols (e.g. IPFS, Secure Scuttlebut, Dat, Gun, WebTorrent, ActivityPub). If they rely on blockchains or protocols like these, it must be practically possible for users to run their own nodes without having to pay fees to any centralized entity.
Decentralized apps and platforms are distinguished from centralized ones (e.g. Facebook) that rely on centrally managed servers/databases and federated ones that rely on a network of locally centralized servers (e.g. Mastodon).
Only open-source apps and platforms will be listed here.
This is a curated list. More developed apps and platforms with more features and/or a wider user base may be highlighted, but all apps/platforms that meet the overall purpose will be listed here if submitted.
- Acorn - Acorn is an open-source, peer-to-peer project management application, built with Holochain.
- Aether - Open source, self-governing communities with auditable moderation and mod elections
- Bluesky - An app and project originally spun out of Twitter, which is building the AT Protocol (see below), a new foundation for public conversation and social networking which gives creators independence from platforms, developers the freedom to build, and users a choice in their experience. They have also open sourced their Personal Data Server and Ozone, a web interface for content labeling.
- Briar - WhatsApp clone with security focus. GPL licensed
- Circles - A social media app (iOS only) based off of the Matrix platform (see more below), currently in beta.
- Effectio Community Communication and casual social organising platform, built on top of Matrix protocol.
- Element, formerly known as Riot IM, is the reference messaging client for the Matrix platform. Matrix is currently federated but a fully decentralized version is under active development (see below). Strongly private group messaging using MegOlm double-ratchet. Backed by Automattic, the creators of Wordpress, among others. Used by the French and German governments and other clients. Apache 2.0 licensed
- DTube - Youtube clone using Steemit blockchain and IPFS. GPL licensed
- Group Income - Voluntary Basic Income system that's decentralized and end-to-end encrypted. Uses Shelter Protocol (see below).
- Ibis - A federated alternative to Wikipedia. Written in Rust, could be ported to WASM and made fully decentralized.
- Iris - Social sharing using Gun and IPFS
- Jami - WhatsApp clone
- Junto - Social network on Holochain
- Lemmy - An alternative to Reddit. Curently only federated, but because it is in Rust it could be ported to WASM and made fully decentralized, like Matrix (see below)
- Manyverse - A social network built on the Secure Scuttlebut protocol.
- Matrix Social A Matrix "Social Media" client
- MinesTrix - A social media app (Flutter: Android, iOS and web) based off of the Matrix platform (see more below), still in alpha.
- Minttner - An app for knowledge communities. Powered by the Hypermedia protocol.
- NOSTR Clients (multiple) NOSTR is an open protocol for censorship-resistant global networks, and this lists multiple clients that support it
- Open Super Dapp - Your gateway to the new digital commons. A "super app" with integrated mobile messenger, Ethereum wallet, and Web 3.0 browser built on open, decentralized, and encrypted protocols. Pre alpha. Seeking developers/supporters.
- Open Wallet Foundation - The mission of the OWF is to develop an open source engine to enable secure and interoperable multi-purpose wallets anyone can use to build solutions.
- Peerpeth - Twitter clone on the Ethereum blockchain
- PeerTube - Youtube clone using ActivityPub
- Patchwork - Social network on Secure Scuttlebut. AGPL licensed
- Ricochet Refresh - Ricochet Refresh is the new updated version of Ricochet, supported by Blueprint for Free Speech. Ricochet is anonymous, metadata-resistant instant messaging
- Quiet - A private, p2p alternative to Slack and Discord built on Tor & IPFS
- Status.im - Status is a secure messaging app, crypto wallet, and Web3 browser
- Textile Photos - A photo sharing app using Textile (See below)
- Third Room - Open, decentralised, immersive worlds built on Matrix
- Veilid Chat - VeilidChat is a demo of the Veilid framework and protocol working.
- Vocdoni - A voting and collaboration platform, affiliated with Aragon, on an Ethereum compatible sidechain
- 3box Nascent social networking platform using Ethereum and OrbitDB (IPFS-based)
- DSNP Decentralized Social Network Protocol - a public social graph completely disconnected from financial incentives from Amplica Labs and Project Liberty, built on Frequency and Polkadot
- Holepunch - Holepunch equips developers with a powerful suite of independent components to effortlessly construct peer-to-peer applications. Includes information on Hypercore, Hyperbee, Hyperdrive, Autobase, HyperDHT, and Hyperswarm open source projects.
- Homestar - The individual node that makes up the Everywhere Computer network on the IPVM (Interplanetary Virtual Machine)
- Mix platform - Using Ethereum and IPFS
- Matrix platform - Matrix is an extendable social messaging platform that is currently federated/distributed, but they are looking into a fully decentralized P2P version with an innovative approach that puts the federated server onto people's devices! Something to watch - A discussion room is available to follow developments. Strongly private group messaging using MegOlm double-ratchet. Supports bridges to existing "walled garden" corporate networks and custom bots. Matrix is governed through an transparent, participatory process overseen by the Matrix Foundation. Element is Matrix's reference client (see above).
- OddSDK - ODD SDK is Fission's true local-first, edge computing stack. ODD SDK empowers you to build fully distributed web applications with auth and storage without needing a complex backend
- Qortal - Community-Driven and Developed, Completely Custom Built, and Truly Decentralized. With its Unique Egalitarian Consensus Protocol, Leveling System, and Blockchain-Secured Distributed Data Network, QORTAL is Designed To Create A Completely Secure and Liberating Digital World. More info
- Sia - A decentralized cloud storage platform.
- Spritely - An alpha ecosystem of protocols and projects leveraging ActivityPub and Object Capabilities. Read about The Heart of Spritely: Distributed Objects and Capability Security here.
- SecuShare - decentralized messaging on GNU:Net (see below)
- Textile platform - Using IPFS
- app.co - Decentralized app store (not all are open source!)
- An overview of existing social networking options including decentralized ones (6/26/19): So You Want to Leave Facebook
- Aragon platform - Now affiliated with Vocdoni
- DAOStack platform
- Colony platform
- Moloch platform
- BroncoVotes - Ethereum based secure voting platform
- Nouns Anonymous Voting - A proof of concept implementation of anonymous voting on Ethereum, leveraging Timelock (on Github), a public platform that allows companies and individuals to encrypt data for future decryption, which in turn relies on dRand (on Github), a trusted distributed beacon of public randomness, from the League of Entropy.
- PeepsDemocracy - ActBlue alternative. Nothing there yet? Open source?
- Blockstack platform - Various dapps are available, including Graphite, a Google Docs/Sheets clone. Some but not all are open source
- git-bug Decentralized issue tracking using git itself
- git-remote-ipfs - Git push/pull to IPFS
- git-ssb - Git over Secure Scuttlebut
- Mango - Git using Ethereum, IPFS
- Radicle - using IPFS
- Secret voting (Enigma) using Enigma (see below)
- Secret voting (Oasis) - using Oasis (see below)
- Secret voting (Vocdoni) - using zk-SNARKs
- Trellis - Trello clone based on MPL (Automerge & WebRTC)
- An overview of existing Ethereum-based DAO (decentralized autonomous organization) platforms (6/16/19): Aragon, DAOStack, Colony, Moloch
Identity services are a key requirement of most social/collaborative apps. Decentralized and self-sovereign identity platforms and "wallets" are listed here.
- Biscuit Authorization - Biscuit is a revocable authorization token with decentralized verification, offline attenuation and strong security policy enforcement based on a logic language. How to integrate with OAuth and OIDC.
- Ceramic DIDs and linked documents on IPFS. Affiliated with 3Box and Ethereum ecosystem. (Not affiliated with Decentralized Identity Foundation?)
- DBSC - Device Bound Session Credentials. Not strictly for decentralized uses, but may be helpful. Device Bound Session Credentials (DBSC) aims to reduce account hijacking caused by cookie theft. It does so by introducing a protocol and browser infrastructure to maintain and prove possession of a cryptographic key.
- DID-SIOP - OpenID protocol for self-issued (self-sovereign) identities, e.g. using a public/private key or cryptography wallet
- Ethereum Attestation Service - A free and open protocol for on-chain attestations on EVM compatible blockchains
- IDM General purpose identity manager for DIDs
- iden3 Ethereum identity platform leveraging zk-SNARKs (See below)
- ION DID Method implementation using the Sidetree protocol on top of Bitcoin. From Decentralized Identity Foundation.
- ipid - DIDs using IPFS
- Hyperledger Indy
- Keycard - A new type of smartcard and open source API for simple integration with crypto wallets, DApps, and hardware
- MetaMask Ethereum wallet/identity manager
- OpenPubkey - OpenPubkey adds user generated cryptographic signatures to OpenID Connect. See also journal article on the protocol. They say open source code is available, but where?
- OpenABE - Open source cryptographic library with attribute-based encryption implementations in C/C++
- Rabe - Rabe is an Attribute Based Encryption library, written in Rust
- Reclaim:ID - Decentralized identity on GNU:net with OpenID interface
- Trezor Open-source hardware wallet/identity manager
- uPort Ethereum wallet/identity manager
- Wallet Connect - Open protocol for connecting Wallets to Dapps
- zkEmail - Proof of Email, using Circom & Ethereum. Email a relayer in order to transfer money or transact on Ethereum, anonymously. Peer to peer marketplace for decentralized on ramp/offramp to ethereum via Venmo and other payment services.
- zkLocus - zkLocus enables users to authenticate their geographical location with service providers while preserving their privacy. Runs on Mina Protocol (see below).
These are the underlying decentralized protocols powering the dapps and platforms above
- ActivityPub
- AT Protocol - The Authenticated Transfer Protocol is the new decentralized protocol developed by Bluesky (a project spun out of Twitter), and is a federated protocol for large-scale distributed social applications.
- Automerge - CRDT implementation
- Beckn - Core protocol specification for peer-to-peer consumer-provider interaction
- Bitcoin blockchain
- BitTorrent
- CACAO - Chain-agnostic Object Capabilities (OCAP), created using EIP-4361 (or similar for other blockchains), as an IPLD object. Can work on content addressable storage like IPFS.
- Circom - a novel domain-specific language for defining arithmetic circuits that can be used to generate zero-knowledge proof, with available compiler.
- Dat - A mutable, identity addressed file/data sharing protocol
- DIDComm - The purpose of DIDComm Messaging is to provide a secure, private communication methodology built atop the decentralized design of DIDs (see below). Intended to work over any transport. Here is an official working demo.
- Enigma - Secure "secret contract" protocol extended from Ethereum. Founders of Secret Network
- Ethereum blockchain
- Farcaster - Farcaster is a community-created protocol for building decentralized social applications. Developers can use Farcaster to build new, decentralized social networks, letting the protocol deal with the hard problems of managing user identities and data. Users can create a new account that they control and sign up to use any of these applications. Users are always in control of their data and identity and can switch freely between applications. Information about Farcaster Frames.
- Fluid Framework - for managing state for collaborative decentralized apps. Requires servers for operation.
- Gun - P2P CRDT protocol implementation
- Holochain
- Hyperswarm - A distributed networking stack for connecting peers.
- Iroh - Iroh is a protocol for syncing & moving bytes. Bytes of any size, on any device. At its core, it's a peer-2-peer network built on a magic socket that establishes QUIC connections between peers. Peers request and provide blobs of opaque bytes that are incrementally verified by their BLAKE3 hash during transfer. Emerged as a fork/adaptation of IPFS. Example usage to send P2P files.
- Lens Protocol - Lens Protocol is a composable and decentralized social graph, ready for you to build on so you can focus on creating a great experience, not scaling your users. Built on Polygon/Ethereum chains.
- Loro - Reimagine state management with CRDTs. Easily enable collaboration and time-travel on your app.
- IPFS - An immutable, content addressed file/data sharing protocol. libp2p based
- Mina Protocol - Mina is a new cryptocurrency with a constant size blockchain, improving scaling while maintaining decentralization and security (Javascript/Browser)
- MPL - Using Automerge and WebRTC
- Noir - Noir is a Domain Specific Language for SNARK proving systems. It has been designed to use any ACIR compatible proving system. NoirJS is a TypeScript library that make it easy to use Noir on your dapp, webapp, Node.js server, website, etc. Can work with any proving system, but works out of the box with Barretenberg proving backend.
- NOSTR NOSTR stands for "Notes and Other Stuff Transmitted by Relays" and is an open protocol for censorship-resistant global networks. Awesome NOSTR
- Oasis - Secure "secret contract" protocol extended from Ethereum
- Secure Scuttlebut
- Shelter Protocol -The Shelter Protocol is a protocol for creating end-to-end encrypted, federated, user-friendly web applications.
- Steem blockchain
- Veilid - Veilid is a peer-to-peer network for easily sharing various kinds of data. Veilid is designed with a social dimension in mind, so that each user can have their personal content stored on the network, but also can share that content with other people of their choosing, or with the entire world if they want.
- Waku - Decentralized, off-chain communications channel for Web3. Demo Poll App on Waku.
- WebRTC
- Winden - Winden is a free web application for secure, fast, and easy file transfers between devices in real-time. Winden is identity-free, meaning that senders and receivers don't need to know each other's identity to use it, or to reveal their identity. Built on the Magic Wormhole Protocol.
- XMTP - A shared library encapsulating the core functionality of the XMTP messaging protocol, such as cryptography, networking, and language bindings. Full decentralization is on the roadmap
- Zot - Used in Aether and Hubzilla platforms
Decentralized networking/transport libraries and utilities
- CJDNS - Encrypted IPv6 network using public-key cryptography for address allocation and a distributed hash table for routing
- GNU:Net - Private, decentralized networking stack with file sharing, messaging, etc. layers. An official GNU project.
- I2P - A fully encrypted private network layer. It protects your activity and location.
- LibP2P - A decentralized networking stack and library modularized out of The IPFS Project, and bundled separately for other tools to use
- Tor Onion Services - Onion services are services that can only be accessed over Tor. Running an Onion Service gives your users all the security of HTTPS with the added privacy benefits of Tor Browser. Can be used for decentralized applications, see Ricochet Refresh and Quiet listed above.
- Yggdrasil - Scalable routing as an encrypted IPv6 overlay network
- ClickHouse - Distributed SQL OLAP DB
- Cockroach DB - Distributed SQL DB, which is written in Go and can be compiled to WASM to run on devices
- CozoDB - A transactional, relational-graph-vector database that uses Datalog for query. Run on mobile or in the browser.
- Electric SQL - Local-first sync layer for web and mobile apps. Build reactive, realtime, local-first apps directly on Postgres
- FoundationDB - The open source, distributed, transactional key-value store from Apple.
- FlockDB - Distributed graph database in Scala
- Fluree - Fluree is an immutable, temporal, ledger-backed semantic graph database that has a cloud-native architecture. It supports a "Data Defending Itself" authorization strategy. (See more below under concepts.) There is a build that runs in the browser.
- Gun - P2P browser-based graph database. See also above
- JanusGraph - Distributed graph database in Java
- KVRocks - Kvrocks is a distributed key value NoSQL database that uses RocksDB as storage engine and is compatible with Redis protocol. No listed webassembly/browser build, but could be possible?
- mvSQLite - Distributed SQLite that runs on top of FoundationDB.
- OrbitDB - Distributed DB implementing CRDTs on IPFS
- Nebula - Distributed graph database in C++
- SQLSync - SQLSync is a collaborative offline-first wrapper around SQLite. It is designed to synchronize web application state between users, devices, and the edge.
- SurrealDB - A scalable, distributed, embeddable, collaborative, document-graph database, for the realtime web.
- Tahoe-LAFS - Distributed least authority object capabilities database in Python
- TiDB - TiDB is an open-source, cloud-native, distributed, MySQL-Compatible database for elastic scale and real-time analytics. Can be run in browser using webassembly
- TiKV - Distributed transactional key-value database, originally created to complement TiDB. Can be run in browser
- Titan - Distributed graph database in Java
- Admarus - Peer-to-Peer Search Engine for IPFS
- Kamilata - Peer-to-Peer Search Engine System using the Kamilata protocol. Kamilata enables trustless search in open networks. This library can handle any type of data, and be easily integrated into your libp2p application. Powers the Adamarus IPFS search engine.
AI and machine learning libraries and resources for what is often called "Federated Learning" and sometimes "Decentralized AI" among other terms. AI techniques that can work on data that is separate/private and possibly held on user's edge devices (e.g. smartphones).
-
Awesome Federated Machine Learning - A good "awesome" compendium: Everything about federated learning, including research papers, books, codes, tutorials, videos and beyond. This section in particular links to the most notable "enterprise" quality libraries/frameworks. How can these be adapted for decentralized social media?
-
EdgeML - This repository provides code for machine learning algorithms for edge devices developed at Microsoft Research India
-
FATE - An Industrial Grade Federated Learning Framework
-
FedLearner - A multi-party collaborative machine learning framework
-
FedML - The federated learning and analytics library enabling secure and collaborative machine learning on decentralized data anywhere at any scale. Supporting large-scale cross-silo federated learning, cross-device federated learning on smartphones/IoTs, and research simulation. MLOps and App Marketplace are also enabled.
-
FederatedScope - An easy-to-use federated learning platform
-
Flower - A Friendly Federated Learning Framework, designed to work with edge/mobile devices
-
IBM Federated Learning Lib - A library for federated learning (a distributed machine learning process) in an enterprise environment
-
MetisFL - a federated learning framework that allows developers to easily federate their machine learning workflows and train their models across distributed data without ever collecting the data in a centralized location.
-
NVFlare - NVIDIA Federated Learning Application Runtime Environment
-
OpenFL - An open framework for Federated Learning
-
PaddleFL - Federated Deep Learning in PaddlePaddle
-
SecretFlow - A unified framework for privacy-preserving data analysis and machine learning
-
Syft - Perform data science on data that remains in someone else's server
-
TensorFlow Federated - A framework for implementing federated learning
- Distributed Press - An open source publishing tool for the World Wide Web and Distributed Web. It automates publishing and hosting content to the web that it seeds to decentralized protocols like Hypercore and IPFS.
A question for all decentralized social networking and collaboration tools is how to pay for the underlying storage and computing cycles needed to support it. Some of the solutions above require you to pay (in one form or another) to "post" content or initiate an action (e.g. most blockchains). Others make no guarantees that your content will be available to others unless you host it yourself and keep your computer constantly on, and then people across the world may be only able to access it very slowly (e.g. IPFS).
In a world in which the decentralized devices that interact with each other may be low power devices like phones, and in which the security of given nodes in the network may be untrustworthy, it is essential to be able to secure data and also compute on that data securely. This will require end-to-end encryption solutions in which data is encrypted on our individual devices.
It will also require secure private smart contracts and secure multi-party computation that can operate on encrypted data safely and in a "trustless" way. There are various new approaches to this including trusted execution environments and homomorphic encryption.
The Actor Model is the most natural framework for building decentralized social protocols, platforms and apps because it aligns with our democratic ideals and ways of initiating and organizing human endeavors. Object Capabilities, as opposed to Access Control Lists (ACLs), builds on the actor model to support the Principle of Least Authority, putting an actor in charge of their data, rather than a recipient or a service. This allows permissions to be revoked by the actor when desired and prevents the Confused Deputy problem and other abuses by service providers and proxies. See the concepts section below for references. See also ACLs Don't for an overview of the benefits of Object Capabilities vs ACLs.
Even when a project is fully decentralized in its operation and technically open source, its may be tightly controlled by a single corporation. No software that is controlled centrally like this can be considered truly decentralized. Some process considerations to evaluate when considering a project include:
- Is a development roadmap published?
- Is there an open and transparent process for selecting priorities for bug fixes and new features to be added to the development roadmap?
- Are pull requests and code contributions welcomed from everyone? Are pull requests processed in a timely and friendly manner? Are "good first issues" tagged, etc?
- Is there a welcoming Code of Conduct that is published and adhered to?
- Are there open discussion rooms where project maintainers and contributors can be reached with questions and issues in a timely manner?
- Are forks and alternatives welcomed or discouraged?
- Is the project well documented and regularly updated?
- Is the project designed in an extendable way?
Some relevant concepts
- Actor Model - Actor model of decentralized/concurrent computing
- Attribute Base Encryption - Attribute-based Encryption (ABE) allows for implementing fine-grained decentralized access control based on properties or attributes.
- Blockchain
- Byzantine Faults A type of challenge facing decentralized systems
- Confidential Computing - A consortium to accelerate the adoption of Trusted Execution Environment (TEE) technologies and standards. See also this list of current projects.
- Confused Deputy Problem
- CRDTs Conflict free replicated data types
- DAG - Directed acyclic graph
- DAO Decentralized autonomous organization
- Data-centric Security - Also called "Data Defending Itself"
- Decentralization for Web3 Builders - Specific models and principles of decentralization gleaned from the past several years of working closely with crypto founders, to guide web3 builders tackling what decentralization means in practice, across several use cases
- Decentralized AI
- DIDs Decentralized Identifiers
- DHTs - Distributed Hash Tables
- Double-ratchet encryption - Private messaging with "future secrecy"
- End-to-End Encryption
- Federated LEarning
- Homomorphic Encryption
- MegOlm - A double-ratchet encryption algorithm used by Matrix for private group messaging
- Object Capability - An access control approach consistent with the actor model of decentralized/concurrent computing. See also some introductory slides
- P2P Peer to peer
- Principle of Least Privilege - Also know as the principle of least authority
- Privacy-preserving solutions for blockchain - A good survey and overview of privacy-preserving solutions for blockchains
- Privacy-preserving DHTs, status. See also this paper on current reality and future
- Self-sovereign identity
- Secret contracts - A form of secure multi-party computation. Privacy protecting smart contracts. Also sometimes called "private contracts" or "private smart contracts"
- Smart contracts
- SMC - Secure multi-party computation
- Sybil attacks - A type of attack on a decentralized system
- TEEs Trusted execution environments, used in current versions of secure/private smart contracts
- Verifiable Credentials
- Verifiable Random Functions - Useful when randomness is needed in a deterministic proof.
- zk-SNARKs and zk-STARKs - Non-interactive zero-knowledge proofs. zk-SNARKS require trusted third-party setup, zk-STARKs do not. The Moonmath Manual seeks to make ZK math understandable to a broader audience.
- Next Generation Internet - a major European initiative and funder for a Human Internet that respects the fundamental values of privacy, participation and diversity.
This is a work in progress! Please help extend it and keep it up to date.
It is hoped that in the future a comparison of the various apps and platforms will be provided. Some of the criteria that will be worth highlighting are:
- Availability / use of encryption
- Privacy and management of personal data
- Underlying technologies used
- Adoption and use
- Level of maintenance and ongoing development
- License type
- Features provided
- Ability to do financial transactions
- Sponsors / contributors
- Degree of lock in that prevents leaving or migrating from the app / platform
- Degree of integration available with other networks and tools
- Performance / speed
Contributions aligned with the stated purpose and consistent with our code of conduct are welcome! Make a pull request to suggest additional resources or enhance this document. Edits to pull requests may be requested for placement, accuracy. Contributions that highlight the criteria mentioned in the roadmap above are especially appreciated.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.