Source
- Fishbowl effect of real-time collaborative software
- File-based collaboration creates problems of versioning and merging edits from different co-authors.
- Versioning in file-based collaboration does not suffer from the fishbowl effect. They work well for people writing alone, but have the downside of requiring manual version management when collaborating with others.
- Reviewing changes
- Carefully reviewing a document is important in many professional contexts, but existing software makes it difficult to visualize and review the changes that have been made to a document.
- Layers and drafts
- An Upwelling document is always edited within a layer. We call unmerged layers “drafts”.
- An Upwelling document can have multiple drafts at the same time, all of which are separate from each other: edits made in one draft do not appear in other drafts. As such, a writer who needs a private space can create a new draft and work there in solitude.
- When the draft is ready, it is merged onto the stack:
- The stack captures the full editing history of the document, starting from the moment it was created as an empty document, and each merged layer represents a batch of changes relative to the previous (lower) layer.
- All drafts float on top of the stack of merged layers; when one draft is merged, all other drafts are updated to include the changes in the merged layer. Using a Git analogy, every time a branch is merged into main, all other branches are automatically rebased on top of the latest main: