#
Open source · AGPL-3.0 · self-hosted

The self-hosted Slack alternative.

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.

0
Container to deploy
0
People per call · 16 cameras
0
Telemetry · zero tracking
$0
License cost · AGPL-3.0
What is sharp?

An open-source Slack alternative you host yourself

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

License
AGPL-3.0 · no paid tier
Server
Rust (axum) · one binary
Database
Postgres 16 + pgvector
Realtime
WebSocket · Redis pub/sub for replicas
Calls
Self-hosted LiveKit SFU
Clients
Web · macOS · Windows · Linux
Storage
Your own S3 or MinIO bucket
Telemetry
None
Why sharp

One workspace. Chat, docs, canvas, boards, calls & AI.

Everything a team needs to talk, write, draw, meet and ship — and nothing that phones home.

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

Collaborative docs

  • Block-based docs living inside any channel
  • Real-time co-editing over Yjs with live cursors
  • Owner / editor / viewer roles per doc
  • [[doc]] chips bridge chat and docs

Canvas & boards

  • Infinite Excalidraw whiteboards, self-hosted assets
  • Flexible kanban boards for capturing team ideas
  • Same permissions and inbox as docs
  • One shared entry point before Jira or Linear

Voice, video & screen share

  • LiveKit SFU calls in any channel, DM or standalone room
  • Up to 25 participants, 16 cameras, 1 screen share
  • Picture-in-picture keeps the call floating
  • Guest links — join by name, no account

Sharpy, the AI assistant

  • RAG answers grounded in your own workspace
  • Every retrieval re-checks channel and doc permissions
  • Any OpenAI-compatible endpoint, including local models
  • No API key set? The whole feature disappears

Calendar & meetings

  • Workspace calendar with scheduled meetings
  • Two-way Google Calendar sync (opt-in)
  • Meetings open straight into a call room
  • Live transcription and meeting notes

Polls & decisions

  • Polls in channels, sticky to the top while open
  • In-call poll overlay for live votes
  • Results broadcast in real time
  • Everyone gets a poll_ended notification

Files & search

  • Drag-and-drop uploads, images inline
  • Instant Postgres full-text search across channels
  • Files on your own S3 or MinIO bucket
  • Quick switcher jumps to channels, docs and boards

Notifications you control

  • Unified inbox across chat, docs, canvas and boards
  • Web push, native macOS APNs, in-app toasts
  • Per-channel mode: all, mentions only, or muted
  • Do-not-disturb with scheduled quiet hours

Privacy & encryption

  • Opt-in end-to-end encrypted DMs with per-device keys
  • Passkeys plus password login, argon2 hashes
  • Notification previews you can strip back
  • Streaming mode blurs the workspace while you share

Yours, everywhere

  • One container plus Postgres; Redis for multi-replica
  • AGPL-3.0, zero telemetry, zero tracking
  • Web app plus native macOS, Windows and Linux builds
  • Every integration is optional and inert until configured
Sharpy

An AI assistant that only sees what you can see

Retrieval-augmented answers over your own messages and docs — running against any OpenAI-compatible endpoint, including a model on your own hardware.

  • Grounded in your workspaceMessages and docs are embedded into pgvector and cited back as sources with every answer.
  • Permission-aware retrievalEvery lookup re-checks channel membership and doc roles per request. Encrypted DMs are never embedded at all.
  • Your model, your keysPoint AI_BASE_URL at OpenAI, DeepSeek, Ollama or anything compatible. Chat-only providers still work.
  • Off by defaultNo AI_API_KEY, no feature: Sharpy disappears from the UI and nothing is ever embedded.
Compare

sharp vs hosted chat SaaS

The trade is simple: you take on a container and a database, and you get your data, your limits and your bill back.

Comparison of sharp with typical hosted team-chat SaaS across cost, data ownership, history limits and bundled features
 sharp (self-hosted)Typical hosted chat SaaS
Software cost$0 · AGPL-3.0, no seat countPer-seat, per-month, per-tier
Where messages liveYour Postgres, your diskThe vendor's cloud
Message historyUnlimited — until you delete itOften capped on free and lower tiers
Docs, canvas & boardsBuilt in, same permissions as channelsAdd-on product or separate subscription
AI assistantBuilt in · your model, your keysPaid upgrade on the vendor's model
Video callsSelf-hosted LiveKit · 25 people, 16 camerasVendor SFU, tier-limited
End-to-end encrypted DMsOptional, per-device keysRare
TelemetryNoneProduct analytics by default
Source codePublic, forkable, auditableProprietary
You operateOne container, Postgres, backupsNothing

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.

Self-host

Up and running in 5 minutes

One container plus Postgres. Copy, paste, and you own your team's workspace.

bash
git clone https://github.com/davide97g/sharp \
  && cd sharp/deploy \
  && cp .env.example .env \
  && docker compose up -d
1 Point DNS at your box
2 Set secrets in .env
3 Register the first account

Required

  • Docker Compose on a Linux host
  • Postgres 16 with pgvector (bundled)
  • A domain — Caddy handles TLS
  • Two secrets: JWT_SECRET, POSTGRES_PASSWORD

Optional & inert until set

  • REDIS_URL — multi-replica fanout
  • LIVEKIT_* — voice, video, screen share
  • S3_* — uploads on your own bucket
  • AI_* — Sharpy, embeddings, transcription
  • GOOGLE_*, GITHUB_OAUTH_* — calendar sync & sign-in
  • RESEND_API_KEY or SMTP_* — password reset
Download

Get the desktop app

Native builds for every platform. Point it at your server URL and sign in through your browser.

macOS

Apple Silicon & Intel · .dmg

Download

Windows

64-bit installer · .exe

Download

Linux

AppImage & .deb

Download

Prefer the browser? The web app runs on any modern browser and is responsive on phones. A React Native mobile app is in development.

FAQ

Frequently asked questions

Licensing, hosting requirements, encryption, AI, and what happens when you skip an environment variable.

What is sharp?

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.

Is sharp free?

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.

What do I need to self-host sharp?

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.

How long does setup take?

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.

Does sharp send data to third parties?

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.

Does sharp support voice and video calls?

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.

Are direct messages end-to-end encrypted?

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.

How does the AI assistant work?

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.

Can I use sharp on desktop and mobile?

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.

How does sharp handle ideas and execution work?

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.

Does sharp scale beyond one server?

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.

What does the AGPL-3.0 license mean for me?

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.