Prototype for multiplayer editor

Build a prototype for a multiplayer web application that can edit text files using a crdt, see List of CRDT algorithms for the appropriate one.

It should if possible support local network connections.

Next step would be to try to build a prototype that edits RDF data via forms (that are generated using shex?)

Files are stored locally with a unique id.

To begin we could use a small file browser. As soon as we need to link data, we need a graph browser.

For a format, see own document.

First steps:

  • write up the formats text and include drawings
  • make sketches/wireframes in figma based on the sketches from formats text
  • research the necessary technology
  • CRDT
  • atom teletype?
  • could atom serve as a starting point?
  • multiplayer test: build in-browser ephemeral prototype that uses a textarea and plaintext collaboration. What frontend technology?
  • test for structured data

It must be very easy to use and set up.

It must be very easy to understand how it works and that more than one person can be editing at the same time.

It should be usable on low-end devices, ie raspberry pi or 2015-16 mobile hardware?

If the files end up living on both computers, who has the original? Or it is just an orbitdb style append log that is eventually consistent?

Is is possible to come in as a viewer only? As when editing a doc with a client?

Should it be built using rust? And then shipped to the end user as webassembly?

It should be clear in the user interface whether or not a client is online, and the current state of sync (if that’s a concept we use) to its peers.

In this decentralized system, a server which a user may want to use as a backup and sync-central is just another peer in the network, listening for updates like any other peer. When it is online, it is therefore a fairly live backup of your work.

Ref the idea of different views for the same data, one can imagine the ability to share one view, but not another.

We could also image being able to share a ‘portal’ or a read-only view of the data, also with live updates.

Maybe there are example apps using good CRDTs to use as a starting point?

Document the whole journey. Writing notes and typing out small essays will be essential to this process.

Is this something I can apply for BIO-midler for? Learning new, essential skills by researching and building an open prototype for a multiplayer editing environment?