aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md80
1 files changed, 80 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..925036c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,80 @@
+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.