Glow needs a server to pass messages between people who are not online at the same time. Here is everything that server holds, and what it can make of it.

We want to be straight about that last row. End-to-end encryption protects the content of your messages. It does not hide the fact that two accounts exchanged a message at a particular time — the server has to know where to route it. Glow does not attempt to conceal that metadata, and you should not assume otherwise.

Each account has a keypair. Your device combines your private key with your friend's public key to derive a shared secret (X25519), and encrypts each message with it (XSalsa20-Poly1305). Only the two of you can derive that secret, so only the two of you can read the message.

Your private key is generated on your device. The copy stored on the server is encrypted with a key derived from your password, so it is useless to anyone — including us — without that password.

This has a consequence worth understanding: if you forget your password, your message history cannot be recovered. Not by you, and not by us. That is the cost of us genuinely not holding the key.

To notify you when the app is closed, we send a push notification through Apple (APNs) or Google (FCM). We do not put your message text in it. Instead we forward the same ciphertext your device would have received, and your device decrypts it locally to show the preview.

This means Apple and Google can see that a notification was sent to your device, but not what it says. If your device cannot decrypt it, the notification falls back to "New message".

Glow relies on a small number of providers, none of which receive your message content:

Glow is not directed at children under 13, and we do not knowingly collect data from them.

If this policy changes in a way that affects what we collect or how we handle it, we will update the date at the top of this page and note the change in the app's release notes.

Questions, or a request to delete your account: [email protected].