We are building the open source chat layer for modern apps.

Open source chat infrastructure

Your app needs chat. Ship it in 60s.

Get in 60s what takes sprints to build: chat infrastructure that lives inside your app.

CLI
Prompt
MCPSoon
SkillsSoon
npm install @chatpack/core

Add 1:1 chat to your app using ChatPack.

Install @chatpack/core. Create lib/chatpack.ts with chatpack(), configure your database URL and secret, add the chat component to your page, and start sending messages.

0-headache Install
Built to scale
Never pay per-message
Plugin-based
Customize everything

Works with:

Quick Start

Up and running in one command.

About ~10 lines of code. No account required, no hosted service to sign up for. Your database, your infrastructure, your users. Stays free forever.

terminal
npm
pnpm
bun
$
npm install @chatpack/core @chatpack/adapter-drizzle
import { chatpack } from "@chatpack/core"
import { memoryAdapter } from "@chatpack/adapter-memory"
const chat = chatpack({ storage: memoryAdapter(), ... })
await chat.api.sendMessage({ body: "Hey, it works!" })

01

Install the package

Add @chatpack/core and a storage adapter. Works with npm, pnpm, and bun.

02

Connect your stack

Point Chatpack at your database and your auth. You own your users and data.

03

Ship

Wire it up in a few lines and go live. Messaging, real-time, and the details handled for you.

What you get

Everything messaging needs to feel real.

Available Now

Messaging

Conversations with persistent history, editing, and deletion wired straight to your database.

Available Now

Real-Time

Messages and live signals arrive instantly over one stream, with automatic reconnect and nothing lost.

Available Now

Presence & State

Who's around, what's delivered, what's been seen — durable state you own and control.

Built In

Your Stack, Your Rules

Your database, your auth, your users. Chatpack never owns accounts or hosts your data.

Open Source

Grows With You

A small core you extend with plugins; new capabilities land without changing how you build.

Quick start

Ship chat before your standup ends.

Building 1:1 messaging from scratch takes weeks. Hosted SDKs lock you into usage-based billing. ChatPack gives you the full feature set in an afternoon, self-hosted, forever free.

Minutes

to working chat

$0

in usage fees, ever

MIT

licensed, yours to keep

CHATPACK
Minutes
HOSTED CHAT SDK
Days
BUILD IT YOURSELF
Weeks

# placeholder timings, to be updated with real integration data

Roadmap

Built in the open, moving fast.

ChatPack is actively being built. Here is where things stand and where they are going.

NOW

1:1 real-time messaging

Typing indicators over SSE

Read and delivered receipts

Persistent message history

React and Next.js components

Self-hosted, Postgres-backed

NEXT

Push and in-app notifications

Group chats (WhatsApp-style)

File and media attachments

Message reactions

Vue and Svelte components

Expo / React Native support

LATER

Discord-style channel rooms

One-to-many broadcast channels

End-to-end encryption

Moderation tooling

Analytics and delivery insights

Managed hosted option

Built for security

ChatPack is the fastest way to add chat to your app.

CHATPACK
5 Minutes
HOSTED CHAT SDK
2 days
576x slower
HOSTED CHAT SDK
2 days
+ vendor lock-in, per-seat pricing
576x slower
BUILD IT YOURSELF
6 Weeks

Time from empty project to working 1:1 chat.

One command

Add chat to any existing app.

Drop ChatPack into a project you're already building. Works alongside your current stack, no rewrites needed.

npm install @chatpack/core

Simple API

Chat in ten lines.

Drop ChatPack into a project you're already building. Works alongside your current stack, no rewrites needed.

TYPESCRIPT
import { chatpack } from "@chatpack/core";
import { memoryAdapter } from "@chatpack/adapter-memory";
const chat = chatpack({
  storage: memoryAdapter(),
  auth: async (req) => getSessionUser(req),
});
const { id } = await chat.api.getOrCreateConversation({
  userId: "user_alice",
  otherUserId: "user_bob",
});
await chat.api.sendMessage({
  userId: "user_alice",
  conversationId: id,
  body: "Hey, it works!",
});

Add 1:1 chat to your app using ChatPack.

×

Set up chat in my Next.js project using ChatPack (@chatpack/core). 1. Install @chatpack/core. If I already have a database configured in this project, use that — don't set up a new one. 2. Create lib/chatpack.ts — call ChatPack() with: - My existing database connection (or a new Postgres setup if none exists) - CHATPACK_SECRET from .env 3. Add the ChatPack provider to my root layout. 4. Create a chat page or component using the useChat hook: - List conversations in a sidebar - Show messages in the main area - Include a message input with send button - Typing indicators and read receipts enabled by default 5. Add CHATPACK_SECRET to my .env if it doesn't exist (generate a 32+ char secret). 6. Run the dev server and verify a working 1:1 chat between two test users. Use SSE for realtime — no WebSocket server.