Skip to main content

What is CollabKit?

CollabKit is a real-time collaboration platform that helps you build multiplayer experiences. It provides a server and a client SDK (for the browser) that handle the hard parts of real-time collaboration so you can focus on the product.

Quickstart

Get up and running in under 5 minutes.

Client SDK

Explore the browser SDK modules.

API Reference

Full HTTP API documentation.

Guides

Practical tutorials and examples.

Key Features

FeatureDescription
Users ManagementManage participants, track online/offline status in real-time.
Follow UsersLet users follow each other’s cursors and actions in real-time.
PresenceShare ephemeral state (cursors, selections, scroll positions) with 50ms throttling.
StoresSchema-driven, type-safe KV stores synced across all connected clients in real time.
Version ControlTrack changes per user and roll back to previous versions.
CRDT (Yjs)Optional Yjs provider for conflict-free collaborative editing.
CommentsThreaded comments with replies, reactions, and user tagging.
BroadcastsSend custom events to all participants or specific users. Fire-and-forget messaging.
File StorageUpload, list, and serve files scoped to rooms via R2 object storage.
WebhooksHTTP callbacks for server-side events (user joined, session started, etc.).
WorkflowsRun custom JavaScript in response to events via Cloudflare Workers.

Architecture

CollabKit is split into three npm packages:
@collab-kit/client   -- Browser SDK (WebSocket + HTTP)
@collab-kit/utils    -- Shared types, enums, and schema utilities
@collab-kit/server   -- Cloudflare Worker (Durable Objects, D1, R2, KV)
The client connects to the server over a WebSocket for real-time features (presence, stores, comments, broadcasts, CRDT) and uses HTTP for file storage and user creation. The utils package provides shared TypeScript types and the defineStores() schema utility used by both client and server.

Packages

@collab-kit/client

Browser SDK for connecting to rooms and using collaboration features.

@collab-kit/utils

Shared types, enums, and the defineStores() schema utility.

@collab-kit/server

Cloudflare Worker server. Self-hosted or managed.

Next Steps

1

Sign up and get your API key

Create an account on the dashboard and find your API key in Settings.
2

Create a room and add users

Use the REST API to create a room and create users to get a JWT token. Alternatively, you can also do this through the dashboard.
3

Install the SDK and connect

Install @collab-kit/client, pass the JWT token, and call connect() + join().
4

Build collaboration features

Use presence, stores, comments, and more.