Stoat
Stoat is an open-source, self-hostable chat platform for communities and teams, offering text channels, permissions, moderation tools, and a web app.

Stoat is an open-source chat and community platform (formerly known as Revolt) that provides text channels, direct messages, role/permission controls, moderation tools, and rich media support. The project is implemented as a modular Rust backend with companion services and a web-native client, designed for self-hosting and community-focused deployments.
Key Features
- Modular Rust-based backend split into multiple crates (REST API, WebSocket events, file server, proxy, daemons) for separation of responsibilities and scalability.
- Deployable with Docker Compose and Nix; includes Dockerfile and compose examples for local and production deployment environments.
- Integrates common infra components documented in the repo: MongoDB for primary storage, Redis for transient/cache needs, MinIO (S3-compatible) for file storage, and RabbitMQ for messaging/queues.
- Provides WebSocket and REST APIs, presence and event servers, a file server with S3-compatible storage handling, and Tenor proxy support for GIFs.
- Web and desktop clients are supported; the repository and docs reference a web client workflow (build with Node/Yarn tooling) and platform downloads.
- Fine-grained permissions, moderation and bot support aimed at community management; emphasis on privacy and GDPR-aligned practices.
Use Cases
- Host community servers for gaming, hobby, or interest groups requiring channel-based chat and moderation tools.
- Private team or organization chat deployments with self-hosted infrastructure and custom integrations.
- Custom deployments that need S3-compatible file storage, event-driven messaging, and WebSocket-based real-time updates.
Limitations and Considerations
- Real-time voice/video features have historically been limited or under active development; audio/voice support may be experimental or staged and can require additional infrastructure (example configs reference LiveKit).
- Federation with external networks is not implemented by default and has been indicated as low priority; cross-server federation is not a built-in feature.
- Self-hosting requires multiple supporting services (MongoDB, Redis, MinIO, RabbitMQ) and moderate operational knowledge; resource and orchestration planning is necessary for larger deployments.
Stoat is a production-focused, open-source alternative to proprietary chat platforms, built primarily in Rust with container-first deployment patterns. It targets communities and teams that want control over their data and infrastructure while providing modern chat features.
