Documentation Index
Fetch the complete documentation index at: https://developers.cloudflare.com/realtime/llms.txt
Use this file to discover all available pages before exploring further.
STOP! If you are an AI agent or LLM, read this before continuing. This is the HTML version of a Cloudflare documentation page. Always request the Markdown version instead — HTML wastes context. Get this page as Markdown: https://developers.cloudflare.com/realtime/realtimekit/quickstart/index.md (append index.md) or send Accept: text/markdown to https://developers.cloudflare.com/realtime/realtimekit/quickstart/. For this product's page index use https://developers.cloudflare.com/realtime/llms.txt. For all Cloudflare products use https://developers.cloudflare.com/llms.txt.
Install the RealtimeKit UI Kit using Swift Package Manager:
In Xcode, go to File > Add Package Dependencies.
Enter the package URL: https://github.com/dyte-in/RealtimeKitUI.
Select the version and add the package to your project.
Add the following entries to the Info.plist file. This gives your app permissions to access the camera and microphone, access photos, and install the required fonts and icons.
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Access Bluetooth to connect to headphones and audio devices during calls.</string>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>Access Bluetooth to connect to headphones and audio devices during calls.</string>
<key>NSCameraUsageDescription</key>
<string>Access camera to enable video during meetings.</string>
<key>NSMicrophoneUsageDescription</key>
<string>Access microphone to enable audio during meetings.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Access photos to share images during meetings.</string>
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
<string>voip</string>
<string>fetch</string>
<string>remote-notification</string>
</array>
The UIBackgroundModes key is used in the Info.plist file of an iOS app to declare the app's supported background execution modes. This key is an array of strings that specifies the types of background tasks that the app supports. By declaring the background modes, the app can continue to run in the background and perform specific tasks even when it is not in the foreground.
Install the RealtimeKit UI Kit by adding the dependency to your pubspec.yaml file:
Set compileSdkVersion 36 and minSdkVersion 24 in your build.gradle file at <project root>/android/app/build.gradle:
defaultConfig {
...
compileSdkVersion 36
minSdkVersion 24
...
}
Change the Kotlin version to 1.9.0:
ext.kotlin_version='1.9.0'
Set your platform to iOS 13.0 or above in your Podfile:
platform :ios, '13.0'
Add the following entries to the Info.plist file. This gives your app permissions to access the camera and microphone, access photos, and install the required fonts and icons.
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Access Bluetooth to connect to headphones and audio devices during calls.</string>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>Access Bluetooth to connect to headphones and audio devices during calls.</string>
<key>NSCameraUsageDescription</key>
<string>Access camera to enable video during meetings.</string>
<key>NSMicrophoneUsageDescription</key>
<string>Access microphone to enable audio during meetings.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Access photos to share images during meetings.</string>
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
<string>voip</string>
<string>fetch</string>
<string>remote-notification</string>
</array>
Optional: If you are allowing users to download attachments in chat, add the following permissions to your Info.plist:
--data '{"title": "My First Cloudflare RealtimeKit meeting"}'
Add Participants
Create a Preset
Presets define what permissions a user should have. Learn more in the Concepts guide.
You can create new presets using the Presets API or via the RealtimeKit dashboard ↗.
Note: Skip this step if you created the app in the dashboard—default presets are already set up for you.
Note: Presets can be reused across multiple meetings. Define a role (for example, admin or viewer) once and apply it to participants in any number of meetings.
Add a Participant
A participant is added to a meeting using the Meeting ID created above and selecting a Preset Name from the available options.
The response includes an authToken which the Client SDK uses to add this participant to the meeting room.
Replace <auth-token> with the authToken obtained from the previous step.
Run the application and navigate to the meeting page to see the RealtimeKit Client SDK in action.
Terminal window
npmrundev
Optional: If you are using our ready-made template, run the following command to start the application:
Terminal window
npmi-gvite&&npmrundev
Open the app in your browser. To join the meeting, append your auth token to the preview URL:
Terminal window
http://localhost:5173?authToken=<auth_token>
Load the RTKComponentsModule into your app module. This is typically the app.module.ts file.
This allows you to use the UI components in your component HTML files.
TypeScript
import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {RTKComponentsModule} from '@cloudflare/realtimekit-angular';
import {AppComponent} from './app.component';
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule,RTKComponentsModule],
providers: [],
bootstrap: [AppComponent],
})
exportclassAppModule{};
Optional: If you are using TypeScript, set allowSyntheticDefaultImports as true in your tsconfig.json.
TypeScript
{
"compilerOptions": {
"allowSyntheticDefaultImports":true
}
}
Load the RtkMeeting component to your template file (component.html).
<rtk-meeting#myid></rtk-meeting>
Initialise the Meeting
TypeScript
classAppComponent{
title='MyProject';
@ViewChild('myid') meetingComponent:RtkMeeting;
rtkMeeting:RealtimeKitClient;
asyncngAfterViewInit(){
constmeeting=awaitRealtimeKitClient.init({
authToken:'<auth-token>',
});
meeting.join();
this.rtkMeeting=meeting;
if (this.meetingComponent) this.meetingComponent.meeting=meeting;
}
}
Replace <auth-token> with the authToken obtained from the previous step.
Run the application and navigate to the meeting page to see the RealtimeKit Client SDK in action.
Terminal window
npmrundev
Optional: If you are using our ready-made template, run the following command to start the application:
Terminal window
npmi-gvite&&npmrundev
Open the app in your browser. To join the meeting, append your auth token to the preview URL: