Shared collaborative state for Redux

Liveblocks empowers developers to embed performant collaborative features to any product in just days.

Companies of all sizes and industries use Liveblocks

Presence with Sync -
Show who's in a document

Liveblocks Sync lets you add live avatars, cursors, and other presence to your product.

import { createStore } from "redux";import { createClient } from "@liveblocks/client";import { enhancer } from "@liveblocks/redux";
const client = createClient({ /* ... */ });
const initialState = { cursor: { x: 0, y: 0 }}
const store = createStore( (state = initialState, action) => { /* ... */ }, enhancer({ client, // cursor is shared to other users in the room presenceMapping: { cursor: true } }));
// Get others people in the roomconst others = store.getState().liveblocks.others;
// And get their cursorsconst othersCursors = others .map(user => user.presence?.cursor);

Sync -
The sync engine for the agentic web

Liveblocks Sync is the sync engine for the agentic web—conflict-free collaborative editing for people and AI agents, with realtime presence, persistence, and ready-made integrations.

import { createStore } from "redux";import { createClient } from "@liveblocks/client";import { enhancer } from "@liveblocks/redux";
const client = createClient({ /* ... */ });
const initialState = { scientist: { firstName: "Ada", lastName: "Lovelace" }}
export const store = createStore( (state = initialState, action) => { /* ... */ }, // Enhance your store and controls which parts // of your states are synced and persisted enhancer({ client, // scientist is synced across clients storageMapping: { scientist: true } }));

Turn your product into the space where people and AI collaborate