Skip to main content

Introduction

ChatKitty is the first complete chat platform; bringing together everything that's required to build real-time chat into Web and mobile apps. ChatKitty provides all the features you need to add real-time, in-app chat to your web or mobile app without building and operating chat infrastructure yourself.

What you get with ChatKitty

  • Production-ready real-time messaging — Typing indicators, read receipts, presence (online/offline), reactions, threads, edits/deletes.

  • Group and 1:1 conversations — Channels, invites, roles/moderators, membership APIs.

  • Inbox hygiene — Unread counts, last-read tracking, mute, hide, clear history.

  • Mobile-friendly — Push notifications hooks for iOS/Android/Web.

  • Moderation & Safety — Message reporting, user/channel blocking, moderator controls.

  • Hosted/embedded Chat UI — A server-side UI framework + prebuilt components that you can live-tune without pulling templates into your repo.

  • SDK-first, event-driven APIs — Web and mobile native, with rich event streams for reactive apps.

5-minute quick start

1. Get your API key

Sign up for a free ChatKitty account at console.chatkitty.com, and create a new application widget. Copy the widget ID for use in the next steps.

2. Install the ChatKitty SDK

ChatKitty provides SDKs for JavaScript, iOS, Android, and various web frameworks:

npm install @chatkitty/core

3. Loading the Chat UI

The ChatKitty SDKs provide prebuilt UI components that you can drop into your app to get started quickly.

import { loadChatUi } from '@chatkitty/core';

await loadChatUi({
widgetId: 'your-widget-id',
username: 'user-username',
container: {
id: 'chat-ui',
height: '100%',
}
});

// Define the container in your HTML
// <div id="chat-ui"></div>

4. Connecting to ChatKitty manually

If you want to build your own custom chat UI, or need more control over the chat experience, you can connect to ChatKitty manually:

import { connectApi, loadChatUi } from '@chatkitty/core';

const connection = await connectApi({
apiKey: 'your-application-api-key',
username: 'user-username'
});

const { user } = connection; // Reactive object

console.log('Connected as user:', user.value);

// Set event listeners if needed
user.watch((user) => console.log('User updated:', user));

loadChatUi({ widgetId: 'your-widget-id' }, { connection })

5. Customizing the Chat UI

ChatKitty allows for extensive customization of the chat UI and behavior through themes, localization, audio notifications, and much more.

Customizing the Chat UI using the Console

You can customize the look and feel of the Chat UI using the ChatKitty Console. Navigate to your application widget, and select the "Customize" tab to explore the various options available.

Customizing the Chat UI programmatically

await loadChatUi({
widgetId: 'YOUR_WIDGET_ID',
theme: 'dark',
profile: {
displayName: 'John Doe',
displayPicture: 'https://example.com/user-avatar.jpg',
},
// Other options...
});
tip

Check out the ChatKitty UI documentation for a full list of customization options.