Back to all apps
macOSiOSiPadOSAndroidWindowsComing soon

Balane Dialog

Team chat without a server or an account, translated as you read.

Balane Dialog is for team conversations without a server and without an account. A room starts on one device; you invite people by text or QR code, and the room admin approves new members. Devices exchange messages directly or, when no direct connection can be made, through relays. Every message is end-to-end encrypted with Olm and Megolm and signed by its sender. Replies, reactions, threads, mentions and search are included, and you can edit and retract your own messages. Optionally, an anchor device run by the team keeps rooms available in encrypted form when nobody else is online. Translation happens as you read, if you want it, using your own DeepL key; the original is one click away. Your identity is a key on your device, and messages are stored on the participants' devices. For Mac, iPhone, iPad, Android and Windows. Balane Office is a project that shows how far an office suite can be taken with AI-assisted development. The apps are free and fully usable.

Balane Dialog

Team chat without a server

Balane Dialog is for conversations in small teams, associations and groups that work across languages. The participants' devices exchange rooms and messages directly with each other. There's no server holding the conversations and no account: your identity is a key on your device.

Rooms and invitations

You create a room and invite others with an invitation, as text or a QR code; it can even be copied out of an email. Whoever pastes it makes a request, and the room admin approves or declines it. A room can have several admins, and one person can use several devices.

Conversation

Replies, reactions, threads, @ mentions and search across all rooms. You can edit and retract your own messages; the text is then deleted on every device. Under your latest message you see how many people it has reached. Files go to the room encrypted.

Encrypted and signed

Every message is end-to-end encrypted with Olm and Megolm and signed by its sender; each device checks it before accepting it. If no direct connection can be made, relays pass on the encrypted data. They see IP addresses and timing, but no content. The public relays can be switched off if you run your own.

When nobody is online

A message stays on your device until someone in the room is reachable. If you don't want to wait for that, set up an anchor: an always-on device of your team that keeps rooms available in encrypted form and passes them on. The anchor can't read them.

Translation as you read

With your own DeepL key, everyone reads in their own language. The original is one click away, a team glossary keeps technical terms consistent, and translations can be shared in the room. For confidential rooms you can specify that their content goes to no translation service.

Notifications

On iPhone, iPad and Android, Dialog tells you about new messages even when the app is closed, if you switch notifications on. A wake-up service wakes the room's devices for this. It only learns devices and room identifiers, no content and no names. Notifications are off by default; the app then syncs when you open it.

Support

Questions and bug reports go to support@balane.tech.

— Questions & answers

Common questions.

How much does Balane Dialog cost?

Nothing. Balane Dialog is free and fully usable, with no subscription and no in-app purchases.

Do I need an account?

No. There's no sign-in and no Balane account. You open the app and start.

Where are the messages stored?

On the participants' devices, encrypted. There is no server that stores messages. If nobody else is online, a message waits on your device until someone in the room is reachable, or sits encrypted with the anchor if your team runs one.

Who sees anything when no direct connection can be made?

Then relays pass on the encrypted data: by default the public relays run by n0, or only your own if you prefer. Relays see IP addresses and timing, never content. Devices find each other through the public Mainline DHT.

Do I have to use translation?

No. Translation only happens if you add your own DeepL key; the text to be translated then goes directly to DeepL. For individual rooms you can specify that their content goes to no translation service.

Tech stack

  • Flutter
  • Dart
  • Rust
  • Iroh

Platforms

  • macOS
  • iOS
  • iPadOS
  • Android
  • Windows

Tags

  • Balane Office
  • Chat
  • Encryption
  • Translation
— Privacy Policy

Privacy