<aside>
🚧 This page is in progress and will be updated.
</aside>
- We use Rust for critical parts of our app and it erases whole classes of conventional attacks (ie. "Use after free"). Our media pipeline and WebRTC stack, WebSocket connection, file handling, updater, and more utilize Rust. We use safe abstractions of Rust to interface with native Apple APIs.
- We use Tauri for our desktop apps — a security focused desktop app platform that uses Rust and renders a thin UI layer in platform’s native web view locally with strict measures that disallow any outside/remote access to system at its core read more
- Voice and screen-share communication are end-to-end encrypted. Encryption and the WebRTC protocol implementation we use and contribute to is written in Rust and open source view source our media pipeline sits on top of str0m.
- Our apps receive frequent updates (+1 per week) with latest versions of upstream packages we use to ensure latest patches. We install our critical dependencies using git hash revisions to minimize the possibility of supply-chain attacks.
- We ship everything in the app in signed and notarized binaries and not ASAR bundles (used in Electron based apps like Slack, Discord, etc)
- Cloud messages, files, sensitive data, rich previews, etc are encrypted at rest and in transit. We’re strict about handling encrypted data and we never keep them in memory of server more then the time required to send them to the authorized client. We never log encrypted data. End-to-end encryption for threads as an option coming soon.
- Our desktop client doesn’t require excess permissions ie. access to file system outside of the application’s cache and application support directories. And all other permissions are optional. Also, we only ask for them when you try to use the feature. ie. we only ask for microphone permissions if you want to start a voice chat.
- All communication are done over SSL and TLS 1.3.