05 — Collaboration Features

File sync is solitary; collaboration is where a vault becomes a workspace. The headline is bounded real-time co-editing (CRDTs) — which deliberately revisits a non-goal — surrounded by lighter, high-value social features.


C1 — CRDT Co-editing for Docs & Notes ⭐ near-flagship

Real-time multi-user editing of text / Markdown / structured notes (not arbitrary binary), conflict-free, offline-capable.

flowchart TB
    classDef c fill:#c7d2fe,stroke:#3730a3,color:#111827;
    classDef s fill:#bbf7d0,stroke:#15803d,color:#111827;
    a["Editor A (Yjs doc)"]:::c -->|"binary updates (state-vector sync)"| relay["BitVault relay (over event/WebSocket)"]:::s
    b["Editor B (Yjs doc)"]:::c -->|updates| relay
    relay --> conv["strong eventual consistency: all converge"]:::s
    relay -->|"checkpoint"| ver["persist CRDT state → a BitVault version (storage/07)"]:::s
   
Why it matters Co-editing is the feature that makes people live in the product; CRDTs are a genuinely hard, sought-after competency.
Complexity L — CRDT lib integration is M; the depth is persistence-as-versions, the relay at scale, access control per doc, and editor bindings.
Dependencies Sync/event channels (sync/), versioning (storage/07), policy (07).
Resume impact Very high. “Real-time collaborative editing with CRDTs, persisted into a versioned store” is a marquee distributed-systems line.

C2 — Comments & Annotations

Threaded comments on files and region annotations (highlight a PDF passage, pin a point on an image/design), with @-mentions and notifications.

   
Why it matters Turns files into discussion surfaces (review/feedback workflows) — high everyday value, modest cost.
Complexity M — data model + region anchoring (esp. PDFs) + notifications.
Dependencies Metadata, events (08), notifications (04 contexts).
Resume impact Medium. Solid product engineering; region-anchoring has some depth.

C3 — Real-time Presence & Awareness

Show who’s viewing/editing a file or folder right now, with cursors/selections in co-edited docs.

   
Why it matters Makes collaboration feel live; cheap once the relay (C1) exists.
Complexity S–M — ephemeral state + fan-out; mostly reuses C1’s transport.
Dependencies Event/WebSocket tier (08), C1 relay.
Resume impact Low-medium. Nice UX; modest novelty.

C4 — File Requests / Collect

A link that lets external people upload into a chosen folder without an account (e.g. “send me your documents”) — scoped, expiring, quota-bounded.

   
Why it matters A common, high-utility flow (intake, collection) competitors charge for; cheap given presign + tokens.
Complexity S — scoped tokens + presign + a public upload UI.
Dependencies Tokens/presign (ADR-0010/ADR-0011), policy (07).
Resume impact Low. Useful, not deep.

C5 — Shared Spaces / Teams

Team workspaces with granular roles and inherited permissions, powered by the ReBAC graph (07).

   
Why it matters The organizing unit for team collaboration; showcases the ReBAC model in product terms.
Complexity M — spaces model + ReBAC integration + admin UX.
Dependencies ReBAC/policy (07), identity (ADR-0010).
Resume impact Medium (as the surface of the ReBAC work).

Priorities within collaboration

C1 (CRDT co-editing) is the headline (build the relay once; C3 presence comes nearly free with it). C2 is high-value/modest-cost. C4/C5 are cheap wins on existing primitives.