ChatPack – Your app needs chat. Ship it in 60s.

ChatPack

3 min read Original article ↗

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

Open source chat infrastructure

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.

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.

$

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.

Messaging

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

Real-Time

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

Presence & State

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

Your Stack, Your Rules

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

Grows With You

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

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.

MIT

licensed, yours to keep

# placeholder timings, to be updated with real integration data

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

Time from empty project to working 1:1 chat.

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

Chat in ten lines.

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

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!",
});