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.
The details that add up
Beyond the basics — the differentiators that make Kivo feel finished, not demo-grade.
Ctrl+K global search
One command palette across messages, people, and Spaces — with jump-to-message that lands you on the exact bubble, highlighted.
Images & documents
Up to 10 files per message at 30 MB each. Images open in a fullscreen lightbox with keyboard navigation; docs render as download cards.
Installable, queue-aware
Install Kivo to your home screen, get VAPID push when it's closed, and keep typing offline — text queues in a durable outbox and flushes on reconnect.
Public pages & verified badges
Every account gets a shareable /u/username page with country flag and GitHub graph. Trusted accounts carry an admin-granted verified badge.
Private Space invite codes
Private Spaces stay hidden from Discover and admit members only through rotating 7-day invite codes — share a link or a code, rotate or revoke anytime.
Per-category sound cues
DMs, mentions, groups, Spaces, and friend requests each get their own synthesized chime with preview and a master switch. Already viewing the DM? Kivo stays quiet.
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, layer on your own accent and canvas tone, 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
- Attachments — images & documents
- Public profiles, blocking & global search
- Status — WhatsApp-style 24h photo updates
- DM & group voice / video calls
- Custom user themes
- Friend requests & friends list
Coming next
NEXT- Reaction on Status
- Close Friends
- Status for close friends
- Onboarding for spaces
- 10+ More
Roadmap items are factual and update-friendly — check back as milestones ship.
Yes. Kivo is a free student full-stack project. Sign up with a display name, username, email, and password (at least 8 characters) and you land in chat instantly — no OTP, no waiting, no paid tier.
No — Kivo runs in any modern browser. If you want it to feel native, install it: use the install icon in the Chrome/Edge address bar, Add to Home Screen on Android, or Share → Add to Home Screen on iPhone. The installed app opens straight into chat.
It puts both styles under one identity: WhatsApp-like private DMs and small groups, plus Discord-like Spaces with text and announcement channels. The differentiator on top is customization — a theme engine with per-user and per-Space palettes. It is deliberately not a Slack-style work tool.
Passwords are hashed with bcrypt and never stored readably. Sessions use short-lived 15-minute access tokens plus an httpOnly refresh cookie you can revoke with logout-everywhere, and every request is validated server-side with rate limiting on auth endpoints. Optional two-factor via authenticator app with backup codes adds a second step, and a password reset signs you out on all devices.
Partly. Your lists and the latest 50 messages per chat are cached in the browser and paint instantly, and text you send while offline is queued in a durable outbox that delivers automatically on reconnect. Attachments need a connection, and full history requires one too.
Voice and video calls are not built yet — see the roadmap above for what shipped versus what is coming next. The Docs page documents exactly what works today.