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:
- Share specific files or folders from their vault with other authenticated users on the same
livesync server.
- Provide a direct, simple method for recipients to join these shared items using a "Collaboration ID."
- 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.
Is your feature request related to a problem? Please describe.
obsidian-livesyncis 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:
livesyncserver.relay-md-obsidian-plugin.Detailed Feature Proposal:
1. Server-Side User Accounts:
* The
livesyncserver would need to manage user accounts and authentication, associating vaults with owners.2. Initiating Selective Sharing (Sender):
* UI Integration: Access
Livesync: Share Current File/Foldervia 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
Additional context
This feature would significantly enhance
obsidian-livesyncby 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 fromrelay-md-obsidian-plugin's approach to granular changes is key for achieving seamless real-time co-editing.