What is MikroChat?
MikroChat is a minimalist, self-hosted chat application for teams who want complete control over their communication. It provides the essential chat features you need without the bloat, vendor lock-in, or expensive bills of commercial alternatives, nor the overhead and complexity of many other open-source/free options.
The Core Concept
Section titled “The Core Concept”MikroChat gives you a complete chat solution — both frontend and backend — in a single, lightweight package. No external services required, no complex infrastructure to manage. Just deploy and start chatting.
What’s Included
Section titled “What’s Included”- Channel-based messaging: Organize conversations into channels, just like Slack
- Threaded replies: Start threads on any channel message to keep discussions organized
- Direct messages: Private conversations between users
- Image support: Share images with automatic client-side compression and thumbnail generation
- Emoji reactions: React to messages with 12 pre-selected emojis
- Real-time updates: Server-Sent Events keep everyone in sync
- Encryption at rest: AES-256-GCM encryption for all stored data
- User management: Invite users, manage admins, control access
- Dark mode: Easy on the eyes
- PWA support: Install as a native-like app with offline read access
Key Characteristics
Section titled “Key Characteristics”Batteries Included
Section titled “Batteries Included”MikroChat ships with everything: a web application frontend, a complete backend API, and a simple CLI. No separate databases, no message queues, no external services are needed.
Lightweight
Section titled “Lightweight”The backend has just a handful of dependencies: MikroAuth, MikroConf, PikoDB, and MikroServe. The frontend uses vanilla HTML, CSS, and JavaScript with MikroSafe for sanitization.
Self-Hosted
Section titled “Self-Hosted”Run MikroChat on your own hardware — a VPS, a Raspberry Pi, or your laptop. Your messages stay where you put them.
Flexible Authentication
Section titled “Flexible Authentication”Choose between dev mode (email-only sign-in) for development, magic link or password authentication for production, and OAuth 2.0 sign-in with Google, Microsoft, GitHub, GitLab, or custom providers.
Design Philosophy
Section titled “Design Philosophy”MikroChat is intentionally minimal. Some things were left out on purpose:
- Short message history: Configurable retention (default 30 days) prevents using chat as documentation storage.
- Limited messages per channel: Encourages focused discussions.
The goal is a chat application for discussions, not a knowledge base. Use the right tool for the job.
Who Is MikroChat For?
Section titled “Who Is MikroChat For?”- Teams who want a private chat server without the overhead of other options
- Privacy-conscious groups who need to keep conversations off third-party platforms
- Developers who want to self-host and customize their chat solution
- Organizations tired of per-seat pricing and feature bloat
Getting Started
Section titled “Getting Started”The fastest way to get MikroChat running in production:
curl -sSL https://releases.mikrochat.com/install.sh | bashmikrochat install
mkdir my-chat && cd my-chatmikrochat init# Edit mikrochat.config.json with your settingsmikrochat startOr for development, clone the repository and work from source:
git clone https://github.com/mikaelvesavuori/mikrochat.gitcd mikrochatnpm installcp mikrochat.config.example.json mikrochat.config.jsonnpm run dev # Frontend (terminal 1)npm run dev:reload # Backend (terminal 2)Open http://localhost:8000 and sign in with the email address you configured.
See the Installation guide for the full walkthrough.