# Announcing React ProseMirror

**URL:** <https://discuss.prosemirror.net/t/announcing-react-prosemirror/5328>\
**Category:** Show\
**Created:** [March 20, 2023, 4:06pm UTC](https://discuss.prosemirror.net/t/announcing-react-prosemirror/5328 "2023-03-20T16:06:57Z")\
**Posts on this page:** 4\
**Page:** 2

<div class="post-metadata">

**Author:** ![dwzkit](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/dwzkit/32/4077_2.png) [@dwzkit](https://discuss.prosemirror.net/u/dwzkit)\
**Post date:** [August 29, 2023, 11:32am UTC](https://discuss.prosemirror.net/t/announcing-react-prosemirror/5328/21 "2023-08-29T11:32:37Z")

</div>

I am currently using tiptap’s React NodeView. Due to existing performance issues with tiptap’s NodeView and slow progress in resolving them, I have no choice but to explore other solutions that can use React+NodeView. Theoretically, is it possible to combine react-prosemirror and tiptap’s addNodeView? Most of my development has already been implemented on tiptap, so it’s not very feasible to migrate to a new dependency at this point.

---

<div class="post-metadata">

**Author:** ![mellab21](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/mellab21/32/3612_2.png) [@mellab21](https://discuss.prosemirror.net/u/mellab21)\
**Post date:** [September 5, 2023, 10:53am UTC](https://discuss.prosemirror.net/t/announcing-react-prosemirror/5328/22 "2023-09-05T10:53:25Z")

</div>

This looks fantastic, strikes the right balance between taking care of the react-cm integration side of things without adding layers upon layers of abstraction.

---

<div class="post-metadata">

**Author:** ![SMores](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/smores/32/3356_2.png) [@SMores](https://discuss.prosemirror.net/u/SMores)\
**Post date:** [September 15, 2023, 9:27pm UTC](https://discuss.prosemirror.net/t/announcing-react-prosemirror/5328/23 "2023-09-15T21:27:54Z")

</div>

Unfortunately, I wouldn’t expect there to be an easy way to integrate React ProseMirror with TipTap, especially given the changes on the horizon for React ProseMirror (announced [here](https://discuss.prosemirror.net/t/the-future-of-nytimes-react-prosemirror/5855)).

---

<div class="post-metadata">

**Author:** ![dwzkit](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/dwzkit/32/4077_2.png) [@dwzkit](https://discuss.prosemirror.net/u/dwzkit)\
**Post date:** [November 10, 2023, 2:23pm UTC](https://discuss.prosemirror.net/t/announcing-react-prosemirror/5328/24 "2023-11-10T14:23:40Z")

</div>

> [@SMores](#):
>
> > I’ve noticed `react-prosemirror` uses `forceUpdate` and also a `unstable_batchedUpdates` function that I’m not familiar with.
> 
> It does! `unstable_batchedUpdates` is actually the default behavior now in React 18, but for earlier React versions, it was necessary to “opt in” to batching state updates that originate from outside of React-managed code. [This article](https://blog.bitsrc.io/automatic-batching-in-react-18-what-you-should-know-d50141dc096e) explains it in a bit more depth. React Redux actually re-exports this method as `batch`, and [their docs](https://react-redux.js.org/api/batch) have some explanation as well.
> 
> The `forceUpdate` is necessary in our case for the `LayoutGroup` implementation, which relies on the `useLayoutEffect` hook to update a Set stored in a Ref. Since Ref updates don’t result in re-renders, we have to separately force a re-render by bumping some state!

I’ve been trying to use TipTap for almost three months now, and honestly, the development effort during these months has been challenging. As you mentioned, TipTap introduces too many new concepts, and ultimately, it still relies on a thorough understanding and implementation of ProseMirror. The additional layer of abstraction in TipTap has become a burden affecting document performance. I’m considering trying out the react-prosemirror developed by your team instead of depending on TipTap, which seems to have a slower pace of updates and iterations.

[Previous page](https://discuss.prosemirror.net/t/announcing-react-prosemirror/5328.md?page=1)
