Survey

State of the art of local-first & decentralized systems and other existing or announced solutions. Comparison with NextGraph

State of the art of local-first & decentralized systems and other existing or announced solutions.

Many decentralized softwares already exists, or are in development. They are not fulfilling the promises of interoperability and total ownership of data and software, for various reasons, that can range from their business model, the standards and technologies they chose, and the partial list of features they implement. Here we will have a look at the key differentiators.

The P2P substack used is of great importance. Most of the Web3 solutions today rely on a DHT (Distributed Hash Table) that scatters the data homogeneously on the internet. This is a problem for end-users concerned about their privacy, and for GDPR regulations that mandate the locality of data within the European Union. Other solutions are based on some blockchain technologies. This has basically the same caveats, in addition to some extra latency, as transactions are slow to be accepted on such networks. NextGraph bases its P2P stack on 2 important concepts: an overlay by repository, and a DAG representing partial causal ordering of operations. Only the members of a repository participate in the overlay and have access to the DAG.

Semantic Web or Graph databases exists since decades, and newcomers have changed the no-sql landscape recently. The main problems with those databases are the stack they run upon, that will prevent them to be embedded in a browser or small device like a cellphone, and the query language they support. The standards today are SPARQL and RDF. They are used by WikiData, numerous other LODs (Linked Open Data), and Solid, a framework for Linked Data Platform. Other query languages have been invented since then, mostly by database that implement the Property Graph model, which is a subset of RDF and therefor less powerful. A special mention should be given to Datalog that is an old language derived from Prolog and that enjoys a renewed interest nowadays. For NextGraph, we have chosen SPARQL over Datalog, as more tools exist for the former, and a huge amount of ontologies are readily available from decades of work fro academia and industries.

The consistency model of the database matters a lot for local-first software. We based NextGraph on CRDTs that offer strong eventual consistency. Other offline-first systems like GIT cannot guarantee that merges will not conflict, and the old models like distributed consensus, multi-master, federation, or plain monolithic ACID, are not compatible with a P2P architecture.

The stack used for back-end and front-end technologies is of uttermost importance for us, as the vast majority of the software is moved to the end-user devices, when the architecture is based on End-To-End encryption. For this reason, the code of the entire framework should run on embedded devices, smartphones and web-browsers. We chose Rust because it compiles to WASM, and because it produces otherwise some compiled binaries. It also features a novel memory management model that is more efficient than those based on some runtime core library with garbage collection. JavaScript remains a compatible language, but it is not efficient and more memory-hungry. Other languages running on the JVM or Erlang are not compatible with small end-user devices. Golang is mostly used for back-end software.

The reader has to take into account also the set of features implemented by each software, that is never reaching the target we set in our design. Some software originated from very specific application domains (like email, chat, file sharing, or productivity suites) and upgraded their features only later on. This has some impact on the overall design, that was sometimes too limiting from the beginning.

Finally, the licensing model of the source code and the usage of the software is very important. We included in this comparator some commercial products that are only available as SaaS (software as a service) even though this model is contrary to the basic principles of local-first software. A note on libre licenses (GPL, AGPL) that we do not favor, as they are restricting the usage anyone can do of the software, and they force their agenda on all developers including their code. We prefer permissive licenses (Apache 2.0, MIT, BSD…) as they are business friendly and generally compatible with everything.

If we omitted a project that you think should appear in the list below, or if some mistakes have slipped in, please contact us and we will fix that. It is understood that the features of NextGraph listed below are a work in progress, and will be completed in the second half of 2023. Also, the criteria selected for this comparison are oriented towards the same goals as NextGraph. The listed projects might excel in more features that are not compared here.

UX tip: on a desktop computer, you can scroll horizontally by clicking once on the table, then with ← or → keys on your keyboard. On mobile, just swipe.

