From open chat rooms to team messengers

Build KakaoTalk-grade chat in under an hour

Install one package, write a few lines, and your app has live chat rooms. Crowded rooms and dropped connections are ours to handle, not yours.

  • One-line install
  • Keep your existing login
  • Servers are our problem
That's it. Really. chat.ts
$ npm install @kispi/chat

import { createChatClient } from '@kispi/chat'

const chat = createChatClient({
  key, token
})
await chat.connect()
const room = chat.roomByKey('lobby')
await room.subscribe()
room.on('messages', render)
await room.send({ text: 'hi everyone 👋' })

Use cases

Any kind of chat you need

Open rooms anyone can join, private rooms by invite, one-on-one DMs, and channels only admins post to. Mix them however your product needs.

Community open chat

Anyone can drop in and talk, and you can show how many people are in the room.

  • Public rooms
  • Who's online

Support & direct messages

Customer support, marketplaces, dating matches — private talk between two people, with read receipts.

  • DMs
  • Read receipts

Team messenger

Slack-style invite-only rooms. Side conversations move into threads.

  • Private rooms
  • Threads

Announcement channels

Like a Telegram channel: admins post, everyone reads. New posts hit your server, so app notifications pick up from there.

  • Channels
  • Notification hook

Live stream chat

A crowd reacting to the same moment. You can block abuse before it reaches the room.

  • Reactions
  • Pre-publish check

In-game & in-app chat

Guild chat, party chat, match lobbies. It plugs into the login you already have.

  • Private rooms
  • Mentions

Features

Everything a chat needs, already here

  • Read receipts & unread counts

    Who read what, and an unread count on every room.

  • Typing…

    Those little dots that make a chat feel alive.

  • Emoji reactions

    Tap to react, and see who reacted with what.

  • Replies & threads

    Answer a message in place, or branch off into a thread.

  • Photos & files

    Attach photos and files to messages. They stay in the storage you already use.

  • Mentions

    @ someone to get their attention.

  • Who's online

    See who is in the room right now.

  • Edit & delete

    Fix a typo, or take a message back.

  • Filter before sending

    Every message asks your server first. Allow it, rewrite it or block it — your rules decide.

  • Notification hook

    Every new message hits your server. Send the push from there.

Performance

Easy to add, built to hold up

Built for crowded rooms and flaky networks. One node pushed past 150k frames per second, measured on a dev machine.

150k+

messages delivered per second

52 ms

for 99% of messages to reach everyone

0

connections dropped under that load

Our own load test, September 2026: the chat server, database, Redis and the load generator all on one dev machine (Apple M5 Pro); 1 server, 1 room, 400 people connected, 400 messages sent per second, 30 seconds (157,873 deliveries per second). The load generator hit its limit first, so these are lower bounds.

Drop the connection, lose nothing

A tunnel is fine. The moment the connection is back, the SDK fills in whatever arrived while you were gone.

Before the drop

567

Back online — a gap is spotted

567???11

Filled in automatically

567891011

Order never breaks

Hundreds of people can type at once and everyone still sees the same order. Nobody gets their own version.

We run the servers

The engine, the database and the deploys are on our side. Your code looks the same as it did with your first ten users.

A featherweight SDK

TypeScript with zero runtime dependencies. Same code in the browser and on Node.

Getting started

Three steps and you are live

  1. 1

    Create an app in the console

    Sign up, create an app, and you get a public key and a secret key. A few clicks.

  2. 2

    Hand out tickets from your server

    A few lines that give each signed-in person a chat ticket. Your sign-up and login stay as they are.

  3. 3

    Connect from your app

    Connect with the ticket, join a room, and you are done. Send the first message.

The next big messenger? It's your turn.

From creating an app to your first message takes under an hour.

See pricing