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.
In this guide, we'll review:
- Building a custom app UI vs. embedding Daily Prebuilt
- Core features of Daily Client SDKs
- The Daily call lifecycle
- Daily terminology
Building a custom app UI vs. embedding Daily Prebuilt
With Daily, there are two main approaches for building real-time video and audio calls:
- Daily Client SDKs, which can be used to built completely custom UIs by interacting with Daily's core APIs.
- 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:
- Custom web
- Mobile, including React Native, Android, iOS
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 Prebuilt | Custom 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 fewer 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.
- Fewer than 1,000 participants where everyone can turn on devices. Read our guide on large real-time calls for more information on specific settings required.
- 100,000 participants with up to 25 speakers: Turn on Interactive Live Streaming settings, detailed in our interactive live streaming guide.
Additional resources:
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:
- Tutorial on live streaming with custom layouts via VCS's baseline. This is a good introductory post!
- Our whole collection of VCS tutorials
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.
- Create a Daily room to join via Daily's REST API.
- Create an instance of a call with a Daily factory method (e.g.
createFrame()
for Daily Prebuilt;createCallObject()
for custom web implementations). - Join the Daily room via the
join()
instance method. - 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.
Additional resources:
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.
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.
Additional resources:
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.
Additional resources:
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
Additional resources:
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.
Additional resources:
- Track subscriptions guide
- Track subscriptions demo app
- Spatial audio and video tutorial series, which includes a demo app with manual track subscriptions
- Browser performance blog post
- Large meetings tutorial series
To learn more about Daily's pricing for more advanced features, refer to our pricing page.