Create a chat, invite people with a link or a QR code, and talk. Every message is encrypted on your device with keys that never leave it, relayed through iCloud when there is internet, and sent directly between nearby devices over Wi‑Fi when there is not. Nothing to sign up for, nothing to hand over.
In TestFlight, App Store to follow.
The people in the chat, and no one else. Every message, photo, file and voice note is encrypted on your device with AES‑256‑GCM before it goes anywhere. The keys are generated on the device and kept in its Keychain. Prava Labs runs no servers and holds no keys.
Not for the people near you. Members on the same Wi‑Fi network, or within peer‑to‑peer Wi‑Fi range, exchange messages directly between their devices: no cell service, no hotspot, no server. When the internet is back, iCloud carries the rest.
Laid out like Messages, so nobody has to learn it. Encrypted underneath, so nobody has to think about it.
Nobody joins a chat without an invite from someone already in it. Share a link or show a QR code; invites expire on a schedule you choose, from an hour to 30 days. Owners and admins promote, demote, remove and block.
Replies, reactions with any emoji, forwarding, copy, typing indicators, delivery and read receipts, link previews, and keyword search across every chat with the match highlighted. Receipts and typing are each a switch you control.
Photos, videos, documents and voice messages, each encrypted with its own key before it leaves the device. View‑once photos are gone after one look. Share into a chat from any other app.
From 5 seconds to a week. Expired messages are deleted on every member's device, and “delete for everyone” does what it says.
Every member has a safety number and a QR code. Compare them in person and mark the member verified. If a member's identity key ever changes, everyone in the chat is told before they send another word.
Face ID, Touch ID or Optic ID before the app opens, and a cover over your chats in the app switcher. On iPhone and iPad; the Mac keeps its own lock.
When someone screenshots a chat on iPhone or iPad, the other members are told. It is detection, not prevention: no platform can block a screenshot, and the page will not pretend otherwise.
Back up a chat's settings and member roster to a file encrypted with the chat's own key, and restore it on another device. Message history can be exported as encrypted metadata; the text itself stays where it was written.
Four steps, and the first one is the whole sign-up.
The app generates a cryptographic identity on your device the first time it runs. That is the account. Pick a name in Settings if you like; nothing is registered anywhere.
Create a chat and share an invite link, or show the QR code to someone standing next to you. The link is the key to the door, so hand it over the way you would a key: in person, or over a channel you trust. It expires when you say.
Messages go straight to nearby members over Wi‑Fi and through iCloud to everyone else, whichever is available, both at once. A member who is unreachable gets the message when they come back.
Compare safety numbers with a member in person and mark them verified. From then on, a changed key raises an alert and clears the badge until you have checked again.
Encryption is not a mode you switch on. There is no unencrypted mode. This is exactly what each thing looks like once it has left your phone.
| What | How It Travels |
|---|---|
| Message text | Ciphertext — AES‑256‑GCM, under a key derived for the chat and the recipient |
| Photos, videos, files, voice notes | Ciphertext — each attachment under its own AES‑256‑GCM key |
| Reactions, receipts, deletions | Ciphertext — the same envelope as a message |
| Your keys | Never — generated on the device, kept in its Keychain; there is no key server |
| Your display name and an app-generated id | Readable — so members can find you; there is no phone number, email or real name to leak |
| Who messaged whom, and when | Readable by the relay — iCloud needs sender, recipient, chat id and time to deliver a record. It never sees content |
Everything is CryptoKit: Curve25519 identity keys, HKDF‑SHA256 key derivation, AES‑256‑GCM. Standard algorithms, no proprietary cryptography, nothing invented here.
Both transports run at the same time. When a member's device is reachable over Wi‑Fi, the message goes there directly and wins; otherwise it goes through iCloud; if neither is available, it waits and goes when one is.
| What | Needs the Internet? |
|---|---|
| Messages to members nearby | No — direct over Wi‑Fi: the same network, or peer‑to‑peer Wi‑Fi between the devices |
| Creating a chat, an invite, or scanning a QR code | No — it all happens on the device |
| Smart replies, summaries, translation | No — Apple's on-device model; nothing is sent anywhere |
| Reading what you already have | No — your chats live on your device, not in a cloud you fetch from |
| Messages to members elsewhere | Yes — relayed through iCloud, encrypted; an iCloud account signed in is all it takes |
| Apple Watch | Yes — the Watch talks to iCloud only; nearby-only messages reach it once they are relayed |
Nearby means Wi‑Fi. Pravida does not use Bluetooth, and messages do not hop from device to device to reach a third; each member is reached directly or through iCloud.
Native SwiftUI on each platform, following the Human Interface Guidelines rather than fighting them.
Messages, Mesh and Settings in three tabs. App Lock, the privacy cover, screenshot alerts and the QR scanner live here. Everything works with the screen off, including the notifications that let you reply inline.
One Messages-style window: the chat list beside the chat. On the Mac it is a native, sandboxed app with keyboard shortcuts for Mesh and Settings, not a phone app stretched to fit.
A standalone Watch app that shares your iPhone's identity, so members see one of you. Read, dictate, send a voice message or a tapback from your wrist, with an unread-count complication.
On devices with Apple Intelligence, Pravida suggests replies, summarises what you missed and translates messages, entirely on the device. A sentiment check catches a message you might regret before it sends. One switch turns all of it off.
It is not a Signal‑protocol messenger. Pravida uses Apple's CryptoKit with standard algorithms, and a message can only be read by the members it was encrypted for; but it does not yet have forward secrecy, so a key that leaks later would expose earlier messages under it. That work is on the roadmap, and this page will change when it lands.
The right mental model: the invite link is the key to the chat. Anyone who holds it can join until it expires. Share it the way you would share a key.
It does not hide who you talk to from your own iCloud account: the relay sees ids and timestamps, never content. Screenshot alerts tell members a screenshot was taken; nothing can stop one. The Watch needs the iPhone app opened once and the same iCloud account. There are no voice or video calls, no message editing, and no Android or web clients in this build.