# How Edit/Save works in ProseMirror?

**URL:** <https://discuss.prosemirror.net/t/how-edit-save-works-in-prosemirror/5664>\
**Category:** Uncategorized\
**Created:** [July 6, 2023, 12:35am UTC](https://discuss.prosemirror.net/t/how-edit-save-works-in-prosemirror/5664 "2023-07-06T00:35:19Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![degel123](https://discuss.prosemirror.net/letter_avatar_proxy/v4/letter/d/9de053/32.png) [@degel123](https://discuss.prosemirror.net/u/degel123)\
**Post date:** [July 6, 2023, 12:35am UTC](https://discuss.prosemirror.net/t/how-edit-save-works-in-prosemirror/5664/1 "2023-07-06T00:35:19Z")

</div>

Hi, maybe it’s a trivial question but I want to use ProseMirror editor on my website and I’m wondering how Edit/Save functionality works here. I mean that the user can create a post using this editor, but what should happen after clicking “Save” (or “Post”)? Which part of the editor should be saved to the database and what should happen after clicking “Edit”, i.e. how to go back to editor view from the information saved into database?

---

<div class="post-metadata">

**Author:** ![marijn](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/marijn/32/15_2.png) [@marijn](https://discuss.prosemirror.net/u/marijn)\
**Post date:** [July 6, 2023, 6:48am UTC](https://discuss.prosemirror.net/t/how-edit-save-works-in-prosemirror/5664/2 "2023-07-06T06:48:30Z")

</div>

Depending on what you want in your database, you can store `state.doc.toJSON()` or use `DOMSerializer` and then `innerHTML` to convert the document to HTML.

---

<div class="post-metadata">

**Author:** ![nbaschez](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/nbaschez/32/3216_2.png) [@nbaschez](https://discuss.prosemirror.net/u/nbaschez)\
**Post date:** [July 10, 2023, 2:40pm UTC](https://discuss.prosemirror.net/t/how-edit-save-works-in-prosemirror/5664/3 "2023-07-10T14:40:22Z")

</div>

Also, if you’re using YJS and y-prosemirror (handy for offline editing, real-time collaboration, version history, etc) you can persist a ydoc binary using `const ydocUpdate = Y.encodeStateAsUpdate(ydoc)` and you can restore it using `Y.applyUpdate(ydoc, ydocUpdate)`.
