Skip to content

Feature Request: Selective Multi-User Collaboration with Direct Sharing #665

Description

@SamGreenwood1

Is your feature request related to a problem? Please describe.
obsidian-livesync is excellent for personal vault sync across devices, but it currently lacks multi-user collaboration. There's no built-in way to securely share and collaboratively edit specific files or folders with other users, limiting its potential for shared projects or team notes in a self-hosted environment.

Describe the solution you'd like
I propose adding selective multi-user collaboration features to obsidian-livesync, while fully maintaining its current personal sync functionality.

The core additions would enable users to:

  1. Share specific files or folders from their vault with other authenticated users on the same livesync server.
  2. Provide a direct, simple method for recipients to join these shared items using a "Collaboration ID."
  3. Support real-time or near real-time collaborative editing for shared content, building on a diff-based approach as seen in plugins like relay-md-obsidian-plugin.

Detailed Feature Proposal:

1. Server-Side User Accounts:
* The livesync server would need to manage user accounts and authentication, associating vaults with owners.

2. Initiating Selective Sharing (Sender):
* UI Integration: Access Livesync: Share Current File/Folder via Command Palette, Ribbon, or context menu.
* Sharing Dialog: Set permissions (Read-Only/Read-Write) and then generate a unique, copyable "Collaboration ID" for the shared item. This ID is shared directly with recipients.

3. Joining Shared Content (Recipient via Collaboration ID):
* UI Integration: A new command: Livesync: Join Shared Item by ID.
* Workflow: Recipient pastes the Collaboration ID. Upon validation, the plugin prompts for a local vault location (e.g., a "Shared with Me" folder) to download and begin syncing the shared content.

4. Real-time Collaboration & Conflict Resolution (for shared items):
* For actively collaborated files, implement a granular, diff-based synchronization strategy. This is where concepts from projects like relay-md-obsidian-plugin are particularly inspiring, suggesting a shift towards sending atomic changes (Operational Transformation/CRDTs) rather than whole files.
* This approach enables multiple users to edit concurrently with automatic conflict resolution.
* If conflicts occur (e.g., from offline edits), provide clear in-Obsidian notification and support for manual resolution using standard conflict markers.
* Version History: Server-side granular history of changes for shared items, attributed to users, enabling rollbacks.

5. User Experience Enhancements:
* Presence Indicators: Subtle cues in the File Explorer/editor indicating shared status and active collaborators.

Describe alternatives you've considered

  • Full vault sharing: Lacks selectivity and privacy.
  • Complex in-app invitation systems: Less direct than ID sharing for ad-hoc collaboration.
  • External tools (Git/cloud drives): Miss the seamless, real-time Obsidian integration and self-hosted benefits.

Additional context
This feature would significantly enhance obsidian-livesync by adding powerful, self-hosted, and privacy-respecting collaborative capabilities, extending its value beyond individual sync. The "Collaboration ID" provides a straightforward entry point for this new functionality. The technical inspiration drawn from relay-md-obsidian-plugin's approach to granular changes is key for achieving seamless real-time co-editing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions