The server never sees your plaintext – even someone who controls or hacks it only gets unreadable gibberish.
Live demo
This is how every message travels through txts: encrypted on your device, an unreadable blob through the server, plaintext again only at the recipient.
Architecture
The entire design follows one rule: the server must never see plaintext or private keys. Everything security-critical happens on your device.
The app runs on iOS, Android, Windows, macOS and Linux – one codebase for every platform. The UI deliberately contains no crypto of its own.
The only place where encryption happens: a lean Rust core with OpenMLS (MLS, RFC 9420) – right on the device.
Private keys live in your operating system's Keychain or Keystore. They never leave the device.
A "dumb mailbox": it stores encrypted blobs and delivers them in real time. Self-hosted on your VPS.
Security
txts invents no crypto of its own – the single most common source of failure. Instead: the standardized MLS protocol via the proven open-source library OpenMLS.
| Data | Does the server see it? |
|---|---|
| Message content | ✕ No – only ciphertext blobs |
| Private keys | ✕ No – they never leave the device |
| Media & files | ✕ No – uploaded locally encrypted |
| Public KeyPackages | ✓ Yes – that's their purpose, they hold no secrets |
| Metadata (who, with whom, when) | ✓ Yes – only what delivery technically requires |
Download
txts runs from one codebase on all your devices. You can download the Windows app right now – iOS, Android, macOS and Linux follow.
For iPhone and iPad
on the App Store
For all Android devices
on Google Play