Project Score (on 100) Based on P2P Overlay Network Semantic Web E2EE Content addressing Local-first Database CRDTs lib Byzantine Fault Tolerance Query Language Data Formats Signature Permissions Smart Contract Collaborative live editing Rich Text editing Mobile support Web support Native apps Stack Origins Terms Source Code Dev status Funding Money Start date Owner Country Description
NextGraph 89 Byzantine causal broadcastRepo-wide two-tier RDFE2EE Content addressingLocal-firstCRDTsautomerge + Yrs/Yjs + Peritext + Diamond TypesByzantine Fault ToleranceSPARQLJSON  + JSON-LD  + RDF  + MarkDown  + XML BLS Threshold signatureCryptographic CapabilitiesSmart ContractCollaborative real-time editingRich Text editingPlannedPlannedPlannedRustEcosystem/SDKEdge device + Self-hostingPermissiveWIPNGI AssureNGI Assure2021Niko PLPEuropeDecentralized and local-first web 3.0 ecosystem
Fission 66 IPFSDHT + Cryptocurrency Global
E2EE Content addressingLocal-firstCRDTsDifferential Dataflow
Datalog Custom BLS Threshold signatureUCANsSmart ContractN/A
Mobile supportWeb support
RustEcosystem/SDKSelf-hostingPermissiveWIPUndisclosed N/A2019Brooklyn Zelenka. Boris Mann. Quinn Wilton (Researcher)USA + Canadaidentity, data, and compute solutions
Hyper Hyper Space 60 Byzantine causal broadcast + Mesh networkApp-wide
Content addressingLocal-firstCRDTsCustom CRDTsByzantine Fault ToleranceCustom JSON SignatureACL
N/AWeb supportN/AJs/TsEcosystem/SDKSelf-hostingPermissiveReleasedNGI AssureN/A2020Santi BazerqueArgentinap2p applications using web browsers as full nodes
Ditto 58 Mesh networkApp-wide two-tier
E2EE
Local-firstCRDTsCustom CRDTs
Custom JSON SignatureCryptographic Capabilities + OAuth/OpenID
Mobile supportWeb supportNative appsRust + C/C++ + Js/TsEcosystem/SDKFreemiun SaaS + Licensed installClosed sourceReleasedVC9M2018Adam FishUSAEdge Platform real-time database
Holochain 58 App DHT App-wide Links
Content addressingLocal-firstDistributed--Byzantine Fault Tolerance
Custom SignatureCryptographic Capabilities + ACLSmart Contract
Web supportNative appsRustEcosystem/SDKSelf-hosting + Edge device + Paid SaaSPermissiveReleasedVC20M2017Arthur Brock, Eric Harris-Braun et al.USAframework for building distributed P2P apps
Project Score (on 100) Based on P2P Overlay Network Semantic Web E2EE Content addressing Local-first Database CRDTs lib Byzantine Fault Tolerance Query Language Data Formats Signature Permissions Smart Contract Collaborative live editing Rich Text editing Mobile support Web support Native apps Stack Origins Terms Source Code Dev status Funding Money Start date Owner Country Description
Serenity Note 56
--
E2EE
Local-firstCRDTsYrs/Yjs + automerge
Custom SignatureACL
Collaborative real-time editingRich Text editingMobile supportWeb supportElectron Desktop appJs/TsEcosystem/SDKSelf-hosting + Freemiun SaaSLibreReleasedN/A2022Naisho GmbhAustriaEnd-to-end encrypted collaborative notes
Matrix 54 Federation  + PlannedPlanned
E2EE
DAG  + CRDTsYrs/Yjs
Custom SignatureACL
Collaborative real-time editingRich Text editingMobile supportWeb supportElectron Desktop appPython + Golang + Js/TsChatSelf-hosting + Free SaaSPermissiveReleasedVCaround 36M2014Matthew Hodgson, Yousef El-DardiryUKsecure, decentralised, real-time communication
Naisho 54
--
E2EE
Local-firstCRDTsYrs/Yjs + automerge
Custom SignatureACL
Collaborative real-time editingRich Text editingN/AWeb supportN/AJs/TsEcosystem/SDKSelf-hostingPermissiveReleasedNGI Assurepart of Serenity Note2022Nik GrafAustriarelay end-to-end encrypted CRDTs over a central service
Mintter 48 IPFSDHT + Cryptocurrency Global
Content addressingLocal-firstCRDTsCustom CRDTs
GraphQL Custom
Collaborative real-time editing
N/AN/ANative appsGolang + Js/TsKnowledge Base + CollaborationSelf-hostingPermissiveReleasedUndisclosed N/A2021Gabriel, Alex, Horacio, Julio, JonasBarcelona + Germanydecentralized knowledge collaboration graph app
Homebase 47 datahikeSimple pub/sub App-wide
Content addressingLocal-firstCRDTsCustom CRDTs
Datalog  + GraphQL Custom SignatureOAuth/OpenID
Mobile supportWeb support
Js/Ts + JVM + ClojureDatabaseSelf-hosting + Freemiun SaaSPermissiveWIPVCpersonal investment2020Chris SmothersNY, CA & BerlinThe platform for local-first software
Project Score (on 100) Based on P2P Overlay Network Semantic Web E2EE Content addressing Local-first Database CRDTs lib Byzantine Fault Tolerance Query Language Data Formats Signature Permissions Smart Contract Collaborative live editing Rich Text editing Mobile support Web support Native apps Stack Origins Terms Source Code Dev status Funding Money Start date Owner Country Description
datahike 46 Simple pub/sub App-wide
Content addressingLocal-firstCRDTsCustom CRDTs
Datalog Custom
Mobile supportWeb supportN/AJs/Ts + JVM + ClojureDatabaseSelf-hostingPermissiveReleasedN/AN/A2021Konrad KühneMannheim, Germanyopen data replication system. based on replikativ
AFFiNE 46
--
Local-firstCRDTsYrs/Yjs
MarkDown
Collaborative real-time editingRich Text editing
Web support
Js/TsKnowledge Base + CollaborationSelf-hostingPermissiveReleasedN/A2022ShaoXuan QiChinaNext-Gen Collaborative KB. based on BlockSuite
Fluree 44 Private Blockchain  + Cryptocurrency --RDFE2EE
Distributed--
SPARQL + GraphQL  + Custom JSON-LD  + RDF SignatureACL
Web supportN/AJs/Ts + JVM + ClojureEcosystem/SDKSelf-hosting + Freemiun SaaSLibreReleasedVC15M2016Brian PlatzUSASemantic graph Web3 Data Platform
Cozycloud 44
--Links
Offline firstDistributed--
Custom Custom  + MarkDown
ACL
OT based live editingRich Text editingMobile supportWeb supportNative appsGolangProductivitySelf-hosting + Freemiun SaaSLibreReleasedVC6M2012Benjamin Andre, Frank RousseauFrancesmart personal cloud to gather all your data
Nextcloud 42
--SOLID
ACID monolithic --
LDP Custom  + RDF  + MarkDown
ACL
OT based live editingRich Text editingMobile supportWeb supportNative appsPHPProductivitySelf-hosting + Freemiun SaaSLibreReleasedNGI0 DiscoveryVC2016Björn Schießle, et al.GermanyRegain control over your data
Project Score (on 100) Based on P2P Overlay Network Semantic Web E2EE Content addressing Local-first Database CRDTs lib Byzantine Fault Tolerance Query Language Data Formats Signature Permissions Smart Contract Collaborative live editing Rich Text editing Mobile support Web support Native apps Stack Origins Terms Source Code Dev status Funding Money Start date Owner Country Description
Earthstar 39
Repo-wide two-tier
Local-first
Any SignatureCryptographic Capabilities
Web support
Js/TsFile sharingSelf-hostingLibreReleasedNGI Assure2022cinnamon-bunN/AWorks offline. Undiscoverable.
IPFS 38 DHT + Cryptocurrency Global
Content addressing
--
Any
Mobile supportWeb supportNative appsGolang + Js/Ts + PythonFile sharingSelf-hostingPermissiveReleasedProtocol Labs + VC + ICO100-200M2013Juan Benet + Protocol LabsUSApeer-to-peer hypermedia protocol
AtomicData 37 Federation --Custom
ACID monolithic
Custom JSON  + JSON-LD  + RDF SignatureACL
Web support
Rust + Js/TsDatabaseSelf-hostingPermissiveReleasedNGI Dapsi+ 2 NLnet grants2021Joep Meindertsma - OntolaNetherlandsgraph database server for Atomic Data
Logseq 36
--Custom
Local-only :(
--
MarkDown  + Org-mode + JSON
PlannedRich Text editingPartial Mobile supportWeb supportNative appsClojure + JVM + Js/TsKnowledge BaseSelf-hostingLibreReleasedVC4.1M2018Tienson QinChinaknowledge management and collaboration
SemApps 33 Federation --SOLID  + RDF
ACID monolithic --
SPARQL + LDP RDF  + JSON-LD  + ActivityPub
ACL
Web support
Js/TsDatabaseSelf-hostingPermissiveReleasedN/A2019Virtual AssemblyFrancetoolbox to build semantic web applications
Project Score (on 100) Based on P2P Overlay Network Semantic Web E2EE Content addressing Local-first Database CRDTs lib Byzantine Fault Tolerance Query Language Data Formats Signature Permissions Smart Contract Collaborative live editing Rich Text editing Mobile support Web support Native apps Stack Origins Terms Source Code Dev status Funding Money Start date Owner Country Description
Bluesky 32 Federation --
Content addressing
DAG --
Custom SignatureUCANs
N/AWeb support
Js/TsSocial NetworkSelf-hostingPermissiveWIPVCTwitter 13M2020Jack Dorsey USAAT Protocol, a new foundation for social networking
Wire 31
--
E2EE
--
--Custom SignatureOAuth/OpenID + ACL
Mobile supportWeb supportNative appsHaskell + JVMChatSelf-hosting + Freemiun SaaSLibreWIPVC53M+24M2012Alan Duric, Andre KiehneZug (CH) + Berlin + San Franciscochat, file sharing, video conf
Internxt 29 Public Blockchain --
E2EE
--
--
ACL
React NativeWeb supportElectron Desktop appJs/TsFile sharingFreemiun SaaSLibreReleasedVC2M2017Fran Villalba SegarraValencia, SpainE2EE cloud storage for files and photos
Google Docs 27
--
--
Custom
OCAP + ACL
OT based live editingRich Text editingMobile supportWeb supportNative appsProductivityFreemiun SaaSClosed sourceReleasedVC2006Google Inc.USAGoogle Drive, G-Suite, Google Workspace
AppFlowy 26
--Custom
Local-only :(
--
Custom
Rich Text editing
Native appsRust + FlutterKnowledge Base + ProductivitySelf-hostingLibreReleasedVCundisclosed2021Annie WangUSAalternative to Notion
Project Score (on 100) Based on P2P Overlay Network Semantic Web E2EE Content addressing Local-first Database CRDTs lib Byzantine Fault Tolerance Query Language Data Formats Signature Permissions Smart Contract Collaborative live editing Rich Text editing Mobile support Web support Native apps Stack Origins Terms Source Code Dev status Funding Money Start date Owner Country Description
Share: