ProtonMail / ProtonMail/WebClients
Extensibility of the docs-editor collaboration layer for non-linear document models
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 5.6k
- Forks
- 715
- PR merge metrics
- No merged PRs in 30d
Description
- I have searched open and closed issues for duplicates
- This isn't a feature request
- This is not a report about my app not working as expected
Question
I've been reading through the docs-editor codebase and I'm
trying to understand how abstracted the collaboration/CRDT layer
is from the document model itself.
Specifically: is it designed in a way that could support
non-linear document models — e.g. a slide-based structure where
each "node" is a slide rather than a paragraph?
I'm evaluating the feasibility of building a community-contributed
presentation editor (docs-slides) that reuses as much of the
existing architecture as possible — shared crypto, collab, and
@proton/components — while following the conventions in the
contributing guide.
Before investing time in a proof of concept, I wanted to check:
- Is the CRDT/collab layer abstracted enough to support this?
- Are there internal constraints or planned refactors I should
be aware of? - Is this kind of external contribution something the team would
consider reviewing?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the docs-editor codebase, focusing on how its collaboration/CRDT layer connects to the document model, then review the contributing guide and @proton/components usage. Determine whether a slide-based node structure is supported, identify internal constraints or planned refactors, and document whether the team would review a proof of concept.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- distributed-systems, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100