<img width="1040" alt="banner-react-native" src="https://github.com/user-attachments/assets/c38f52d8-792f-4b51-a423-f1c5dd9f996b">

# Courier React Native SDK

The Courier React Native SDK provides prebuilt components and TypeScript APIs for adding in-app notifications, push notifications, and notification preferences to your React Native app. It handles authentication, token management, and real-time message delivery across iOS and Android from a single codebase.

Requires iOS 15.0+, Android SDK 23+, and Gradle 8.4+.

## Installation

```bash
npm install @trycourier/courier-react-native
```

Also available via `yarn add @trycourier/courier-react-native`. After installing, run `cd ios && pod install`.

## Quick Start

```jsx
import Courier, { CourierInboxView } from "@trycourier/courier-react-native";

// Sign in (JWT generated by your backend)
await Courier.shared.signIn({
    userId: "user_123",
    accessToken: jwt,
});

// Drop in a prebuilt Inbox view
<CourierInboxView
  onClickInboxMessageAtIndex={(message) => {
    message.read
      ? Courier.shared.unreadMessage({ messageId: message.messageId })
      : Courier.shared.readMessage({ messageId: message.messageId });
  }}
  style={{ flex: 1 }}
/>
```

## Documentation

Full documentation lives at **[courier.com/docs/sdk-libraries/react-native](https://www.courier.com/docs/sdk-libraries/react-native)** — installation, authentication, push setup (iOS `CourierReactNativeDelegate` + Android Firebase decoupling), theming, custom UI, Expo, and the `CourierClient` API reference.

## Feedback

Found a bug or want to request a feature? [Open an issue](https://github.com/trycourier/courier-react-native/issues).
