Skip to main content
Daily React is a helper library for building custom Daily calls in React. It does not replace daily-js: it sits on top of it and exposes the same call object, methods, and events through React hooks and components, so you can work with a call the way you already work with React state.

Why use it

Building a custom call UI on raw daily-js means wiring event listeners by hand, mirroring call state into local component state, attaching media tracks to DOM nodes, and tearing all of that down on unmount. Daily React does that work for you:
  • Reactive state. Hooks like useParticipantIds and useMeetingState re-render your component when the relevant call state changes. No manual setState inside event handlers.
  • Granular re-renders. Hooks read from an internal store and subscribe only to the slice you ask for, so a participant muting their mic does not re-render every tile in your call.
  • Media components. DailyVideo and DailyAudio handle track attachment, autoplay quirks, and speaker management that are tedious to get right by hand.
  • Automatic cleanup. Event subscriptions registered through hooks are torn down when the component unmounts.
Daily React powers Daily Prebuilt. If you have ever embedded Prebuilt, you have already shipped Daily React in production.

When to use it (and when not to)

Daily React is for call object mode: building your own call interface in React with full control over the UI.
Building a voice or multimodal AI agent? Reach for the Pipecat React SDK (@pipecat-ai/client-react) instead. It is purpose-built for real-time AI agents and uses Daily as its transport, so you get the agent tooling out of the box rather than building it on Daily React yourself.

How it fits together

Daily React manages its internal state with Jotai. Both @daily-co/daily-js and jotai are peer dependencies, so you install all three packages and they share a single version. See Installation for the details.

Prerequisites

  • A Daily account and a room URL. Create a free account at daily.co and create a room to get a URL like https://your-domain.daily.co/room-name.
  • A React 18+ app. Daily React’s hooks run on the client; for server-rendered frameworks like Next.js, see the Installation notes.
  • Familiarity with the daily-js call object, participants, and tracks concepts. The guides here link back to them rather than repeating them.

Next steps

Quickstart

Build a working call in a few minutes.

Installation

Install and set up the provider.

Thinking in Daily React

The mental model behind the hooks.

API reference

The full API for every hook and component.