# ProseMirror and Server Side Rendering

**URL:** https://discuss.prosemirror.net/t/prosemirror-and-server-side-rendering/5419
**Category:** Uncategorized
**Created:** [April 10, 2023, 1:31pm UTC](https://discuss.prosemirror.net/t/prosemirror-and-server-side-rendering/5419 "2023-04-10T13:31:29Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![lunar616](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/lunar616/32/2662_2.png) [@lunar616](https://discuss.prosemirror.net/u/lunar616)
#### Post date: [April 10, 2023, 1:31pm UTC](https://discuss.prosemirror.net/t/prosemirror-and-server-side-rendering/5419/1 "2023-04-10T13:31:29Z")

</div>

Hi! I need to transform my JSON structure from ProseMirror to HTML on the NodeJS server. What’s the best way to do it?

Right now I’m using

```auto
DOMSerializer.fromSchema(schema).serializeFragment(Node.fromJSON(schema, json))

```

But It doen’st work for a server because the “prosemirror-model” node module uses `window`

What can I do? Thanks

---

<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: [April 10, 2023, 5:55pm UTC](https://discuss.prosemirror.net/t/prosemirror-and-server-side-rendering/5419/2 "2023-04-10T17:55:55Z")

</div>

Write your own serializer, or use a DOM library like JSDOM to pass a `document` option to `DOMSerializer`.

---

<div class="post-metadata">

### Author: ![lunar616](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/lunar616/32/2662_2.png) [@lunar616](https://discuss.prosemirror.net/u/lunar616)
#### Post date: [April 11, 2023, 8:55am UTC](https://discuss.prosemirror.net/t/prosemirror-and-server-side-rendering/5419/3 "2023-04-11T08:55:27Z")

</div>

I passed another `document` as the second parameter. Thank you so much for such foresight!
