← All work
05 / Thoughts → Encrypted

MyJournal

A local-first, encrypted journaling app that never sends a single entry off your device.

TauriReactTypeScriptRustSQLiteAES-256-GCM
View repository ↗Sole developer
MyJournal screenshot
The problem

Cloud-synced journaling apps trade privacy for convenience — your most private writing sits on someone else's server, one breach away from exposure.

The system

Built with Tauri and a Rust backend, MyJournal stores every entry in a local SQLite database encrypted at rest with AES-256-GCM, keyed by a master password run through Argon2id and never stored on disk. There's no cloud database and no required online account; the app works fully offline, with room to plug into local AI tools like Ollama.

The hard part

Getting the crypto right without a server to lean on. Key derivation, zeroization, and the lock/unlock vault flow all had to hold up with zero backend to fall back on if something went wrong client-side.

Result

A journal that's genuinely private — encrypted, offline, and inaccessible to anyone without the master password, including the developer.

Top