5 min readUpdated Jul 18, 2025

Build chat UIs in minutes with Ably Chat React UI Components

Build chat UIs in minutes with Ably Chat React UI Components
AblyAbly

We’ve all been there: you’re building a chat experience and end up spending way too much time on UI glue - message bubbles, room lists, typing indicators… all before you even get to the good part: real-time logic.

So today, we’re launching a set of lightweight, flexible UI components built for React and powered by Ably Chat. These components are designed to help you move fast, whether you want to prototype something in an afternoon or build a full-featured chat interface that just works.

npm install @ably/chat-react-ui-components @ably/chat

Why we built this

Developers told us they loved the real-time power of Ably Chat, but didn’t want to reinvent message bubbles every time they started a project.

So we built a UI kit that gives you:

  • A full, working chat layout with sensible defaults
  • Atomic components to mix, match, and style as you like
  • Deep integration with Ably Chat for presence, reactions, and history
  • A chance to skip the scaffolding and focus on real features
  • A starting point with all of the difficult details worked out, if you want to ship your own components

What’s in the box

Here’s what you’ll find in this first release:

Component

What it does

App

A full chat app layout, with sidebar + chat window

RoomList

Shows available chat rooms

ChatWindow

Displays messages, reactions, typing, and input

MessageBubble

A stylable, sender-aware message container

RoomInfo

Presence + participant list with avatars

MessageInput

Emoji-ready, multi-line input with typing tracking

Sidebar

Collapsible nav with room management built-in

Avatar

Customizable avatars with image support and fallbacks

All components are React-first, unopinionated, and work out of the box with Ably Chat providers. You can go from zero to full chat UI in under 10 minutes, or just pull in a few pieces if you're building something custom.

And here's how it looks in action:

Quick start

Spin up a Vite + React app and install the packages:

npm create vite@latest my-chat-ui-app -- --template react-ts
cd my-chat-ui-app
npm install @ably/chat-react-ui-components @ably/chat

Then drop in the App component:

import * as Ably from 'ably';
import { ChatClient } from '@ably/chat';
import { App } from '@ably/chat-react-ui-components';
import '@ably/chat-react-ui-components/dist/styles.css';

const ablyClient = new Ably.Realtime({
    key: '{{API_KEY}}',
    clientId: 'your-chat-client-id',
});

const chatClient = new ChatClient(ablyClient);

ReactDOM.createRoot(document.getElementById('root')!).render(
	<ChatClientProvider client={chatClient}>
		<ThemeProvider>
			<ChatSettingsProvider>
				<AvatarProvider>
					<App initialRoomNames={['my-first-room']} />
				</AvatarProvider>
			</ChatSettingsProvider>
		</ThemeProvider>
	</ChatClientProvider>
);

And there you have it - you’ve now got real-time messaging, presence, and reactions with a fully responsive UI.

Prefer full control?

If you’d rather build your own layout, the kit is fully composable. You can wrap just the providers you need and render atomic components wherever they make sense.

<ThemeProvider>
    <AvatarProvider>
        <ChatSettingsProvider>
            <ChatClientProvider client={chatClient}>
                {/* Your layout here */}
                <RoomList />
                <ChatWindow roomName="general" />
            </ChatClientProvider>
        </ChatSettingsProvider>
    </AvatarProvider>
</ThemeProvider>

Everything’s context-driven and modular, so you’re never locked in.

Real-world ready

This is more than a UI demo. The components are designed for:

  • Live customer support tools
  • Team chat apps or collaboration dashboards
  • In-app messaging for mobile or web products
  • Internal tooling that needs realtime conversations

The design is responsive, the performance is solid, and it all sits on top of Ably’s realtime edge network. So if you’re already using Ably Chat, the UI kit plugs in directly.

You’ll also get:

  • Full TypeScript support
  • Tailwind-compatible classes (but you can use anything)
  • ESLint + Prettier config out of the box
  • Reactions, typing indicators, and presence baked in
  • Sensible defaults, but full override control

And if you want to hook into message editing, reaction logic, or custom avatars, the kit gives you the handles to do that too.


Get started today

npm install @ably/chat-react-ui-components @ably/chat

Read the full documentation to learn more!

Join the Ably newsletter today

1000s of industry pioneers trust Ably for monthly insights on the realtime data economy.
Enter your email