Skip to content

Collaborative Editing and Account Sharing #1333

@eaterjolly

Description

@eaterjolly

Use Cases:

+-------------+----------------+--------------+------------+-------------------+
| Roleplaying | Coding Parties | Pinned Posts | Org Emails | Imaginary Friends |
+-------------+----------------+--------------+------------+-------------------+

Backend Support

Collaborative Editing

Fundamentally already an existing feature as discussed in element-hq/element-web#9793, without UI support.
Protocol needs to support character-by-character attribution, like any collaborative text editor.

Account Sharing

Shouldn't require any protocol support, aside from concurrent logins.
Usability will also require the client to support concurrent logins.
I'll describe implementation without attribution confusion in UX.

Permissions

Rooms should have Collaborative Editing unticked by default.
Members should by default receive edit requests as ping messages only visible to them.
Next to a member's ticked checkbox to receive edit requests, an advanced settings button should allow them to whitelist (auto-accept) or blacklist (auto-decline) other members.

A "Pass-and-Play" mode, by default disabled in the room's settings, should make the avatar, next to the compose message box, selectable to open a list of concurrently logged-in accounts. Then client and server track each letter per account, so, in a magnified view, a box surrounds those characters indicating the author by username along with a shrunk avatar.

UX

Even the most unsavy participants must learn to identify a message author by the username or avatar next to the message, so, to make abundantly clear the abnormal attribution, the client must ommit the usernames then either replace the avatar with a "mobile desktop style" folder, some other graphic, or an ascii design styled in a manner unmistakably not a username.

Who:

As an amateur, I would enjoy the challenge of building a branch testing out such a functionality.
I have wanted to for a long while, studying the code on multiple occasions with this in mind.
Any willingness to offer help or answer questions, greatly appreciated.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions