Skip to content
Homeostate

TanStack Store

@homeostate/store-tanstack

Keep a TanStack Store in sync with a Yjs, Loro or Automerge document.

@homeostate/store-tanstack@0.2.2npmSource

TanStack Store adapter for @homeostate/core. It keeps a TanStack Store in sync with a CRDT backend such as Yjs, Loro or Automerge.

Install

npm install @homeostate/core @homeostate/store-tanstack @tanstack/store @homeostate/crdt-yjs yjs

@tanstack/store 0.11 is a peer dependency.

Usage

import * as Y from "yjs";
import { createStore } from "@tanstack/store";
import { createSyncEngine } from "@homeostate/core";
import { createYjsBackend } from "@homeostate/crdt-yjs";
import { createTanStackStoreAdapter } from "@homeostate/store-tanstack";

const store = createStore({ count: 0 });

const engine = createSyncEngine(
  createYjsBackend(new Y.Doc(), "shared"),
  createTanStackStoreAdapter(store),
);
engine.connect();

store.setState((state) => ({ ...state, count: state.count + 1 }));

Stores created with or without an actions factory both work; only the state is synced.