Chat without the bullshit.

Self-hosted, Discord-style chat you actually own. Run a server on your box, sign in with a shared BSFChat identity, and use the same account across every server you join. No tracking, no upselling, no vendor lock-in.

Download for macOS / Windows / Linux

Why BSFChat

Self-hosted

Own your server, your data, your backups. docker compose up, done. No SaaS in the loop.

Channels, roles, voice

Categories, text channels, voice rooms over Opus/WebRTC, private channels with Discord-style role permissions.

One identity, every server

Sign in once at id.bsfchat.com and use the same account on every BSFChat server you join. Run your own OIDC provider too if you want — it's standard.

No bloat, no dark patterns

No analytics, no ads, no upselling, no "Nitro" tier. Just a chat app that does chat.

Download the client

Prebuilt for macOS, Windows, and Linux. Signed releases on GitHub.

Source, issues, releases → github.com/BSFChat

Run your own server

The server ships as an OCI image on GHCR: ghcr.io/bsfchat/server:latest. Pull it, point a domain at the box, point identity.provider_url at https://id.bsfchat.com, and you have a chat service nobody can revoke.

Identity is federated on purpose: one account works across every BSFChat server, so your users don't need a new login per server. The default provider is id.bsfchat.com; any OIDC-compliant provider works (including your own — the image is ghcr.io/bsfchat/identity:latest if you want to run one).

The reference docker-compose.yml lives in github.com/BSFChat/server — clone it, set a couple of env vars, bring it up.

services:
  server:
    image: ghcr.io/bsfchat/server:latest
    ports:
      - "127.0.0.1:8448:8448"
    environment:
      BSFCHAT_IDENTITY_URL: https://id.bsfchat.com