The CometChat React UI Kit provides pre-built, customizable UI components that developers can use to quickly integrate real-time messaging and calling into any React application.
Check out the Sample App to see the UI Kit in action with a fully functional chat experience including conversations, messaging, calling, and AI features.
- Node.js >= 18
- npm >= 9
- React >= 18
- Register at the CometChat Dashboard to create an account.
- Create a new app to get your App ID, Region, and Auth Key.
npm install @cometchat/chat-uikit-react- Conversations β List and manage one-on-one and group chats
- Messages β Rich message list with reactions, threads, and read receipts
- Calling β Voice and video calling with call logs
- AI Features β AI-powered assistant chat and smart replies
- Theming β CSS custom properties for full visual customization
- Localization β Built-in multi-language support
The project has three test suites: unit tests (Vitest), E2E tests (Playwright), and Storybook.
Unit tests live alongside the source files as *.spec.ts / *.spec.tsx and cover individual components, hooks, and utilities.
Run all unit tests (single pass):
npm testRun with coverage:
npm run test:coverageNo browser or running server is required.
Storybook provides an interactive development environment for building and testing components in isolation.
Start Storybook (dev mode):
npm run storybookOpens at http://localhost:6006.
Build static Storybook:
npm run build-storybookEnd-to-end tests live in sample-app/e2e/ and run against the live sample app. They cover full user journeys: login, messaging, reactions, threads, groups, calls, search, and more.
Create a new CometChat app (or use an existing one dedicated to E2E testing).
- Go to CometChat Dashboard
- Note down: App ID, Region, Auth Key, REST API Key
In the CometChat Dashboard, enable:
- Stickers (also add sticker packs from settings)
- Calling
- Conversation & Advanced Search
- Polls
- Collaborative Document
- Collaborative Whiteboard
In the Dashboard β BYO Agents:
- UID:
ai-agent-e2e - Name:
AI Agent E2E - Role:
@agentic
cd sample-app
cp .env.e2e.example .env.e2eFill in .env.e2e:
COMETCHAT_APP_ID=your-app-id
COMETCHAT_REGION=us
COMETCHAT_AUTH_KEY=your-auth-key
COMETCHAT_API_KEY=your-rest-api-key
E2E_USER_UID=e2e-user-1
AI_AGENT_UID=ai-agent-e2enpx playwright installSeed test data (one-time, idempotent):
cd sample-app
npm run e2e:seedStart dev server (keep running in separate terminal):
npm run devRun all E2E tests (headless):
npm run e2eRun with Playwright UI (interactive):
npm run e2e:uiRun headed (visible browser):
npm run e2e:headedRun in debug mode:
npm run e2e:debugRun a specific test file:
npx playwright test e2e/conversations/conversations.spec.tsTo delete all E2E-created data and reset the app:
npm run e2e:cleanup| Chat | Purpose | Modified by Tests? |
|---|---|---|
| Bob Smith (e2e-user-2) | Static 1:1 β read-only tests | β Never |
| Design Team (e2e-group-1) | Static group β pagination, group details | β Never |
| Strategy (e2e-group-35) | Mutable group β send/edit/delete/thread/reactions | β Yes |
| CI/CD (e2e-group-33) | Incoming messages for message-privately tests | β Never |
| AI Agent E2E | AI assistant chat tests | β Yes |
cd sample-app
cp .env.e2e.example .env.e2e # Fill in credentials
npx playwright install # Install browsers (once)
npm run e2e:seed # Seed test data (once)
npm run dev # Start dev server
npm run e2e # Run testsFor issues running the project or integrating with our UI Kits, consult our documentation or create a support ticket or seek real-time support via the CometChat Dashboard.

