Building a chat app in React Native comes with its own set of complexities. From developing real-time messaging capabilities to designing intuitive front-end components like message bubbles, conversation lists, and user lists, the process can be time-consuming and technically demanding.
Managing state efficiently, handling push notifications, and ensuring smooth UI performance across devices only add to the challenge.
CometChat simplifies this process with its React Native UI kit, by offering pre-built, customizable components such as message composers, chat lists, group conversations, and more. These components are designed to integrate seamlessly into your app, drastically reducing development time while maintaining performance and flexibility. To get a visual preview of how these components look, check out our open-source Figma chat design system.
In this guide, you’ll discover:
A detailed overview of CometChat's React Native chat components
Code examples for quick implementation
Customization tips to match your app’s unique design and user experience.
Installing CometChat’s UI kit for react native : Step-by-step guide
To integrate CometChat's pre-built chat components into your React native application, follow these simple steps.
Step 1: Register on CometChat:
Sign up for a new CometChat account and create an application. Once the app is created, go to the QuickStart or API & Auth Keys section to retrieve your App ID, Auth Key, and Region.
Step 2: Install CometChat UI Kit
Now, install the CometChat react native UI kit along with its core chat SDK. Run the following command to install the UI Kit:
Step 3: Initialize CometChat UI Kit
Import the necessary modules in your code.
After completing this step, your UI Kit will be initialized, and you'll be able to use all the pre-built chat elements in your application.
Core UI components for building a fully functional react native chat app
1. Conversations with Messages

The Conversations with Messages component acts as the central hub of your chat app, displaying recent conversations, whether they’re private chats or group interactions. It gives users an organized view of their ongoing discussions.
It merges several key components of our UI kits, like conversation lists, users, and contacts, into a unified interface, making it easier to manage and present user conversations in one place. Users can quickly access past chats, allowing them to pick up right where they left off.
In addition to its intuitive layout, this component includes built-in features such as unread message counts, timestamps, read receipts, user avatars, and previews of the last sent or received messages. It also supports advanced filtering options, enabling users to sort conversations by type, tags, or other criteria.
To integrate this component, check out the below code
For more information on how to implement and customize the Conversations with Messages component, check out the documentation linked below.
Conversation with messages documentation
2. Contacts, Users, and Groups List
Enabling users to easily discover people and start new conversations is essential for any chat app. The Contacts, Users, and Groups components work together to streamline this process, each offering a unique way to display and interact with lists that initiate new private or group chats.
Contacts: This component offers a complete overview of all available users and groups within the app. It supports private and group chats, includes smart search functionality, and customizable selection modes. Users can effortlessly select one or multiple contacts to start new conversations.
To integrate this component, check out the below code
Users: The Users component focuses specifically on listing all registered users in the app. With a built-in search bar and details like name, avatar, and online/offline status, it ensures users can quickly find and start a chat with any individual.
To integrate this component, check out the below code
Groups: The Groups component displays all active chat groups, making it easy to browse, join, or create new group conversations. Each group listing shows its name, icon, and participant count, giving users insight into group activity before joining.
To integrate this component, check out the below code
For more information on how to implement and customize these components, refer to the official documentation linked below.
3. Messages

The Messages component is the core of your chat application, providing the interface where users exchange messages in both private and group conversations. Powered by CometChat’s API, this component simplifies the integration of real-time messaging, handling the backend complexities for you.
It is made up of several key elements, such as MessageHeader, MessageList, and MessageComposer, to manage both the UI and functionality of messaging seamlessly.
Here’s an overview of the primary components within the Messages component:
MessageHeader: This component displays essential information about the user or group involved in the conversation. Using CometChat SDK’s user or group objects, it shows details like the user’s name, profile picture, or group icon. It also includes a real-time typing indicator, which shows up when participants are typing.
To integrate this component, check out the below code
MessageList: This is the backbone of the Messages component, displaying the entire history of exchanged messages. It handles real-time updates, ensuring new messages are displayed as they are sent or received, without any manual refresh.
To integrate this component, check out the below code
MessageComposer: An independent component responsible for message composition and submission. It supports a wide range of message inputs, including text, images, videos, stickers, gifs and custom inputs. With built-in logic for message input and sending, the composer enhances the user experience by handling all message creation and submission effortlessly.
To integrate this component, check out the below code
For more detailed information on how to use and customize the Messages component, refer to the official documentation linked below
Message component documentation
Message composer documentation
4. Message Information

