Skip to content

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.

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.

  • 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

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.

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.

Run MikroChat on your own hardware — a VPS, a Raspberry Pi, or your laptop. Your messages stay where you put them.

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.

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.

  • 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

The fastest way to get MikroChat running in production:

Terminal window
curl -sSL https://releases.mikrochat.com/install.sh | bash
mikrochat install
mkdir my-chat && cd my-chat
mikrochat init
# Edit mikrochat.config.json with your settings
mikrochat start

Or for development, clone the repository and work from source:

Terminal window
git clone https://github.com/mikaelvesavuori/mikrochat.git
cd mikrochat
npm install
cp mikrochat.config.example.json mikrochat.config.json
npm 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.