Skip to main content
Your choices in the UI Kit Builder are exported as a JSON file. Editing that file is the supported way to change features after export: no component code changes.

Where the settings live

The file has this shape:
src/index.tsx passes builderSettings to <SettingsProvider>, which merges it over the defaults. If you wired the export into an existing Vite app instead, that is src/main.tsx.
Every key is optional. Anything the file leaves out uses its default, so a partial file — or one exported before a newer setting existed — still works. Arrays such as layout.tabs replace the default rather than merging with it.
Inside the app, components read the resolved settings with useSettings() from src/CometChat/config/SettingsContext.
In v6 these settings lived in a TypeScript file, src/CometChat/CometChatSettings.ts, and a few app-level options (showGroupActionMessages, autoOpenFirstItem) were props on CometChatApp. Both are gone in React UI Kit v7: settings are JSON in src/builder/, and there is no CometChatApp. See Integration.

1. Chat Features (chatFeatures)

1.1 Core messaging experience (coreMessagingExperience)

The keys defaulting to false are opt-in, and the distinction matters when you edit this file by hand. They were each added after settings files already existed, so leaving one out means “this file predates the feature” rather than “leave it on” — set it to true to use it.Three of the last four also depend on your plan: pinMessage, saveMessage and pinConversation check the app’s entitlements at runtime, so setting one to true can only reveal a feature your plan already includes. threadSubscription has no such check.

1.2 Deeper user engagement (deeperUserEngagement)

1.3 AI user copilot (aiUserCopilot)

1.4 User management (userManagement)

1.5 Group management (groupManagement)

1.6 Moderator controls (moderatorControls)

1.7 Private messaging within groups (privateMessagingWithinGroups)

1.8 In-app sounds (inAppSounds)


2. Call Features (callFeatures)

2.1 Voice and video calling (voiceAndVideoCalling)

Calling also requires @cometchat/calls-sdk-javascript to be installed and setCallingEnabled(true) in your initialization — see Integration.

3. Layout (layout)


4. Style (style)

Applied by src/builder/useBuilderTheme.ts.

4.1 Theme

4.2 Color

4.3 Typography

The font name is applied as given. A font the browser cannot resolve falls back to the system default, so if you set a font of your own, load it in your app with @font-face or a stylesheet link.

5. No Code (noCode) — ignored by this app

Used only by the CometChat no-code widget. The dashboard may include this section in your export; this app ignores it.

6. Agent (agent) — ignored by this app

Used only by CometChat’s AI agent experiences.

Example

A partial file that turns off calling and forces dark mode. Everything else keeps its default:

Directory Structure

Where this file sits, and what else is yours to edit.

Customizations

Go beyond the settings file.