Migrating your video meetings to Daily from Zoom

Zoom’s video UI is a popular entry point for live video functionality. But sometimes, developers find themselves outgrowing the features that Zoom has to offer.

In this post, I’ll go through what benefits Daily’s WebRTC API platform can offer over Zoom and some reasons developers consider switching from Zoom to Daily. I’ll then go through some core features you may already be using in Zoom, and describe Daily equivalents.

This time around I’m covering the commonly-used Zoom UI—not their SDK offering, which is a topic for another post.

Why are developers switching to Daily?

Unlike Zoom’s UI, which bills itself as an end-user application, Daily’s primary focus is on enabling developers to build real-time video and audio features into their own apps. Having said that, Daily is in a unique position to enable a smooth transition from a higher-level use case to an embedded tool as needs evolve.

This developer-first approach is at the core of what makes developers turn to Daily when they grow out of Zoom’s feature set. Let’s take a closer look at what makes Daily the preferred choice as a use case matures.

Superior support for evolving use cases

Zoom’s UI is focused on a narrow set of specific use cases. Namely, at the time of this writing, it supports a basic video meeting format in which 1-1000 (with a paid add-on) participants see each other as tiles in a video application. Once developers start to venture outside of those boundaries by requiring more users or wanting a more specialized user interface, they run into challenges.

On the other hand, Daily was designed with versatility and extensibility in mind from the beginning. Our video API supports a wide range of use cases and is built to scale with developers’ needs. Here are some common ways in which developers using Daily leverage our API across all levels of the stack:

  • Daily Prebuilt is a hosted video call UI that can be used directly through Daily’s room URL. No hosting setup required—hop in and chat.
  • Embedding Daily Prebuilt into your application provides the same polished Prebuilt UI, with additional customization options—such as integrating the video experience directly into your own app and ability to handle Daily’s in-call events.
  • To take it a step further, our Prebuilt Integrations API can be used to integrate third-party (or your own!) applications directly into the embedded Prebuilt call frame. For example, you can integrate an interactive whiteboard with just a few lines of code.
  • Should your application outgrow Prebuilt and require a fully custom UI and implementation, our client SDKs give you direct access to participant tracks and other internals. This enables building completely unique user interfaces. For just a small taste of what’s possible, check out our social game or spatialization demos.

Daily Prebuilt is built on top of Daily’s Client SDK for React, which is in turn built Daily’s Client SDK for JavaScript. This means all features of Daily Prebuilt are implemented right on top of API functionality that all developers building with Daily also get access to.

When a specific use-case doesn't require a video component, developers can utilize Daily's client SDKs to build an audio-only experience as well.

If you're interested in facilitating very large experiences with 100,000 live participants, check out our new book: Interactive Live Streaming For Dummies, Daily Special Edition.

More control over call quality optimization

Zoom’s call quality considerations and goals are somewhat different from Daily’s. Whereas Zoom (being an end-user platform) focuses on providing the highest quality for the conventional group call use case, Daily (being a developer platform) prioritizes giving developers the ability to optimize their call settings for their specific needs.

For example, Zoom prefers to keep the maximum resolution over frame rate, so in cases of short congestion periods, Zoom is more likely to freeze/skip frames. Should your requirements not align with these defaults you’re out of luck. On the other hand, Daily’s video API provides granular control over these aspects of a call and more:

  • Automated and manual switching between peer-to-peer and server-routed media.
  • Observability via delivery of real-time qualiy events to application code.
  • Low-level control over media tracks being sent and received, including configurable dynamic simulcast layers for client SDK implementations.
    • Dynamically apply simulcast profiles for end users with great setups versus those with constrained camera, device, and network configurations.
    • Control whether the app favors frame rate over frame resolution, or vice-versa.
    • Control quality based on whether the expected media will contain motion, text, or other detail.

For example, creator or live shopping video streams which have dynamic elements in the video – pan, tilt, or zoom on objects, may prefer consistent high frame rate over consistent high resolution

Part of Zoom’s limitation here is that it does not really use WebRTC APIs. On the web, where it has no choice but to use WebRTC, it uses some components, like data channels and GUM. But it doesn’t really leverage the full power of WebRTC.

In the past, a common line of thinking was that this actually gave a quality advantage to Zoom. However, with modern WebRTC the reality is much more nuanced. In the end, Zoom’s web client is hampered by its proprietary approach to real-time video and audio, and is significantly limited even compared to its own desktop app.

More personalized, dedicated support

Daily’s Support and Solutions Engineering teams are always on-hand to help developers get set up for success with our APIs. We run an active developer community, offer free personalized email and chat support, and are always up for hopping on a video call to talk through any use case. Zoom’s support offerings are more restrictive. For example, at the time of this writing, their basic (free) plan does not offer live chat support at all, and their Pro plan has a minimum spending limit to receive chat and phone support.

Now that we’ve covered some reasons one might consider an alternative to Zoom, let’s look at some of the features you may already be using in your Zoom-UI-based solution and explore how they translate to Daily.

Creating video meetings

The equivalent of a Zoom meeting in Daily is called a room.

You can create Daily rooms through the developer dashboard or our REST API. A range of configuration options are available, including but not limited to:

  • The room name
  • Room privacy (which I’ll also cover below)
  • Whether you want to show a pre-join UI to incoming participants
  • Starting states for the camera and microphone
  • And more!

Creating rooms through Daily’s dashboard is a great option if you want to hop into a quick call or schedule something in advance through Daily’s dashboard frontend.

Screenshot of Daily's video call room creation page
Creating a video call room with Daily's developer dashboard

Creating Daily rooms programmatically

