Chat your way.
DMs, groups, and communities - all in one place, built around how you communicate.

Everything for realtime chat
Kivo bundles the core of modern chat — fast, reliable, and community-ready — on one near-black canvas.
DMs & group chat
1:1 DMs and small-group chats with cursor-paginated history, optimistic sends, and instant delivery over Socket.IO.
Discord-style communities
Spaces with text & announcement channels and role-based permissions — owner, admin, moderator, member — enforced server-side.
Typing, receipts & presence
Typing indicators, delivered / read receipts, and live online presence so conversations feel immediate.
Reactions, edit & delete
React with emoji, edit after sending, or soft-delete — all synced realtime to every participant.
In-app & push notifications
In-app bell plus VAPID web push — you get notified even when the app is closed. DM-focused suppression keeps it quiet when you are already viewing the chat.
Built to be re-skinned, not just re-colored.
Theming is a first-class system in Kivo, not an afterthought.
One theme object restyles the whole app — canvas, surfaces, borders, bubbles, and motion — with no component edits. Switch live, persist to storage, and keep the same near-black, hairline geometry everywhere.
One canvas. Every surface answers to it.
{ canvas: var(--canvas),
ink: var(--ink),
accent: var(--accent-blue),
hairline: var(--hairline) }
Tokens flow through CSS variables — no hardcoded colors, no per-component overrides.
Built security-first
Kivo's auth and validation are implementation details you can verify — not marketing claims. Short lifetimes, server-owned sessions, and strict boundaries keep trust measurable.
Custom auth — no third-party provider
Email + password with bcrypt hashing, owned entirely by Kivo. No external identity dependency to leak scope or session control.
15-minute access, httpOnly refresh
Short-lived JWT access tokens in the Authorization header, refreshed silently via an httpOnly cookie. Even if an access token leaks, its window is minutes.
Server-tracked sessions & force-logout
Every refresh token is backed by a Session document with TTL. Users can log out everywhere; admins can force-logout any account — revocation is real, not client-side.
Zod at every boundary
HTTP bodies, query params, and route params are validated server-side with Zod. First error wins with a clear VALIDATION_ERROR — the client is never trusted.
Rate limiting, Helmet headers, secure CORS, and never exposing stack traces or secrets in production complete the picture. Security is the foundation — not a feature.
Shipped & coming next
What you can use today and what is being built next. No dates — these move when they are ready.
Shipped
LIVE- DMs — 1:1 private conversations
- Groups — private multi-member chats
- Spaces & Channels — text / announcement, role-based
- Notifications — in-app bell + VAPID web push
- Phase 1 voice — LiveKit backend wired
Coming next
NEXT- DM & group voice calls
- Voice channel frontend
- Attachments — images & files
- Message threads
- 2FA — second-factor authentication
Roadmap items are factual and update-friendly — check back as milestones ship.