White Noise
A secure, private, and decentralized chat app built on Nostr, using the MLS protocol under the hood.
Overview
White Noise aims to be the most secure private chat app on Nostr, with a focus on privacy and security. Under the hood, it uses the Messaging Layer Security (MLS) protocol to manage group communications in a highly secure way. Nostr is used as the transport protocol and as the framework for the ongoing conversation in each chat.
Status
The Spec
White Noise is an implementation of the NIP-EE spec.
Releases
For the easist, quickest way to get started using White Noise, check out the releases page.
Building White Noise Yourself
Want to build the code yourself? Here's how...
- Clone the repo:
git clone https://github.com/parres-hq/whitenoise.gitandcd whitenoise. - Run
bun installto install the front-end dependencies.
MacOS
- On MacOS, running
bun tauri buildwill create both a.appbundle and a.dmginstaller. Install the.dmgin the same way you would install any other MacOS application. - To update the app, run
git pullandbun tauri buildagain. The app very much alpha so expect that updates will break your groups and chats. If you end up in an unrecoverable state, you can try deleting the~/Library/Application Support/org.parres.whitenoisedirectory and running the app again. When you delete that directory, you're deleting all the MLS group state so you'll need to re-create or re-join the groups you had before and your previous history will be lost.
Linux
- To provide a stable and reproducible build environment for Linux, the provided Dockerfile can be used:
docker build -t tauri-app -f Dockerfile.linux_build .
docker run --rm -v $(pwd):/app tauri-appThe resulting build artifacts (.deb, .rpm and .AppImage packages) will be created in the src-tauri/target/release/bundle directory.
Windows
- I haven't tried the app on Windows yet. Let me know how it goes!
Android
- To build the app on Android, it's easiest to run
bun tauri android build --apk --split-per-abi. This will generate a number of APKs, one for each architecture. You can then install the one that matches your phone.
iOS
- Right now, you can't build for iOS.
Contributing
White Noise is built with Tauri & SvelteKit. To get started contributing you'll need to have the Rust toolchain installed, the Bun JavaScript package manager, and Docker.
- Clone the repo:
git clone https://github.com/parres-hq/whitenoise.gitandcd whitenoise. - Run
bun installto install the front-end dependencies. - In one terminal start the development services (two Nostr relays; nostr-rs-relay and strfry and a blossom server) by running
docker compose up. - In another terminal, run
bun tauri devto start the app. If you want to see more comprehensive logging, runRUST_LOG=debug bun tauri dev.
You'll have hot reloading and any changes to the rust code will trigger an automatic rebuild of your app.
Formatting, Linting, and Tests
Before submitting PRs, please run the commad to check formatting and linting and run all tests:
bun run check-allStorybook
To run Storybook locally to see component documentation:
bun run storybookThis will start Storybook on http://localhost:6006
License
White Noise is free and open source software, released under the Gnu AGPL v3 license. See the LICENSE file for details.