Data ownership

Your journal belongs to you. You can check.

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, using a small open tool we publish. This page explains exactly how.

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. Your journal stays sealed for us, and for anyone who breaks into our servers.

Export everything, any time

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.

Import and restore, without loss

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.

Readable without Maat

If Maat disappeared tomorrow, your backup would still open. We publish a small, readable Python script that decrypts any export with your recovery phrase. It runs on your own computer, with no account and no server.

How it works

From your voice to a file you control

  1. Your recovery phrase is the key

    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.

  2. Every entry is sealed individually

    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.

  3. Sync stores ciphertext only

    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.

  4. Export, import, or leave

    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

Open your export on any computer

A single Python file, about as long as this page, with its source in plain view. Point it at your export, type your recovery phrase when it asks (hidden, never saved), and get a readable text or JSON file. Installers for macOS, Windows and Linux are included.

./install.sh
./venv/bin/python maat_decrypt.py --input backup.json --format text
Recovery phrase: ************

Technical summary

Recovery phrase
12-word BIP39 mnemonic
Key derivation
BIP39 seed → HKDF-SHA256
Encryption
AES-256-GCM per entry
Ciphertext format
Base64(IV + ciphertext + tag)
Backup bundle
backup.json + audio files + manifest (zip)
Export modes
Encrypted (default) or unencrypted

Plain answers

Questions people ask before trusting us

Can Maat staff read my entries?

No. Entries are encrypted on your device and the key stays with you. Support can see that an account exists and how many entries it has. The content stays sealed.

What if I lose my recovery phrase?

Encrypted entries that sit on no signed-in device become unreadable, and we cannot bring them back. That is the price of real encryption. The app reminds you to store the phrase. If you prefer convenience over secrecy, you can export unencrypted.

Does the voice recording leave my phone?

For transcription, yes. Once, over an encrypted connection, to produce the text. The transcription provider keeps no copy of the audio. The recording itself stays in your app storage and is part of your backup.

How do I delete everything?

Account → Delete account in the app, or the request form linked below. Server rows are removed. Your local data goes when you uninstall. Take an export first if you want to keep a copy.

Privacy policy · Delete your account · Decryption tool

Start today

A private journal you can take with you.