What is Shard? =============== *WARNING:* This is a primer on what I want Shard to become. As of today I'm only starting work on this project and there is almost nothing to see. I hope this will evolve and approach at least a significant portion of the goals identified below. Shard is a decentralized communication system adapted to public and private discussion and collaboration. The system is based on distributed objects called "shards" of different types that users share and collaborate on. Shards are made to be usable offline or on small networks disconnected from the broader Internet, with updates becoming synchronized automatically whenever peers are able to communicate. Shard compared to other systems =============================== Shard is born from the synthesis of ideas already found in other networks, but aiming to fix some of their shortcomings. Shard vs. ZeroNet ----------------- Just like ZeroNet, Shard will enable users to run public applications with distributed collaboration. We wish to improve on ZeroNet in the following significant manners: - Full support for one-to-one and groupwise private communication and collaboration. Examples of such in ZeroNet are quite limited, for example ZeroMail enables user to exchange private emails but requires all peers participating in the ZeroMail system to store all messages sent by everyone. We want to make this work better by only requiring participants to store the private information. - Collaboration on very large databases. We wish to be able to store big collaborative databases (e.g. wikipedia) in a distributed way, so that it can be run in a decentralized fashion without requiring everyone to store a full copy. - Performance improvements. This is done by using a language that is by design well adapted to network programing with many things going on at once (Elixir/Erlang), as well as by optimizing our data stores to enable fast querying. Shard vs. Secure Scuttlebutt ---------------------------- Just like SSB, Shard will enable users to work off grid and exchange data when they happen to communicate. We wish to improve upon the following aspects of SSB: - More granularity on what peers store or not, by splitting a user's contribution in different "shards" that correspond to different topics. Users can still chose to replicate the shards that their friends use so that they have more options to synchronize and backup their data, but this is not required as it is in SSB where you have to replicate all the data of your friends and their friends. - Decentralized discovery: we don't want to rely on centralized servers such as SSB pubs. We want to use DHT technology as a primary means of discovering new people and finding contents. - We wish to be very general from the start, and not limited to social-media-like conversations. - We want excellent support for one-to-one and groupwise communications. Shard vs. Matrix ---------------- We aim to be much more general than a chat room, supporting collaborative edition, file sharing, any kinds of databases, etc. We also aim to work in a completely distributed fashion and not require federation servers. Shard vs. Mastodon / GNU Social ------------------------------- Same remarks than for Matrix.