# Offline, Peer-to-Peer, Collaborative Editing using Yjs

**URL:** https://discuss.prosemirror.net/t/offline-peer-to-peer-collaborative-editing-using-yjs/2488
**Category:** Show
**Created:** [January 27, 2020, 8:11pm UTC](https://discuss.prosemirror.net/t/offline-peer-to-peer-collaborative-editing-using-yjs/2488 "2020-01-27T20:11:51Z")
**Posts on this page:** 1
**Showing post:** 9

<div class="post-metadata">

### Author: ![dmonad](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/dmonad/32/882_2.png) [@dmonad](https://discuss.prosemirror.net/u/dmonad)
#### Post date: [January 28, 2020, 8:06pm UTC](https://discuss.prosemirror.net/t/offline-peer-to-peer-collaborative-editing-using-yjs/2488/9 "2020-01-28T20:06:01Z")

</div>

Thanks @saranrapjs for sharing that use-case. That is a good reason to preserve transaction steps.

> [@marijn](#):
>
> Comparing structure-sharing trees should actually be doable really efficiently (since you can skip all the shared nodes right away).

I have been looking at some of the projects that compute diffs between states and they didn’t seem suitable. You are right that this should be easily doable by leveraging object identity. I will look into this tomorrow.

---

_[View the full topic](https://discuss.prosemirror.net/t/offline-peer-to-peer-collaborative-editing-using-yjs/2488)._
