Tessera docs

Launch Tessera

Launch

Realtime

Presence

Show who's online and what they're doing with shared, ephemeral state.

Joining a channel

TypeScript
const room = realtime.channel(`project:${projectId}`) room.presence.track({ name: user.name, cursor: null })room.presence.onChange((people) => showAvatars(people))

Broadcast

Send short-lived events, like cursor positions or typing indicators, that don’t need to be stored.

TypeScript
room.broadcast("cursor", { x, y })room.on("cursor", ({ x, y }, from) => moveCursor(from, x, y))

Throttle cursors

Broadcast cursor positions at most every 50ms to stay well under channel limits.

Was this helpful?

© 2026 Tessera, Inc.

Support

Status

Create a free website with Framer, the website builder loved by startups, designers and agencies.