Calls for your team, and inside your product.

Start a call and share one link that keeps working next week. Or render the same call in your own app with a few lines of React. Chalk is open source.

Start a call
Building it into your product?
$ pnpm add @q9labsai/chalk-react
Read the docs →
Q9 team08:41
4
Nora Patel
Akash Rao
Sofia Lind
Hasan (You)

A call keeps its link. Send it once and it still works next week. Each time people meet is a session: it starts when the first person joins and ends when the last one leaves.

  • The same link every timeNo new invite for the weekly call, and no date in the link.
  • The first person in starts itNobody schedules it, and only one session runs at a time.
  • Every session stays findableThe call keeps its history: when, how long, and who came.
Q9 teamchalkmeet.com/abc-defg-hij
Join call
Live nowNora, Akash and Sofia are in the call
Past sessions

After the call, it’s all there.

Open any past session to watch the recording, search the transcript and see who came and when.

Recording

Turn it on in the call, and it’s saved to the session.

Transcript

Search it, and jump to the moment someone said it.

Friday2 matches

Who came

Everyone who joined, once each, from when they first came to when they last left.

  • Hasan Shoaib10:02 to 10:48until the end
  • Nora Patel10:04 to 10:48until the end
  • Akash Rao10:03 to 10:48until the end
  • Sofia Lind10:05 to 10:41
  • Malik Haddad10:09 to 10:48until the end

The transcript is made from the recording, so a session without a recording has neither.

Press Join. You’re in.

No installs and no waiting room. The way in is designed to feel instant, so the first thing anyone sees is a face.

  • <1sClick to first frame, at p50. Under 2.5 s at p95.
  • <100msMute, hands and chat, at p95 in the same region.
  • <200msCamera to screen, glass to glass in the same region.

These are the budgets Chalk is designed against. They aren’t a service level agreement.

chalkmeet.com/abc-defg-hij
Ready to join?Ari
0.00 sPress Join to try it

Put the call in your product.

<Chalk /> renders the whole call: the entrance, the stage, chat, the board and the controls. Your server creates each person’s access, so you decide who gets in.

TSX
import { Chalk } from "@q9labsai/chalk-react";

export function TeamCall() {
  return (
    <Chalk
      space="q9-team"
      getAccess={getAccess}
    />
  );
}
Lumen TutoringClassesStudentsSchedule

Algebra 7BToday, 16:00

Algebra 7B08:41
4
Lena Vogel
Ari (You)
Omar Farouk
June Park

Open source. Run it where you like.

Chalk is MIT licensed. Use chalkmeet.com, or run the API, the sync service and Postgres on your own machines.

Q9Labs/chalkgit clone https://github.com/Q9Labs/chalk
View on GitHub
  • Your machinesThe API, the sync service and Postgres run where you deploy them, with the same deployment we run ourselves.
  • Standard PostgresNo vendor-only database features. Redis only makes things faster and never holds the truth.
  • Your keysAccess is created on your server and passed through the browser untouched.

Cloudflare carries the media today. Running the media server on your own hardware needs an adapter that isn’t finished yet.

Built with TypeScript, React and React Native, Go and Postgres.

Your next call is one link away.

Start a call, send the link, and it stays yours. Nothing to install and nothing to schedule.

Start a call