Encrypted before it leaves your phone
Each entry is encrypted with AES-256-GCM using a key derived from your 12-word recovery phrase. Our servers only ever store ciphertext. We cannot read your journal, and neither can anyone who breaches us.
Data ownership
Every entry is encrypted on your phone with a key only you hold. You can export everything, import it anywhere, and read it without Maat — with a small open tool we publish. This page explains exactly how.
Each entry is encrypted with AES-256-GCM using a key derived from your 12-word recovery phrase. Our servers only ever store ciphertext. We cannot read your journal, and neither can anyone who breaches us.
One tap creates a complete backup: all entries as JSON plus your original voice recordings, bundled as a zip. Encrypted with your recovery phrase by default — or unencrypted if you want plain files.
Move to a new phone or bring old entries back. Import merges: entries you already have are skipped, deleted or unreadable ones are restored, audio files are put back where they belong.
If Maat disappeared tomorrow, your backup would still open. We publish a small, readable Python script that decrypts any export with your recovery phrase. No account, no server, no us.
How it works
When you set up Maat you receive 12 words (a standard BIP39 phrase). They generate your master key on the device. We never see the phrase — which also means we cannot reset it. Keep it somewhere safe.
Text, mood note and metadata of each entry are encrypted with AES-256-GCM. Only the date and mood rating stay readable so the app can search and show trends quickly.
Optional cloud sync carries the encrypted entries to your other devices. The server never holds a key. Transcription runs on your recording once and the audio is not retained by the transcription service.
Backup & Import lives in the app menu. Export to Files, iCloud Drive, a USB folder or any share target. Import from any of them. Deleting your account removes every row we hold.
The decryption tool
A single Python file, about as long as this page, with its source in plain view. Put your recovery phrase in a local .env file, point it at your export, and get a readable JSON or text file.
./install.sh
echo 'RECOVERY_PHRASE="your 12 words here"' > .env
python maat_decrypt.py --input your_export.json --format text
Plain answers
No. Entries are encrypted on your device and we never receive the key. Support can see that an account exists and how many entries it has — not what is in them.
Encrypted entries that are not on a signed-in device become unreadable, and we cannot recover them — that is the price of real encryption. The app reminds you to store the phrase, and unencrypted exports are an option if you prefer convenience over secrecy.
For transcription, yes — once, over an encrypted connection, to produce the text. The transcription provider does not keep the audio. The recording itself stays in your app storage and is part of your backup.
Account → Delete account in the app, or the request form linked below. Server rows are removed; your local data is removed when you uninstall. Take an export first if you want to keep a copy.
Start today