Daily provides a robust REST API that lets developers create rooms on the fly from their own apps. This enables you to build your own UI for room creation, or create rooms on demand when an end user follows a desired flow. Read more in our documentation for the /rooms endpoint.

Video call access control

If you’re using Zoom’s access control features, like meeting pass codes or rooms that users have to sign in to Zoom to join, you’ll want to look into Daily’s meeting tokens and knocking features.

A Daily meeting token is an encrypted, base-64-encoded string, also known as a JSON Web Token (JWT). Each token contains certain claims inside it, which configure the user’s Daily call experience and permissions. Possibly the most important of these is the owner claim.

  • A user with an owner meeting token has full admin access to any room that the token was scoped to.
  • A user with a non-owner meeting token can access the private room but doesn’t have any admin privileges.

Meeting tokens also power Daily’s knocking feature, which lets guests without tokens to request admittance into a meeting if an owner permits it.

Screenshot of an "Allow" and "Deny" dialog box when someone knocks
Option to allow or deny a participant's entry to a room

Meeting tokens can be obtained from Daily’s REST API or self-signed on your own server, making them highly versatile for multiple use cases. You can read more in our meeting token usage guide.

Managing guests in a video call session

Participants who join a Daily Prebuilt video call with an owner meeting token get admin privileges that allow them to manage other participants.

These privileges include:

  • Muting a guest’s microphone
  • Turning off a guest’s camera
  • Removing a guest from the call

Caption: Daily Prebuilt admin controls

For embedded Prebuilt and custom client SDK implementations, you can also update participants during the call with Daily’s updateParticipant() call object instance method. This lets you turn off a participant’s media, eject them, and even set their user permissions programmatically.

Virtual backgrounds

In case you utilize virtual backgrounds in your Zoom-powered calls today, Daily offers virtual background and background blur features built straight into Daily Prebuilt. You can select whether to enable background effects when creating a room:

Toggle switch to enable background effects for a Daily room
Enabling background effects in a Daily Prebuilt video call room

When enabled, users joining a Daily room through Daily Prebuilt will see the option to pick a background image or blur their background:

Call participant choosing their preferred background In a video call
Background selection in Daily Prebuilt

Developers can also set users’ background programmatically right in their application using our updateInputSettings() daily-js method. You can detect when a user has changed their background by using our "input-settings-updated" call object event, which enables you to implement fully custom flows in response to background modification.

This is available to both developers building with an embedded Daily Prebuilt call frame and with our client SDK for JavaScript for a fully custom implementation. To read more, see our blog post on adding custom video backgrounds to a Daily call in a browser app.

Breakout rooms

Like Zoom, Daily Prebuilt comes with breakout rooms functionality built in. You can enable breakout sessions for a room in the Daily developer dashboard:

Screenshot of toggle button to enable breakout rooms for a Daily video call room
Enabling breakout rooms in Daily's developer dashboard

Enabling this feature will allow anyone who joins a Daily video call with an owner meeting token to organize participants into breakout sessions. You can find out more in our engineer Nienke’s Daily Prebuilt breakout rooms demo.

Screenshot of a participant list in Daily Prebuilt, broken up between two breakout rooms and one main room
Two breakout sessions in a Daily Prebuilt call

Language and accessibility

Language configuration

When creating a Daily room either via our REST API or the Daily Dashboard, you’re able to select the language to be used for the room’s video call UI:

Language selection dropdown in Daily's video room configuration
Setting default room language in Daily's developer dashboard

Participants are also able to select their preferred UI language in the call itself:

Settings dialog showing language selection and default emoji skin tone options
User preferences in a Daily Prebuilt session

Developers are also able to access and modify the current language setting programmatically with Daily’s getDailyLang() and setDailyLang() call frame instance methods.

Live captioning and downloadable chat

Daily Prebuilt partners with Deepgram to power live transcription features within any Daily video call. To learn more, take a look at our tutorial on setting up Daily with Deepgram.

Daily Prebuilt’s built-in chat feature also offers the option to download chat logs after the call for users to review in their own time.

Screen reader considerations

Daily Prebuilt is optimized for screen readers. All call controls are reachable via intuitive shortcuts. Additionally, visual icons are hidden, preventing a screen reader from reciting useless SVG data information to the user.

Whiteboarding and other third-party integrations

Zoom provides a proprietary Zoom Whiteboard feature within its video calls. At Daily, we opt to retain laser focus on our expertise and mission: helping bring the best-in-class video and audio APIs to developers.

So we decided not to reinvent the wheel. Instead of designing our own whiteboard, we created the Prebuilt Integrations API, which developers can use to incorporate any whiteboard they wish into a Daily call. For an example, check out our Miro integration tutorial.

Call participant clicking a "Miro" button in Daily Prebuilt, and Miro opening inside the Daily call frame
Opening a Miro whiteboard inside Daily Prebuilt

Additionally, Daily developers aren’t limited to using the Prebuilt Integrations API for just whiteboarding. With Integrations, you can embed any third-party or custom application directly into Daily Prebuilt with just a few lines of code.

Analyzing video call metrics and logs

Daily provides extensive metrics for each call and the participants within it, enabling developers to gain valuable insights into the quality of their user experience. Unlike Zoom, which offers call metrics only on specific paid plans at the time of this writing, Daily’s call metrics are available to all Daily developers as a free core feature.

Metrics and logs are accessible through both our developer dashboard and our REST API, enabling developers to consume call experience data in their preferred format.


In this post, we covered some primary Zoom functionality and how it translates to Daily’s video API. With Daily Prebuilt already incorporating core Zoom features, switching to Daily or even orchestrating a side-by-side test of both platforms can be quite straightforward for the majority of use cases. If you would like any support in exploring Daily, our support team is always here to help.

Never miss a story

Get the latest direct to your inbox.