Repository navigation
Closed
Labels
Description
This is a collection of tasks for bringing collaboration via Yjs to OpenCloud.
Tasks
Groundwork
- Bring feat(yjs): collaborative editing framework #2785 into a mergable state, then review and merge it @JammingBen
Direct follow-ups
These should happen before we officially announce this as productized.
- Add e2e tests Yjs collaboration e2e tests #3064
- Disable collaborative editing in vaults (for now) #3100
- collaborative editing: bake web version into room name #3101
- Collaborative editing: handle external file updates #3103
- Add unit tests for
services/yjs#3104 - y.js container hygiene #3105
- Publish the y.js Docker image and set up CI for future releases #3106
- tiptap redo is broken #3108
- Add the published y.js image to opencloud-compose #3107
Can happen later
Features
- Make y.js connection status to yjs server visible in tiptap UI #3109
- Show avatars of users in the current y.js editing session #3110
- Port the excalidraw app to web-extensions #3111
- Add dev docs on how to write an extension using collaboration #3112
- Handling folders in the
AppWrapper(notes extension via ocnb)
Hardening
- A yjs session joiner with a new etag can't always claim recovery #3132
- Former editor with revoked write permissions can edit a file in a yjs session #3133
- Y.Doc hydration can race #3141
- Image resizing doesn't rerender for peers in collaborative markdown #3113
- Make editor component async #3217
- Collaborative editing: immediately inform peers about external updates #3239
Needs concept
- Version handling
- Auto save intervals -> possible with auto save election
- Check compatibility in vaults, i.e. can we make it work in vaults?
- Make it work on public links -> worth the efforts?
- Another peer's edit messes with your local dirty state
Decisions
Make "Show source" work for markdown files despite collaboration enabled on the system (might need a concept)Known limitation: "Show source" doesn't work on instances with collaboration
Reacted by Dominik Schmidt
Reacted by Dominik Schmidt
Reacted by Dominik Schmidt
Reacted by Dominik Schmidt and Tobias Baader
Activity
dschmidt commentedon Aug 5, 2026
Yes, absolutely - but the question is rather: can we encrypt the Yjs traffic using the vault passphrase so the content is not leaked to the server?
Is that "secure" enough or do a lot of small messages allow easier decryption of the passphrase?
AlexAndBear commentedon Sep 18, 2026
I was at least able to re-enable it but in read-only view
#3405
JammingBen commentedon Oct 27, 2026
I'd consider this "done", remaining topics exist in various issues, so closing here.