Chatto: The Single-Binary Slack Alternative That Needs No Database

Chatto: The Single-Binary Slack Alternative That Needs No Database

Chatto: Rebuilding Team Chat From First Principles

Slack has 2,400 employees. Discord runs on millions of dollars of infrastructure. What if a team chat server for 50 people could be a single binary file you run on a $5 VPS?

1. The Infrastructure Problem

Modern team chat tools have an infrastructure problem. When you use Slack:

  • Redis clusters handle real-time message routing
  • PostgreSQL stores message history
  • Kubernetes orchestrates microservices
  • CDNs serve file attachments

Mattermost requires: PostgreSQL + Redis + Go binary + Nginx
Rocket.Chat requires: MongoDB + Node.js + Nginx (2GB RAM minimum)

Chatto asks: what's the minimum viable architecture for a team chat server?

The answer: one Go binary, one port, zero external dependencies.

2. Technical Architecture

2.1 Storage: SQLite Embedded Database

Chatto uses SQLite embedded directly in the binary. No separate database server.

| Feature | Implementation |
|---------|---------------|
| Messages | SQLite tables with FTS5 full-text search |
| User data | SQLite with bcrypt password hashing |
| File uploads | Local filesystem with configurable paths |
| Sessions | In-memory with SQLite persistence |

2.2 Real-time: WebSocket + SSE Fallback

  • Primary: WebSocket for real-time message delivery
  • Fallback: Server-Sent Events (SSE) for restrictive networks
  • Polling: Last resort for very old browsers

2.3 Single Binary Design

# Download one file
wget https://github.com/example/chatto/releases/latest/download/chatto-linux-amd64

Make executable

chmod +x chatto-linux-amd64

Run on port 8080

./chatto-linux-amd64 --port 8080

That's it. Server is running.

Memory usage: ~30-50MB for 50 users
Disk usage: ~10MB binary + SQLite database
CPU usage: Minimal for typical chat workloads

3. Features

Core Features

  • Channels — Public and private channels
  • Direct Messages — 1:1 and group DMs
  • File Sharing — Upload and share files
  • Search — Full-text search across messages
  • User Management — Admin panel for user management
  • Markdown — Basic markdown support in messages

What's Missing

  • No voice/video calls
  • No screen sharing
  • No bot platform (yet)
  • No mobile apps (web only)
  • No integrations (Slack bots, etc.)

4. Deployment

4.1 Basic Setup

# Linux
./chatto --port 8080 --data-dir /opt/chatto/data

Docker

docker run -d -p 8080:8080 -v chatto-data:/data chatto:latest

Systemd service

[Unit] Description=Chatto Chat Server After=network.target

[Service]
ExecStart=/opt/chatto/chatto --port 8080
Restart=always

[Install]
WantedBy=multi-user.target

4.2 Reverse Proxy (Nginx)

server {
    listen 443 ssl http2;
    server_name chat.example.com;

location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}

4.3 Backup

Since everything is in one directory:

# Backup
tar czf chatto-backup-$(date +%Y%m%d).tar.gz /opt/chatto/data

Restore

tar xzf chatto-backup-20260716.tar.gz -C /opt/chatto/

5. Cost Analysis

| Solution | Monthly Cost (50 users) | Infrastructure |
|----------|------------------------|----------------|
| Chatto (self-hosted) | $5 VPS | 1 binary |
| Slack Pro | $450 | SaaS |
| Mattermost | $5 VPS + admin time | 4-5 services |
| Discord | Free | Limited control |

For a 50-person team:

  • Slack: $9/user/month × 50 = $450/month
  • Chatto: $5/month VPS + 30 min setup

Annual savings: $5,340

6. Use Cases

✅ Good For

  • Small teams (10-100 people)
  • Privacy-conscious organizations
  • Low-budget projects
  • Simple requirements (chat + file sharing)
  • DevOps-minimal environments

❌ Not For

  • Large enterprises (1000+ users)
  • Voice/video requirements
  • Compliance needs (HIPAA, SOC2)
  • Integration-heavy workflows
  • Mobile-first teams

7. Verdict

Chatto represents a growing trend in software: single-binary applications that prioritize simplicity over feature count.

What makes it significant:

  • Proves you don't need complex infrastructure for basic chat
  • SQLite is sufficient for small-team workloads
  • Go produces efficient, portable binaries

Honest limitations:
  • No mobile apps is a real gap in 2026
  • No voice/video limits use cases
  • Single-server = no high availability

Bottom line:

If you have a small team that just needs text chat and file sharing, and you don't want to manage a complex infrastructure or pay $9/user/month, Chatto is worth trying.

It's the kind of tool that makes you question why every chat app needs to be a platform.

Try it: https://github.com/example/chatto

Comments (0)

No comments yet. Be the first to comment!

Leave a Comment