"Your data is encrypted in transit and at rest" is printed on the privacy page of nearly every journaling app, and it's almost always true. It's also, on its own, close to meaningless as a privacy guarantee — because it describes protection against everyone except the one party in the best position to read your journal: the app's own server.

What "encrypted in transit and at rest" actually covers

These two phrases have precise, narrow meanings:

Both of these protect you from a third party intercepting the connection, or a burglar stealing a server. Neither one protects you from the server itself — the party that holds the decryption key and has to use it to do literally anything with your data, including running the AI feature you signed up for.

Where the plaintext actually goes

Here's what happens, step by step, when a cloud-AI journaling app generates something like a daily reflection or answers "what's been stressing me out lately":

You write an entry. It's encrypted on your device before it's sent.
It travels over TLS to the server. Protected in transit.
It's written to a database, encrypted on disk. Protected at rest.
The AI needs to read your entry to respond to it — so the server decrypts it back to plaintext, in memory, to hand to the model.
That plaintext usually leaves the company's own infrastructure entirely — sent to a third-party AI API (OpenAI, Anthropic, Google, whoever they've integrated) for inference.

That fourth and fifth step is the actual privacy surface. It's rarely mentioned on the marketing page, because "encrypted in transit and at rest" is true right up until the exact moment your journal needs to be useful — and then it briefly, necessarily, isn't.

This isn't a bug in any particular app. It's an unavoidable consequence of running AI in the cloud on encrypted data: the model can't reason about ciphertext.

"Zero-knowledge" AI is not really a thing yet

There's active research into techniques like homomorphic encryption and secure enclaves that could let a server compute on data without ever seeing it in the clear. It's real, it's promising, and it is nowhere close to running a useful generative language model at consumer scale on a phone-app budget today. Any journaling app claiming "encrypted AI processing" in 2026 is almost certainly describing encryption at rest plus a brief decrypted window during inference — not literal zero-knowledge computation. Worth asking directly if a company's marketing implies otherwise.

The only clean fix: don't decrypt anywhere but the device

The straightforward way to close this gap is to never let the plaintext exist outside hardware you personally control. That's the entire architectural premise behind MirrorNotes:

This is a strictly harder engineering problem than calling a cloud API — a 1B on-device model is a real constraint, and I've written about what that trade-off costs elsewhere. But it's the only version of "encrypted" that actually means what people assume it means when they read it on a privacy page.

MirrorNotes

Private AI journaling for iPhone. The AI reads your entries only on your device — there's no server-side decryption step at all.