Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Have a way to collaborate #58

Open
smitt04 opened this issue Apr 18, 2024 · 7 comments
Open

[Feature] Have a way to collaborate #58

smitt04 opened this issue Apr 18, 2024 · 7 comments

Comments

@smitt04
Copy link

smitt04 commented Apr 18, 2024

Since this only saves data in the browser there is no way to have 2 people working on the same diagram at the same time. But as a workaround it would be nice if I could save the diagram to a file in our repo, then when someone wants to edit / view it they can run a docker image locally that would read the file and load the diagram into the local instance. They would still need to export the file afterwords and commit unless there could be a feature to only read/write to a file instead of indexedDB.

@1ilit
Copy link
Member

1ilit commented Apr 23, 2024

Hey @smitt04, thanks for the suggestion

This is something I've been thinking about since the very beginning of development.

For now exporting the diagram as a json or ddb and manually sharing and importing is the only way to go about it.

For the future we can maybe add integration with Github like draw.io

@revolunet
Copy link

collaboration would be great :)

sharing some related content : https://blog.excalidraw.com/building-excalidraw-p2p-collaboration-feature

@1ilit
Copy link
Member

1ilit commented May 19, 2024

Hey @revolunet, thanks for sharing

Actually there is a really messy implementation for some of the real time collaboration logic on the deprecated branch

The reason i didn't go through with it is because i couldn't think of a seamless way for 2 clients to communicate, since the diagrams get saved in the browser

E.g. if client 1 and client 2 join a room, edit the diagram, and client 1 disconnects and then connects back there is no way to merge client 2's changes without them having to share a new link

Any ideas about this would help, i might be missing something

@TBG-FR
Copy link

TBG-FR commented Oct 10, 2024

AFAIK, Excalidraw stores data in browser too, and to collaborate you need start an online session (which then stores data on its own I guess, and does the websockets/communicating things evoked in the blog post shared by @revolunet ), could be interesting to dive a bit deeper in their code

@1ilit
Copy link
Member

1ilit commented Oct 10, 2024

@TBG-FR yep, back then I was trying to emulate google docs with proper file management and all that. After implementing sharing with gists even the problem of clients disconnecting can be resolved. All that's pretty much left is session management which was somewhat implemented on the deprecated branch. It's totally doable just needs the time investment

@TBG-FR
Copy link

TBG-FR commented Oct 10, 2024

Alright, glad to hear that ! IMO that's really a game changer feature, as many people will choose the product based on the collaborative capabilities. Do you have a sort of roadmap somewhere or do you use issues/PRs for that ? May I ask you if you are more in need of time investment or fundings ?

@1ilit
Copy link
Member

1ilit commented Oct 31, 2024

@TBG-FR sorry I didn't see your comment.

Do you have a sort of roadmap somewhere or do you use issues/PRs for that ?

I don't have a set road map I mostly go by issues, prs or what people request

May I ask you if you are more in need of time investment or fundings ?

I would need both. I usually find a free solution for everything but don't seem to find a reliable long term free hosting solution for a server. The little server we have for forms is on render's free plan and it can take up to a minute to make a single request. So we'll need some investment into hosting. Regarding time, I'm running on a pretty tight schedule but it's less of a concern I can always squeeze something in

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants