Chatto
A fully-featured, real-time chat application that's easy to self-host. One binary, no external dependencies required.
What is Chatto?
Section titled “What is Chatto?”Chatto is a fully-featured real-time chat application built for simplicity and scalability. It is designed to be particularly easy to self-host, starting with a single binary that includes everything you need to get started.
Key Features
Section titled “Key Features”- Reliable real-time messaging with a familiar UI — spaces, rooms, threads, reactions, typing indicators, presence, and more
- Voice and video calls with screen sharing
- Highly flexible configuration and permission systems
- Privacy-focused design with per-user encryption keys for straightforward GDPR-compliant data deletion
- Scales from a single instance to a planet-spanning supercluster (yes, really)
See the Roadmap for a full feature list and what’s coming next.
The Stack
Section titled “The Stack”- Single binary compiled from a Go codebase
- NATS and JetStream handle both real-time delivery and data persistence — no separate database required
- An embedded NATS server gets you started quickly, or connect to a dedicated NATS cluster for horizontal scaling and high availability
- The Svelte web UI is served directly from the binary — no separate frontend build step needed
Optional Dependencies
Section titled “Optional Dependencies”Chatto provides a full chat experience with no external dependencies. For advanced features:
- S3-compatible object storage — recommended for file uploads at scale
- ffmpeg — required for video and GIF processing (included in the Docker image)
- LiveKit — required for voice and video calls (free to self-host)
Get Started
Section titled “Get Started” Quick Start Get Chatto running in a few minutes.
Docker Compose Deploy with Docker Compose for production.
Standalone Binary Run Chatto as a single executable.
Kubernetes Deploy on Kubernetes with Argo Rollouts.