Closed beta

Messages that flow.
Keys that stay with you.

Flux is an end-to-end encrypted messenger that lives in your browser. Every chat is an MLS group, envelopes carry no sender, and the server can't tell who is writing to whom.

No phone number. No app store. Just a browser.

MLS for every chat

The IETF's Messaging Layer Security (RFC 9420): forward secrecy and post-compromise security. A one-to-one chat is simply a group of two.

Sealed sender

Envelopes have no "from". You write with a token your contact handed you inside the encrypted chat, over a connection that isn't logged in.

Looks like nothing

Ordinary TLS on port 443, every frame padded to one of five sizes, random cover pings. No protocol signature for a filter to catch.

How a message travels

  1. 1

    Sealed on your device

    MLS encrypts it, then it is padded so long and short messages look the same.

  2. 2

    Dropped anonymously

    A second, logged-out connection puts it in your contact's mailbox with their send token.

  3. 3

    An empty wake-up

    The server stores an opaque blob and sends a push with no content at all.

  4. 4

    Opened, then forgotten

    Their device decrypts it and confirms; the server deletes the blob for good.

What the server knows

Knows

  • Your @username and your device's public key
  • Your mailbox, and when your device is online
  • That an envelope arrived for you, and its size class
  • Your push address, if you turn notifications on

Never sees

  • What you write
  • Who sent an envelope
  • Who your contacts are
  • Your keys โ€” they never leave your device

Honest limits

  • A web app is only as honest as the server that serves its code. Run your own, or wait for signed desktop builds.
  • A server can still notice that two connections come from the same IP address.
  • Beta: no password accounts or backups yet. Lose the device, lose the chats.

Your own Flux in one binary

SQLite and the web app are inside. Put it behind nginx and you have a private messenger for your people.

./flux-server --addr 127.0.0.1:8787 --beta
./flux-server invite 5

The source opens under AGPL-3.0 together with the public beta.