> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/ably/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# About Chat

Ably Chat is a product dedicated to making it quick and easy to build chat functionality into new and existing applications. Use Ably Chat to build things such as a 1:1 customer support feature, or add a chat component to a livestreaming platform that serves hundreds of thousands of users.

The Chat SDK contains a set of purpose-built APIs that abstract away the complexities involved in how you would architect chat features. It utilizes Ably's platform to benefit from all of the same performance guarantees and scaling potential.

## Getting Started

Choose your platform to get started:

<Tiles>
  {[
    {
      title: 'JavaScript / TypeScript',
      description: 'Build chat applications using JavaScript or TypeScript',
      image: 'icon-tech-javascript',
      link: '/docs/chat/getting-started/javascript',
    },
    {
      title: 'React',
      description: 'Use React hooks for seamless chat integration',
      image: 'icon-tech-react',
      link: '/docs/chat/getting-started/react',
    },
    {
      title: 'React Native',
      description: 'Build mobile chat with React Native',
      image: 'icon-tech-react-native',
      link: '/docs/chat/getting-started/react-native',
    },
    {
      title: 'Android / Kotlin',
      description: 'Native Android chat with Kotlin and Jetpack Compose',
      image: 'icon-tech-android',
      link: '/docs/chat/getting-started/android',
    },
    {
      title: 'Swift / iOS',
      description: 'Build chat apps for iOS with Swift',
      image: 'icon-tech-swift',
      link: '/docs/chat/getting-started/swift',
    },
    ]}
</Tiles>

## Chat Features

Ably Chat provides the following key features:

### Rooms and Messages

[Rooms](/docs/chat/rooms) are used to organize and separate your users and chat messages into 'chat rooms'. They are the entry object into chat and provide access to all other chat features, such as messages, online status, and typing indicators.

Each room can represent a 1:1 chat between an agent and a customer, a private message between two users in a chat application, a group conversation, or the chat section of a livestream with thousands of users.

[Messages](/docs/chat/rooms/messages) enable users to communicate with one another in the room. Messages sent by users are received by all those who have subscribed to receive them within that room.

### Presence

[Presence](/docs/chat/rooms/presence) enables you to display who is currently online in a chat room. Users can also set additional information about their profile such as a status message, profile picture, display name, and more.

### Typing Indicators

[Typing indicators](/docs/chat/rooms/typing-indicators) let users see when others start and stop typing a message. They enable you to display a message such as *John is typing...* or when too many users are typing, something like *Multiple people are typing...* or *12 people are typing...*.

### Room Reactions

[Room reactions](/docs/chat/rooms/reactions) enable users to broadcast ephemeral sentiments using emojis, such as 👍 or ❤. Room reactions are used to broadcast a general sentiment to the entire room rather than reacting to a single message. A common use case is sports fans all sending a heart when their team scores.

### Room Occupancy

[Room occupancy](/docs/chat/rooms/occupancy) enables you to display the number of users currently online in a room. This feature can be used to display user counts to highlight popular or trending chat rooms.

### React UI Kit

[React UI Kit](/docs/chat/react/ui-kit) provides pre-built, customizable React components that make it even faster to add chat functionality to your applications. These components handle the presentation layer and user interactions, allowing you to focus on your application logic rather than building chat UI from scratch.

The UI Kit includes components for message lists, input fields, user avatars, typing indicators, and more. They're designed to be flexible and themeable to match your application's design system.

### React Hooks

[React Hooks](/docs/chat/react/hooks) provide a set of custom hooks that integrate seamlessly with React applications. These hooks manage the state and lifecycle of chat features, making it simple to build reactive chat interfaces that automatically update when new messages arrive or user presence changes.

## Demo

Take a look at a [livestream basketball game](https://ably-livestream-chat-demo.vercel.app) with some simulated users chatting built using the Chat SDK. The [source code](https://github.com/ably/ably-chat-js/tree/main/demo) is available in GitHub.

## Next Steps

* Explore the [SDK setup guide](/docs/chat/setup)
* Learn about [authentication](/docs/chat/authentication)
* Start building with the [getting started guides](/docs/chat/getting-started/javascript)
