Database for Chat Applications
From the ground up for chat applications with real-time, thread-first architecture, and seamless scalability.
Built for chat data from day one:
Threaded messages - Versioning, edits, and soft-deletes built-in
Fast reads and writes - Built for common chat access patterns
Security - Not E2E or most secure, just better than standard databases
Quick start - Lightweight, easy to use, SDKs for Python, Node.js, TypeScript, and React
Currently Available
Messages - Data Store + Versioned edits
Threads - Metadata store
Encryption - Per thread (DEK & KEK) style.
Retention - Policy based purge - (ttl & cron)
Reliability - Sub-ms Acks or safe mode
Performance - 3k+ RPS on 2 local CPU cores
Planned
Cloud Key Stores - Big cloud & Infisical
Backups - Easy backup and easy restores
Realtime - Websockets + webhooks
Search - Per user chat data search API
Scaling - Full vertical or sharded horizontal
Hosting - Managed or BYOC or Open Core
Developer Tools
Backend SDKs - Node.js and Python
Frontend SDKs - TypeScript and React
Data Explorer - Admin dashboard - Available
Backend Integration
import ProgressDB from '@progressdb/node'
const db = ProgressDB({
baseUrl: 'https://api.example.com',
apiKey: process.env.PROGRESSDB_KEY
})
// Save messages from Vercel AI SDK
export async function POST(req: Request) {
const { message, chatId } = await req.json()
// Save to ProgressDB thread
await db.createThreadMessage(chatId, message,
'user-123')
}TS
Frontend Integration
import { useMessages } from '@progressdb/react';
function ChatInterface({ threadId }: { threadId: string }) {
const { messages, create } = useMessages(threadId);
const sendMessage = async (text: string) => {
await create({
body: { text },
role: 'user'
});
};
return (
<div>
{messages.map(m => (
<div key={m.id}>{m.body.text}</div>
))}
</div>
);
}TSX