# 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](https://reactnative.dev/architecture/landing-page) (Fabric and TurboModules). You can read more about it [here](/chat/docs/sdk/react-native/v8/guides/new-architecture).

- Pick the correct package (`stream-chat-react-native` vs `stream-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-chat` separately; 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](/chat/docs/sdk/react-native/v8/basics/upgrading-from-v7/) for details on breaking changes.

## Where to get started?

If you are new to the SDK, start with the [**React Native SDK**](https://getstream.io/chat/react-native-chat/tutorial/) tutorial.

## Architecture

Stream Chat React Native SDK primarily uses the [Stream Chat client](https://github.com/GetStream/stream-chat-js) to connect to and communicate with the Stream API.

The full [JavaScript client docs](/chat/docs/javascript/) should be referenced for detailed information on directly using the client.

<admonition type="note">

Do not install the `stream-chat` dependency externally. The SDK includes it as a development dependency.

</admonition>

The SDK ships as two packages:

- `stream-chat-react-native` for **React Native CLI** applications.
- `stream-chat-expo` for **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](https://semver.org/) 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](/chat/docs/sdk/react/) for Web.

## Sample Apps

Sample apps live in the [`examples`](https://github.com/GetStream/stream-chat-react-native/v8/tree/develop/examples) directory of the main repository. Additional clones (e.g., Slack, iMessage) are in [our repository](https://github.com/GetStream/react-native-samples).


---

This page was last updated at 2026-04-17T14:21:09.761Z.

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/sdk/react-native/v8/](https://getstream.io/chat/docs/sdk/react-native/v8/).