Overview
Built on the Stream Chat API, the Stream Chat React Native SDK provides ready-made, customizable UI components for React Native CLI and Expo so you can ship chat fast with minimal setup. The libraries support:
- Rich media messages
- Reactions
- Threads and quoted replies
- Text input commands (ex: Giphy, emojis and @mentions)
- Image and file uploads
- Video playback
- Audio recording and voice messages
- Read state and typing indicators
- Channel and message lists
- Push notifications (APN or Firebase)
- Offline storage with SQLite
- Polls and voting
- Message reminders
- Draft messages
- AI-powered features
- and a lot more.
Our SDK fully supports the React Native new architecture (Fabric and TurboModules). You can read more about it here.
- Pick the correct package (
stream-chat-react-nativevsstream-chat-expo) based on your app runtime. - Start with the tutorial to validate core flows before deep customization.
- Treat the JavaScript client docs as the source of truth for low-level client behavior.
- Keep semver expectations in mind: minor updates can include UI changes; pin if you need visual stability.
- Avoid installing
stream-chatseparately; rely on the SDK’s bundled dependency.
What's New in v8
Version 8 brings significant improvements to the SDK:
- New MessageComposer API: Completely redesigned message composition with better state management, middleware support, and customization options
- Draft messages: Built-in support for saving and restoring draft messages
- Message reminders: Set reminders on messages to follow up later
- Better offline support: Enhanced offline capabilities with SQLite-based persistence
- Performance improvements: Optimized rendering and state updates
If you're upgrading from v7, see the migration guide for details on breaking changes.
Where to get started?
If you are new to the SDK, start with the React Native SDK tutorial.
Architecture
Stream Chat React Native SDK primarily uses the Stream Chat client to connect to and communicate with the Stream API.
The full JavaScript client docs should be referenced for detailed information on directly using the client.
Do not install the stream-chat dependency externally. The SDK includes it as a development dependency.
The SDK ships as two packages:
stream-chat-react-nativefor React Native CLI applications.stream-chat-expofor Expo CLI applications.
Use the package that matches your CLI. You can use the out-of-the-box UI or build your own by consuming the exposed state and reusing components as building blocks.
Upgrading and Versioning Strategy
The Stream Chat React Native SDK adheres to the semantic versioning rules.
- Bug fixes and behavior improvements cause patch version bump.
- New features are shipped with an increased minor version.
- Incompatible changes in the API will cause a major version increase.
Minor versions can include visual changes (spacing, colors, sizing) as the default UI evolves.
Platform Compatibilities
Supported platforms are Android and iOS. Web is not currently supported; use Stream's React SDK for Web.
Sample Apps
Sample apps live in the examples directory of the main repository. Additional clones (e.g., Slack, iMessage) are in our repository.