# @hocuspocus/provider-react [](https://www.npmjs.com/package/@hocuspocus/provider-react) [](https://npmcharts.com/compare/tiptap?minimal=true) [](https://www.npmjs.com/package/@hocuspocus/provider-react) [](https://github.com/sponsors/ueberdosis) React bindings for the [Hocuspocus provider](../provider). Wraps the provider in components and hooks so React handles the lifecycle — including StrictMode double-mounts. Built on `useSyncExternalStore`. ## Installation ```bash npm install @hocuspocus/provider @hocuspocus/provider-react yjs ``` Requires React 18 or 19. ## Usage Wrap your collaborative subtree with `HocuspocusProviderWebsocketComponent` (shared WebSocket) and one or more `HocuspocusRoom`s (one per document). Inside the room, hooks give you the provider and its state: ```tsx import { HocuspocusProviderWebsocketComponent, HocuspocusRoom, useHocuspocusProvider, useHocuspocusConnectionStatus, } from "@hocuspocus/provider-react" function Editor() { const provider = useHocuspocusProvider() const status = useHocuspocusConnectionStatus() // wire provider.document / provider.awareness into your editor return