Live team collaborative editing

Idea is for a live share feature, similar to options like

  • VS Code Live Share Extension Pack
  • HackMD / CodiMD
  • google docs

for real-time team collaboration. The main feature is that one or more people can edit the same document at the same time and see each others cursors. Perhaps even sharing the same application UI state with panel locations, file browser, graph view, etc.

18 Likes

I think that is on the roadmap as a paid service (“Publish”, scroll down here), hosted on Obsidian.md. I hope that is comparable to HackMD, but who knows.

Also, as Obsidian notes are plain markdown, you can edit them in other apps like VS Code and benefit from its Live Share. You will miss some features (backlinks pane and link auto-completion, for instance) but you can easily switch between VS Code and Obsidian to see the changes you make on the other app (you have to save the note in VS Code to see changes in Obsidian, though it is not necessary in the other direction.)

To collaborate in the cloud – unlike VS Code Live Share that is hosted on one of team members’ machine, iirc – you might consider versioning your notes by GitHub, and use HackMD’s GitHub integration to push notes to your repo on GH every now and then. Then by pulling the changes to your machine, you can have them again in Obsidian. (I know this is not straightforward, but that is how I am planning to do it.)

1 Like

I noticed Publish, but little detail about what it will be.

Wonder if foam might simulate obsidian decently enough in vs code if it works with live share

I like the idea of HackMD, but dislike needing to share each individual note to github (non-starter for 100s or 1000s of notes). Some discussion on CodiMD about challenges of implementing a git import/export https://github.com/codimd/server/issues/222

some valid points in there about commit frequency, etc.

2 Likes

that is how I am planning to do it

Did you have any luck? I was looking into this again recently and seemed like HackMd can only push/pull one file at a time. Another option could be to checkout your branch, import the whole lot into HackMd, do collaborative editing, then export the whole lot, copy to working tree and commit & push.

wondering if HackMD is the one, or some other open source I’ve come across:

  • Hedgedoc (another fork of HackMD->Codimd, being re-written)
  • Boostnote; though I’m unclear if it’s possible to self host

Also seeing the new sync and publish add-ons, which unfortunately don’t cover this. Would definitely be into a real time collab add-on!

Posted about this in another thread, Check out yjs/yjs: Peer-to-peer shared types (github.com). They already have a codemirror implementation as a demo, seems like this could be a surprisingly straightforward implementation…

2 Likes

very cool thanks for sharing, looks like there’s a lot of potential with that library

@zerkshop I already created similar topic, please see that.
Btw, Codemirror already supports collaborative live editing.

Use case or problem

  1. Collaborated Editing
  • Across two or more people (good for Teams) .
  • Across devices of same person.
  1. Chat and Communication.
  • Assuming that it is going to be on server-less P2P model, This will allow users to skip any third party service, and allow better privacy and control.

Proposed solution

I suggest a Peer2Peer solution for collaboration. On server-less model, (server-less implies that no server computer will negotiate when establishing P2P contact, it must all depend on individual peer’s user-agent (user-agent=Obsidian).

As per my Idea, you don’t need a Obsidian Account to collaborate. The connections are formed on ad-hoc basis, and Secure.

Interface:

  • There can a “Collaboration” settings tab under Settings > Plugin Options.
  • Where user creates/generates a “Collaboration Code (simple text)”, or “Service URL/QR Code of Service URL(real url or obsidian url, I don’t know)”
  • The user needs to share this Collaboration Code to his/her Collaborating partner who inturn will enter it in his/her Open vault > Onboarding Screen> New Collaboration Vault > give local location to save > Enter Code/URL > get started.
  • On entering that shared code/URL, The two Obsidian apps will establish a P2P connection. Tada!
  • The collaboration access has to be set per vault. The users may choose to set collaboration
  1. Always active.
  2. Activate on Toggle On/Off.
  • Additional Features:
  1. Optional User Profile picture, User Name, etc independent from Obsidian Account.

For Chat service,

  • There can be a tab under sidebar pane which shows a Chat among all peers, (similar to Zoom).
  • The Chat pane can float too or dock to bottom of app UI.

Current workaround (optional)

Nothing.

Related feature requests (optional)

Yeah, I saw few months ago.

16 Likes

Good idea

Hello

It has been a long time since I want to try out inter-connected gardens.

I think it is essential to experiment to see how it goes!.

One way to implement this is that the participants control their vault, a directory synchronized in P2P. Technically it can use a protocol
such as https://hypercore-protocol.org/, perhaps using Beaker.

Then one can ‘mount’ several directories (vaults) of people you want to follow. And then use obsidian on top to see in real-time any change that happens.

Perhaps the identifier ‘Service URL/QR Code’ could be an identifier of the vault, shared in the P2P network.

I see Obsidian and personal Wikis in general, as an excellent mechanism for collaboration on the Internet. It is less cumbersome and cleaner than write HTML and more flexible than the linearity of, let’s say, a forum.

We know Wikipedia; it worked well.

Perhaps many of us can give it a try, I think it will be worth it

5 Likes

What would be really cool is something like Honk

1 Like

This is a very cool app and my mind is racing thinking about potential use cases! Collaboration would be amazing, would gladly purchase a team sync account for that feature. But galaxy-brain level would be to allow users to share private anonymous links to solicit input from folks who don’t have the app. Obviously would require a limited editor web app, not trivial but I think many many teams would adopt this!

Very cool app, kudos

4 Likes

+1 to this! Check out yjs/yjs: Peer-to-peer shared types (github.com). They already have a codemirror implementation as a demo, seems like this could be a surprisingly straightforward implementation…

3 Likes

@brush701 That yjs is impressive!

How do you imagine the interaction with others?

This really is a must for commercial use.
While used by a small minority for a long time, since everyone has become familiar with collaborative tools while working from home for the past couple years, it is something no one wants to lose.

As such, we were just going through approvals for software for the next project, and almost unanimously, that landed as a dealbreaker in the Pugh matrix.

1 Like

+1 on this request in a big way.

This would be so so useful in an academic setting…

As an alternative, you can open the vault with VSCode and edit it with others using ‘live share’. It’s pretty cool

1 Like

I have created a plugin for team collaboration and posted about it here: I created a social network on top of Obsidian

1 Like

This still hasn’t been implemented? Sorry, but how do they expect teams to use Obsidian? Most platforms have collaborative editing,…

Collaborative vaults are in the insider build.