The Message Information component is essential for displaying key details about individual messages within your chat application. It offers users important insights such as:
Read Receipts: Shows whether a message has been delivered and whether the recipient has viewed it.
To integrate this component, check out the below code
Timestamps: Displays the exact time when each message was sent or received.
To integrate this component, check out the below code
For detailed instructions on how to implement and customize the Message Information component, refer to the official documentation linked below.
Message information documentation
5. Threaded Messages

The Threaded Messages component enables a reply feature similar to Slack, allowing users to respond directly to specific messages. This creates a more organized and focused discussion within your chat app.
Key features of the Threaded Messages component include:
Parent Message Display: The parent message is prominently displayed at the top of the thread, providing context for all associated replies.
Reply Message List: Below the parent message, a message list shows all replies, making it easy for users to follow the conversation flow without losing track of context.
Message Composer: Located at the bottom of the threaded view, the message composer allows users to reply directly within the thread. This layout simplifies participation in ongoing discussions.
To integrate this component, check out the below code
For more detailed guidance on using and customizing the Threaded Messages component, refer to the official documentation linked below.
6. Reactions
The Reactions components allow users to implement a robust reaction system for their chat app. These three interconnected components work together to create a robust reaction system:
Reactions Component: Displays emoji reactions directly within the message bubble, visually representing the emotions tied to a specific message.

To integrate this component, check out the below code
Reaction List Component: Provides a detailed view of all emoji reactions associated with a message. It shows which emojis were used by each user and allows users to remove their own reactions if desired.

To integrate this component, check out the below code
QuickReactions: This component provides a quick and easy way to react to messages by displaying a row of favorite reactions. It also includes a plus icon that, when tapped, opens the

CometChatEmojiKeyboard, giving access to a wider selection of emojis. Users can apply a reaction from either the favorite reactions list or the emoji keyboard with a single tap.
To integrate this component, check out the below code
For more detailed guidance on using and customizing the Reactions components, refer to the official documentation linked below.
7. Group Chat Components
CreateGroup - The CreateGroup component allows users to create groups with different privacy settings, including public, private, and password-protected groups. By offering customizable settings, users can easily tailor the group’s access level, ensuring a more personalized and secure group chat experience.
To integrate this component, check out the below code
GroupMembers - The GroupMembers component displays all participants who have either been added to or invited to join a specific group. This component provides a clear view of active group members.

To integrate this component, check out the below code
AddMembers - The AddMembers component simplifies the process of adding new participants to a group. Group owners or administrators can search for specific users or select from a list of available members. Once a member is added, they are notified to join, increasing engagement and collaboration within the group.

To integrate this component, check out the below code
CometChatBannedMembers - The CometChatBannedMembers component lists users who have been banned from participating in a group, giving group owners or admins visibility into who has been restricted.

