-
Notifications
You must be signed in to change notification settings - Fork 7
Why this exists
Issue #555 explores manuscript and Y.Text authority; #548 is a current compatibility defect; and #349 is the collaboration invite-link UX. This Discussion asks what user experience local-first manuscript editing and CRDT authority should actually enable.
Current state
Local-first behavior can provide offline editing, fast local response, recovery, and multi-view continuity for solo authors. Collaboration adds conflict semantics and shared state, but the product should explain what CRDT authority improves even when a user is not collaborating.
The scopes are intentionally distinct:
- local-first: migrate manuscript text to Y.Text and gate the source-of-truth flip #555 = manuscript/Y.Text authority;
- local-first: preserve prototype-named entity IDs when rebuilding ProjectData from Yjs #548 = current compatibility defect;
- Collaboration invite links with expiry/permissions #349 = collaboration invite UX.
Product decision space
Explore solo-author value, offline behavior, undo/redo, multiple views, conflict semantics, collaboration handoff, history/versioning, recovery, and whether CRDT authority earns its complexity without active collaboration. A good model should make acknowledged edits durable and understandable rather than exposing implementation details as new uncertainty.
Role perspectives
Role-perspective note: The viewpoints below are maintainer-curated, AI-assisted design lenses. They are not separate community members, votes, or evidence of consensus.
- ✍️ Solo author: immediate editing, offline continuity, undo/redo, and trustworthy recovery.
- 🤝 Co-author: understandable presence, conflict outcomes, handoff, and collaboration continuity.
- 🧪 Data integrity: durable acknowledged edits, deterministic history, no-loss merges, and explicit recovery.
- ⚡ Large-manuscript performance: bounded memory, responsive views, indexing, and predictable synchronization costs.
- 🧭 Product: use CRDT authority where it improves the writing experience, not merely because collaboration exists.
Questions for the community
- What solo-author problems should Y.Text/local-first solve first?
- How should undo/redo, snapshots, branches, and recovery interact?
- Which conflict outcomes must be visible and user-controllable?
- When does CRDT authority add value without active collaboration?
- How should local-first: migrate manuscript text to Y.Text and gate the source-of-truth flip #555 , local-first: preserve prototype-named entity IDs when rebuilding ProjectData from Yjs #548 , and Collaboration invite links with expiry/permissions #349 remain separate in user-facing expectations?
Relationship to implementation
This Discussion links product exploration to #555 while explicitly preserving #548 as a technical defect tracker and #349 as the invite UX tracker. Those Issues remain authoritative for implementation, acceptance, priority, and sequencing; the Discussion changes none of them.