> ## Documentation Index
> Fetch the complete documentation index at: https://velt.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# CodeMirror CRDT Library

> Release Notes of Changes Affecting Velt CodeMirror Library

### Libraries

* `@veltdev/codemirror-crdt`
* `@veltdev/codemirror-crdt-react`

<Update label="4.5.9-beta.2" description="December 10, 2025">
  ### Improvements

  * \[**Core**]: Improved CRDT store initialization by using `veltInitState` for streamlined internal store creation.
</Update>

<Update label="4.5.9-beta.1" description="December 9, 2025">
  ### Bug Fixes

  * \[**Core**]: Fixed multi-tab synchronization for same user. When the same user edits content in multiple tabs, all tabs now sync correctly.
</Update>

<Update label="4.5.8" description="November 15, 2025">
  ### Improvements

  * \[**Core**]: Released stable version 4.5.8 of CodeMirror CRDT packages.
</Update>

<Update label="4.5.8-beta.2" description="November 11, 2025">
  ### New Features

  * \[**Developer Tools**]: Added `window.VeltCrdtStoreMap` global interface to inspect and monitor CRDT stores during development. Access store values directly in the browser console using `VeltCrdtStoreMap.get(id)` or `VeltCrdtStoreMap.getAll()`. Subscribe to store updates and monitor registration events for debugging collaborative data synchronization. [Learn more](/realtime-collaboration/crdt/setup/core#veltcrdtstoremap)
</Update>

<Update label="4.5.7" description="October 31, 2025">
  ### Bug Fixes

  * \[**Core**]: Fixed `initialContent` not being applied when no server-side data exists. You can now set `initialContent` in CodeMirror CRDT, and it will be used when the document is empty.

  <Tabs>
    <Tab title="React / Next.js">
      ```jsx theme={null}
      const { store, isLoading } = useVeltCodeMirrorCrdtExtension({
        editorId: "UNIQUE_EDITOR_ID",
        initialContent: "body { background-color: lightgrey; }",
      });
      ```
    </Tab>

    <Tab title="Other Frameworks">
      ```javascript theme={null}
      const result = veltClient.getVeltCodeMirrorCrdtExtension({
        editorId: "UNIQUE_EDITOR_ID",
        initialContent: "body { background-color: lightgrey; }",
      });
      ```
    </Tab>
  </Tabs>
</Update>

<Update label="4.5.0-beta.3" description="September 3, 2025">
  ### Improvements

  * \[**Core**]: Improved the API signatures and naming to improve developer experience.
</Update>

<Update label="4.5.0-beta.2" description="September 2, 2025">
  ### Improvements

  * \[**Core**]: Released a purpose built react package (`@veltdev/codemirror-crdt-react`) that reduced the implementation code by 95%.
</Update>

<Update label="4.5.0-beta.4" description="August 28, 2025">
  ### Bug Fixes

  * \[**Core**]: Fixed an issue where last keystroke was not synced in some cases.
</Update>

<Update label="4.5.0-beta.3" description="August 12, 2025">
  ### Improvements

  * \[**Awareness**]: Adding support for awareness enabling features like live cursors and selection highlighting.
</Update>

<Update label="4.5.0-beta.1" description="August 11, 2025">
  ### New Features

  * \[**Core**]: Introduced purpose built CRDT library for CodeMirror Editor to enable multiplayer editing. This is based on the [Yjs](https://docs.yjs.dev/) library. [Learn more](/realtime-collaboration/crdt/setup/codemirror).
</Update>
