Open a Space and send one link.
Create it from the dashboard, invite people by link, admit them with roles you control. The chat, the whiteboard, and the files are still there tomorrow.
Chalk gives a team, or a product you are building, a space that outlasts the call. Video, chat, whiteboard, and files stay put between calls — on our infrastructure or on yours.
Built on tools your team already runs
Both doors open onto the same Space and Episode model, so nothing you learn on one side is wasted on the other.
Create it from the dashboard, invite people by link, admit them with roles you control. The chat, the whiteboard, and the files are still there tomorrow.
One component renders the whole surface. When you want a different shape, the same client gives you hooks for participants, chat, media, and capabilities.
import { Chalk } from "@q9labsai/chalk-react";
export function DesignReview() {
return (
<Chalk
space="design-lab"
getAccess={requestGrant}
/>
);
}
// requestGrant asks your server.
// Browser code never mints access.
So Chalk splits the work into two parts. A Space is the durable place, with its members, settings, chat, and whiteboard. An Episode is one bounded run of activity inside it.
A join link names the Space, never a call. Send it once and it keeps working next week.
The first allowed person to arrive opens the Episode. Nobody schedules it, and only one runs at a time.
When an Episode closes, its attendance, recording, and transcript are immutable. History does not get rewritten.
Latency is a design constraint here, not something measured after the fact. These are the three that sit between pressing a button and seeing a face.
These are the budgets Chalk designs against. They are not a published service level agreement.
Media providers and realtime plumbing sit behind contracts instead of running through every component, so the thing you deploy does not become the thing you are stuck with.
Cloudflare is the media adapter today. Running the SFU itself on your own hardware needs an adapter that is not finished.
Twenty-eight shipped capabilities, distilled into four working systems. Built and covered by tests across the hosted product and SDK.
Lifecycle, identity, admission, roles, tenants, keys, and audit are one tested control plane.
Durable sync, bounded recovery, backpressure, and provider-neutral media work across web and native.
Turnkey and composable React surfaces cover entrance, media, chat, recording, and whiteboard.
Signed webhooks, retries, journey tracing, health checks, and telemetry ship with the platform.
Still being qualified: recording capture at scale, hosted transcription end to end, a self-hosted SFU adapter, and enterprise SSO.
Create a Space in about a minute. Bring your own infrastructure whenever you are ready.