Get started with Daily

Daily is a developer platform built on WebRTC, which allows developers to build real-time video and audio calls right in the browser. We handle all the hard things about common video call use cases across different platforms for you, with sensible defaults.

Video call interface with four participant videos on desktop and one video displayed large on mobile
Daily Prebuilt desktop and mobile UI

In this guide, we'll review:


Building a custom app UI vs. embedding Daily Prebuilt

With Daily, there are two main approaches for building real-time video and audio calls:

  1. Daily Client SDKs, which can be used to built completely custom UIs by interacting with Daily's core APIs.
  2. Using Daily Prebuilt, an embeddable video chat widget that can be added to any web app with just a few lines of code

We offer custom UI implementations for the following platforms:

Flow chart of which features are available to the different Daily SDKs and libraries
Daily Client SDKs and their available features

The fastest way to get up and running with Daily is to embed the Daily Prebuilt chat interface in your app. In some cases, it can be clear you'll need more control over what your video chat UI looks like. Alternatively, you may want to build a different type of media app, like an audio-only or spatial audio app.

If you aren't sure if you should use Daily Prebuilt or a custom implementation, review this comparison chart on what each option offers.

Comparing Daily Prebuilt and custom implementations

Daily PrebuiltCustom implementation
Ready-to-use video chat interface
Customizable video chat interface *
Direct access to video and audio track data
Ability to create custom video and audio tracks
Built-in bandwidth management
Cross-browser compatibility
Screen sharing🔨
Active speaker and grid layout modes🔨
Text chat🔨
Participant list🔨
Network analytics display🔨
Localized interfaces🔨
Compatible with Electron
Compatible with React Native
Live transcription
Recording
Live streaming
VCS (Video Component System) video layout customization

* Daily Prebuilt has many options for configuring its UI, despite being our "out-of-the-box" solution. Additionally, you can customize the color theme.

🔨 Build these features yourself with Daily's core APIs


Core features

Our APIs are compatible with our Daily Prebuilt, as well as custom implementations. In fact, Daily Prebuilt itself is built with daily-js APIs.

Let's now review some of the core features Daily offers. Many of these features have their own guides, so we'll link out to existing materials where applicable.

Video calling

Daily offers video and audio-only calling via the Daily Prebuilt and custom option for the web, as well as custom options via React Native, Android, and iOS apps.

See our call lifecycle section below for more information on how to get started with building a video or audio-only call.

To jump right to some sample code, check out our React video chat app.

Not interested in React? We've got a whole library of demo apps available on Github!

Large calls

Daily supports a wide range of call sizes. Whether you're live streaming on your own, having a 1-on-1 with your boss, or hosting a conference with thousands of attendees, Daily's got you covered.

Let's review which call sizes require different settings and where to find more information on those settings.

Note: These are general recommendations and not strict call size rules. Contact customer support if you'd like to hear specific recommendations for optimizing your in-app call experience.

  • Small meetings, such as 1-on-1s or team meetings.
  • Calls with less than 50 participants with devices on: Switch over to using track subscriptions or turn on broadcast mode if there are a limited number of speakers.
  • Less than 300 participants where everyone can turn on devices. Read our Scaling large calls guide for more information on specific settings required.
  • 15,000 participants with up to 10 speakers: Turn on Interactive Live Streaming settings, detailed in our Scaling large calls guide.

Recording

Recording (local and server-side) is available to all Daily calls via daily-js and react-native-daily-js, including for Daily Prebuilt and custom implementations. Review our Recording calls guide for more information.

Live streaming

Daily offers live streaming for all calls via daily-js and react-native-daily-js. Review our Live streaming guide for more information.

VCS

VCS is Daily's Video Component System for customizing live streaming and cloud recording layouts and graphics. Daily offers both a baseline composition option, as well as the VCS SDK — the baseline compositions source code that developers can further customize to meet their needs. Read our baseline composition guide and VCS SDK docs for additional information.

Additional resources:

Transcription

Daily offers live transcription for all calls via daily-js and react-native-daily-js. Review our transcription blog post for more information.


Call lifecycle

Regardless of which platform you're building your app for, the life cycle of a Daily call is fairly similar from a code perspective.

  1. Create a Daily room to join via Daily's REST API.
  2. Create an instance of a call with a Daily factory method (e.g. createFrame() for Daily Prebuilt; createCallObject() for custom web implementations).
  3. Join the Daily room via the join() instance method.
  4. Listen for participant and meeting events as needed to update app UI with the ever changing state of a video call, such as participants muting audio or video, leaving or joining the call, and more. We have an extensive list of Daily events you can listen for to ensure your app UI always stays up-to-date.

To see examples of how to build apps, review our demos page, which includes links to Daily blog tutorials and series.


Daily terminology

If you've come this far, you may be looking for more information on more specific topics related to working with Daily APIs. Let's start by reviewing some terminology you're likely to see throughout our docs and blog content.

Daily domains

Daily domains represent your top level object in the Daily API. Once a domain is created and has an account associated with it, you can begin creating Daily rooms to host video calls. Domains can have multiple Daily accounts associated with them. For example, a company using Daily to add video chat to their app may have one domain they’re using with separate accounts for each employee. Your domain can be found in the top-left corner of the Daily dashboard.

Daily dashboard with an arrow pointing to the top left-corner, where the user's domain can be found
Daily domain located in the top-left corner for the dashboard.

Read our blog post comparing domains, rooms, and token and domain configuration page for more information.

Daily rooms

Rooms are used to host Daily video and audio calls and represent the location of the call. Think of going into an office building for a meeting – you need to know which room to enter to be in the same space as the people you're meeting with. Rooms are associated with your Daily domain. Each Daily room will have a unique room URL that participants can join to attend a call.

Read our blog post comparing domains, rooms, and token for more information.

Daily meeting tokens (Room access control)

Meeting tokens are unique tokens call participant can use to join calls. They help control room access and authorize specific call attendees. Additionally, they provide a way of updating session configurations on a per-user basis. Think of them as a way for a call participant to show ID confirming they're allowed to join the call with certain privileges.

Read our blog post comparing domains, rooms, and token for more information.

Daily dashboard

The Daily dashboard is available to all Daily customers. It is a user interface for exploring domain data, like:

  • Specific sessions (i.e. calls)
  • Managing rooms
  • Reviewing call metrics, which can be seen on specific participant pages
  • Managing recordings
  • And for the admins using paid features, billing and account management

Manual track subscriptions

Manual track subscriptions are a feature developers can specifically turn on for their Daily apps. They refer to which call participants are producing and subscribing to media, like video and audio tracks. By default, Daily's libraries handle track subscriptions in calls to help keep the hard parts simple for you.

In cases where developers want more control over track subscriptions (e.g. in large calls that need to be hyper-optimized or mobile web apps), manual track subscriptions provide an excellent way to fine-tune which participants are sending and receiving media tracks.


To learn more about Daily's pricing for more advanced features, refer to our pricing page.

Suggested posts