Skip to main content

Encryption FAQ

What data is encrypted?
Your watches (titles, notes, scores), taste summaries, recommendations and contacts. When encryption is on, the database only stores ciphertext — the individual fields are emptied.
What if I forget my passphrase?
Use your recovery key (the one you downloaded when enabling encryption) to unlock or disable encryption. If you lose both your passphrase and your recovery key, your data is permanently unrecoverable — there is no server-side reset.
Can I use encryption on multiple devices?
Yes. On a new device, you'll be asked for your passphrase on first sign-in. The encrypted data stays in the cloud — only the key lives on your device.
What happens if I clear my browser data?
Your key is removed from local storage, and you'll see the passphrase screen on your next visit. Enter your passphrase or recovery key to continue. Your encrypted data in the database is unaffected.
Do AI features still work?
Yes. When you use taste profiling or recommendations, your data is decrypted in server memory for AI processing, then the results are encrypted before storage. The server never stores your key or your plaintext data.
How is my key protected?
Your passphrase derives a wrapping key (PBKDF2, 600,000 iterations) that encrypts your master key. The master key encrypts your data with AES-256-GCM. Neither your passphrase nor your master key is stored on the server — only the wrapped (encrypted) master key is kept in your profile.
Can I change my passphrase?
Not yet. To change it, disable encryption (which decrypts all your data), then enable it again with a new passphrase. This generates a new recovery key.
What is the recovery key?
The recovery key is your master encryption key in raw form. It's shown once when you enable encryption and can be downloaded as a text file. It unlocks your data even if you forget your passphrase. Keep it somewhere safe and offline.

Encryption uses AES-256-GCM with PBKDF2 key derivation. All cryptographic operations happen server-side using Node.js crypto. The encryption key travels to the server with each request but is never stored.