Show HN: Bounce, a distributed chat app that protects metadata

hkparker1 pts0 comments

GitHub - bounce-chat/bounce: A metadata-protecting distributed group chat application · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

Uh oh!

There was an error while loading. Please reload this page.

bounce-chat

bounce

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

master

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>1,528 Commits<br>1,528 Commits

android

android

chat

chat

config

config

docs

docs

fyne @ 75c4318

fyne @ 75c4318

fyne-tools @ fedfa1c

fyne-tools @ fedfa1c

network

network

pkg

pkg

ui

ui

.gitignore

.gitignore

.gitmodules

.gitmodules

LICENSE

LICENSE

Makefile

Makefile

README.md

README.md

go.mod

go.mod

go.sum

go.sum

main.go

main.go

View all files

Repository files navigation

Bounce is a distributed group chat application that protects metadata, with a familiar look and feel.

Design Overview

Each instance of Bounce includes a Tor hidden service, and all connections between devices occur over Tor. Users can own multiple devices, including encrypted devices that do not have access to the message contents. Users add contacts by scanning a code on the other person's device, or by meeting them in a group, there is no global namespace of all users. Messages are scoped to their user or group, and gossiped between devices that are in scope and online. Devices coming online have an efficient way to catch up. Group states (name, admin status, etc) can survive a bad actor attempting to mess with history, so long as the majority of users are honest. The UI is built using Fyne. For more details, see the goals and design document.

Status

Things should be working pretty reliably, please open an issue if a feature in the UI is not behaving as expected. Bounce has not been audited by a third party yet, and should be considered experimental.

Platform<br>Status<br>Notes

Linux<br>Fully supported

macOS<br>Fully supported

Windows<br>Fully supported

Android<br>Fully supported, however there currently are significant performance issues.

iOS<br>iOS does not allow apps to run in the background. Implementing Bounce on iOS will require a light client that receives notifications from another instance of Bounce via APNs, and reaches out to that instance to send messages. This has not been planned yet, and would change the privacy model around metadata protection.

For information on what's coming, see the next steps document.

Installation

Binary Releases

Visit the Releases page to download the latest binaries.

Arch users can install bounce or bounce-bin from the AUR.

The best way to install Bounce on Android is with Obtanium.

Building from source

Bounce uses submodules, and should be cloned with:

git clone --recurse-submodules git@github.com:bounce-chat/bounce.git

Desktop

Development builds of the desktop app can be built on linux and macOS with go build. The first build will take a while as it compiles go-libtor. Windows is cross-compiled on linux using mingw32 by running make windows.

Android

Android is built on linux and requires dex2jar, gomobile, and gradle. Current build scripts have opinions about the location of the Android SDK that might not be appropriate for all environments.

The forked fyne tools binary must first be built with cd fyne-tools/cmd/fyne && go build

Run make android to create Bounce.apk, a debuggable development build.

License

Copyright 2026 Hayden Parker. Bounce is licensed under the MIT license unless otherwise specified. Design assets are licensed under CC BY-NC-ND.

About<br>A metadata-protecting distributed group chat application<br>Resources<br>Readme<br>MIT license<br>Activity<br>Custom properties<br>Stars<br>1 star<br>Watchers<br>1 watching<br>Forks<br>1 fork<br>Report repository

Releases

Contributors

Languages

You can’t perform that action at this time.

bounce chat android fyne group users

Related Articles