To integrate this component, check out the below code
CometChatDetails - The CometChatDetails component provides comprehensive information and settings related to the group, offering key functionalities such as:
Group Information: Displays essential details about the group, including the group name, profile picture, and status.
Group Chat Features: Allows managing group members, such as adding or removing participants and assigning roles or permissions.
Group Actions: Offers administrative control for actions like leaving or deleting the group, ensuring admins have full authority over the group dynamics.
To integrate this component, check out the below code
For more information on how to implement and customize these group chat components, refer to the official documentation linked below:
Groups with Messages Documentation
Join Protected Group Documentation
8. Chat Bubbles
CometChat's UI Kit offers a diverse selection of pre-built message bubbles designed to display various content types, including text, images, files, and more. These customizable chat bubbles enable developers to create a responsive and visually appealing messaging interface that aligns with their app's design.
Here’s an overview of the available message bubbles and their corresponding components:
Text Bubble - Utilize the CometChatTextBubble component to present text messages clearly. This bubble offers customizable styling options to enhance readability and appearance.

To integrate this component, check out the below code
Image Bubble - For sharing images, the CometChatImageBubble component is ideal. It supports multiple image formats and ensures that shared images are displayed attractively within the chat.

To integrate this component, check out the below code
Video Bubble - To seamlessly display video files within the chat, the CometChatVideoBubble component allows users to play shared videos directly without leaving the conversation.

To integrate this component, check out the below code
Form Bubble - The CometChatFormBubble component facilitates the exchange of forms, enabling users to collect information directly within the chat interface.

Meeting Scheduler Bubble - With the ScheduleBubble component, users can schedule meetings or appointments directly within the chat.

Location Bubble - The CometChatLocationBubble component provides a map view for shared locations, displaying pinned addresses or coordinates directly within the chat interface.

Contact Bubble - For sharing contact information, such as phone numbers and email addresses, the CometChatContactBubble component is available.

Card Bubble - Finally, the CometChatCardBubble component presents rich media content, like product details or event invitations, in a structured and visually organized card format.

For further details on implementing and customizing these chat bubbles, refer to the official documentation linked below:
9. Read Receipts (Message Status)
Utilize the CometChatReceipt component to display the status of messages in your chat application. This component indicates various message states, including sending, sent, delivered, read, and error. You can customize the icons for each status to ensure they align with your app’s design.
To integrate this component, check out the below code
For detailed guidance on using the read receipts component, please refer to the official documentation:
10. Message Counts
Incorporate the CometChatBadge component to showcase the unread message count within your app. This visually highlights the number of unread messages, providing users with a quick overview of new activity and enhancing their engagement.
11. Presence Indicators
The CometChatStatusIndicator component effectively indicates a user's online or offline status. It offers various customization options for border color, border size, and background color, making it adaptable to your app’s style and aesthetic.
To integrate this component, check out the below code
For more information on how to implement the presence indicator component, refer to the official documentation:
Presence Indicator Documentation.
12. Voice Recorder
Integrate the CometChatMediaRecorder component to enable users to record and playback audio messages. This component is ideal for chat applications that require audio messaging capabilities, enhancing user interaction within the app.
To integrate this component, check out the below code
For further details on using the voice recorder component, consult the official documentation: Voice Recorder Documentation.
About CometChat

CometChat is a robust communication infrastructure platform that empowers developers to seamlessly integrate real-time chat, voice, and video capabilities into their applications and websites. Designed to enhance user engagement and facilitate in-app communication, CometChat offers a comprehensive suite of chat and calling features tailored for diverse use cases, including marketplaces, telehealth, social networking apps, and enterprise communication solutions.
What We Offer
Real-Time Chat
Our chat solution supports one-on-one and group messaging, featuring capabilities such as message history, typing indicators, read receipts, and file sharing.
Feature-Rich UI Kits and SDKs
Our pre-built UI kits enable developers to quickly create beautiful, responsive chat interfaces embedded with essential business logic.
Voice & Video Calling
CometChat provides high-quality voice and video calling features, allowing users to connect instantly and effectively.
Chat Moderation
We offer advanced moderation tools powered by contextual AI engines to automatically filter and block common violations such as profanity, hate speech, and violence.
Notifications
With CometChat, developers can easily implement push, SMS, and email notifications to keep users informed about new messages, mentions, or other important events.

Aarathy Sundaresan
Content Marketer , CometChat