Chat, threads & DMs
- Public channels, private groups & direct messages
- One-level threads, reactions, @mentions, presence
- Disappearing messages with a per-channel TTL
- GIF picker, voice messages, @/# autocomplete
Chat, collaborative docs, whiteboards, kanban boards, voice and video calls, a calendar, flexible idea boards and an AI assistant — one open-source container on your own server. Your data never leaves your infrastructure.
No account. No telemetry. No SaaS lock-in.
sharp is an open-source, self-hosted team communication platform. A single Rust binary serves chat, collaborative docs, whiteboards, kanban boards, a calendar, LiveKit voice and video calls, a flexible idea boards and an AI assistant — backed by Postgres, deployed as one container, licensed AGPL-3.0.
It is built for teams that want the whole Slack-plus-Notion-plus-Linear bundle without per-seat pricing, capped message history, or their conversations sitting in someone else's data centre.
Version 0.3.0 · last updated ·architecture docs
Everything a team needs to talk, write, draw, meet and ship — and nothing that phones home.
[[doc]] chips bridge chat and docspoll_ended notificationThe trade is simple: you take on a container and a database, and you get your data, your limits and your bill back.
| sharp (self-hosted) | Typical hosted chat SaaS | |
|---|---|---|
| Software cost | $0 · AGPL-3.0, no seat count | Per-seat, per-month, per-tier |
| Where messages live | Your Postgres, your disk | The vendor's cloud |
| Message history | Unlimited — until you delete it | Often capped on free and lower tiers |
| Docs, canvas & boards | Built in, same permissions as channels | Add-on product or separate subscription |
| AI assistant | Built in · your model, your keys | Paid upgrade on the vendor's model |
| Video calls | Self-hosted LiveKit · 25 people, 16 cameras | Vendor SFU, tier-limited |
| End-to-end encrypted DMs | Optional, per-device keys | Rare |
| Telemetry | None | Product analytics by default |
| Source code | Public, forkable, auditable | Proprietary |
| You operate | One container, Postgres, backups | Nothing |
Already looking at self-hosted options?Mattermost, Rocket.Chat and Zulip are all mature, open-source and worth your shortlist — Zulip especially if threading is your whole religion. sharp is the newer, narrower bet: one workspace where chat, docs, canvas, boards, calls, calendar and AI ship together in a single container, with every integration optional and inert until you configure it.
One container plus Postgres. Copy, paste, and you own your team's workspace.
git clone https://github.com/davide97g/sharp \
&& cd sharp/deploy \
&& cp .env.example .env \
&& docker compose up -d.envpgvector (bundled)JWT_SECRET, POSTGRES_PASSWORDREDIS_URL — multi-replica fanoutLIVEKIT_* — voice, video, screen shareS3_* — uploads on your own bucketAI_* — Sharpy, embeddings, transcriptionGOOGLE_*, GITHUB_OAUTH_* — calendar sync & sign-inRESEND_API_KEY or SMTP_* — password resetNative builds for every platform. Point it at your server URL and sign in through your browser.
Prefer the browser? The web app runs on any modern browser and is responsive on phones. A React Native mobile app is in development.
Licensing, hosting requirements, encryption, AI, and what happens when you skip an environment variable.
sharp is an open-source, self-hosted team communication platform — a Slack alternative you run yourself. One Rust binary serves chat, collaborative docs, whiteboards, flexible idea boards, a calendar, voice and video calls, and an AI assistant, backed by Postgres. It is licensed AGPL-3.0.
Yes. sharp is AGPL-3.0 licensed with no paid tier, no seat count and no feature gates — the software costs $0. You pay only for the machine you run it on, which for a small team is a $5–10/month VPS plus whatever object storage you use for uploads.
Docker Compose and a Postgres 16 database with the pgvector extension — the bundled compose file provides both. Everything else is optional: Redis for multi-replica fanout, S3 or MinIO for uploads, LiveKit for calls, an OpenAI-compatible API for the AI assistant, SMTP or Resend for email.
About five minutes. Clone the repo, copy .env.example to .env, set a JWT secret and a Postgres password, then run docker compose up -d. Migrations apply automatically on startup and the first account you register becomes the workspace owner.
No. sharp ships zero telemetry and zero tracking, and calls no external service on its own. Every integration — Google Calendar, GitHub, GIFs, AI, push, email — stays completely inert until you set its environment variable, and the feature disappears from the UI.
Yes, through a self-hosted LiveKit SFU. Any channel, DM or standalone room becomes a call with webcam video and screen sharing including system audio. Limits are 25 participants, 16 cameras and 1 screen share per room. Picture-in-picture keeps a call floating while you work elsewhere.
Optionally, yes. E2EE DMs use per-device X25519 and Ed25519 keys; the server performs zero cryptography and stores only opaque ciphertext plus public keys. It is a Keybase-style design without forward secrecy, and encrypted DMs are never indexed by the AI assistant.
Sharpy is retrieval-augmented: workspace messages and docs are embedded into pgvector, and every retrieval re-checks channel membership and doc roles, so Sharpy can never surface content the asker cannot already read. It talks to any OpenAI-compatible endpoint, including a local model.
sharp runs in any modern browser, and native Tauri 2 desktop builds are published for macOS, Windows and Linux — you point them at your own server URL and sign in through the system browser. A React Native mobile app is in development; the web app is responsive in the meantime.
Boards are the flexible capture point for ideas, context and early shaping. When an idea becomes committed execution work, move it into the Jira, Linear or other issue tracker your team already uses.
Yes. Set REDIS_URL and WebSocket events fan out through Redis pub/sub, so several replicas stay in sync behind a load balancer. Media never touches the app server: LiveKit carries call traffic with simulcast, dynacast and adaptive subscriptions.
Run it, fork it, even sell hosting for it — you just have to publish your modifications under the same license. Internal use inside your own company carries no obligation beyond that, and there is no contributor license agreement or commercial edition behind a paywall.