Skip to content

LOCAL-FIRST SECURITY

Your journal lives on your iPhone. Encrypted.

Kept was engineered from the ground up without an account database or cloud sync server. All writing is encrypted with SQLCipher on your device, with keys held in the iOS Keychain.

How it works

Most digital journals store entries on remote servers, exposing private thoughts to server breaches and employee access. Kept keeps your database local. The encryption key is generated on your hardware and never leaves your phone.

Technical implementation

SQLCipher Database Engine

Every entry, timestamp, observation, and full-text search index is stored inside an AES-256 encrypted SQLite database using the SQLCipher extension.

iOS Keychain Hardware Key

The 256-bit cryptographic key is stored in the iOS Keychain under AFTER_FIRST_UNLOCK protection. It is never included in backup files and cannot be derived from the application bundle.

Sandboxed Photo Storage

Photos you attach are stored as ordinary files inside the app's sandboxed container, protected by your iOS device passcode.

FTS5 Full-Text Search Index

High-speed full-text keyword search runs locally through SQLite FTS5 external-content tables with automatic database triggers.

Technical specifications

AttributeSpecification
Database EngineSQLCipher (SQLite)
Encryption StandardAES-256
Key StorageiOS Keychain (AFTER_FIRST_UNLOCK)
Search IndexFTS5 External Content Tables
Biometric ProtectionFace ID / Touch ID
Cloud Sync DatabaseNone (Zero accounts)

Frequently asked questions

What happens if I lose my phone?+

The encrypted database is included in your encrypted iOS backup (iCloud or Finder). Restoring your device backup restores your journal.

Can the developers read my journal entries?+

No. There is no remote account database, and the decryption key exists only in your device's Keychain.

Explore other architecture deep dives

Ready to start with Kept?

Free to write, always. Encrypted on your device.

Download on the App Store