ELVA - Local-First Real-Time Collaboration Apps in Your Terminal
Science evolves and flourishes through close team work and smooth information exchange.
Despite the plethora of digital collaboration platforms a tool that allows for seamless collaboration does not exist, yet.
We present ELVA
, a command-line tool and suite of terminal applications which are able to synchronize arbitrary data structures in real-time without conflicts in a peer-to-peer setup.
From a simple text file to an IDE session, a chat, a directory's content ... All of this can be modeled with a combination of conflict-free replicating data types (CRDTs) provided by the Yrs
library and its Python bindings in pycrdt
.
Thereby, merge conflicts as a main pain point of version control systems and file based synchronization services are mitigated or even completely avoided.
In addition, ELVA
apps are written to be local-first: they run locally on your machine, also when you are offline, and store your data on your disk.
The local state is synchronized with remote-peers automatically when you are back online.
A central server is not needed, but it can work as a relay or broker between peers to overcome restrictive firewalls.