All systems
Personal Project · 2026 Built & in daily use

Encryption first. Then health data.

A private, local-only journal that combines emotional reflection with health metrics (sleep, heart rate, exercise) in one encrypted space. Built for personal reflection — with an export designed for healthcare conversations.

Privacy by Design Health Integration Entry Structures Python · Flask · AES-256
1

The Problem

Health data and emotional data live in separate silos

Your iPhone knows your sleep, heart rate, steps, exercise. Your email has conversations that are sometimes revealing about how you're doing. A therapist has one hour a week. Your personal journal, if you keep one, is probably in a note app or cloud service you don't fully trust.

The problem: these data points are all real, and they're all separate. A bad night of sleep and a hard conversation that day are connected — they're part of the same picture. But there's nowhere to look at them together. The health metrics stay siloed in Apple Health. The emotional work stays in private documents. A healthcare provider or therapist has to reconstruct the picture from fragments.

I wanted to build a space where the mind and body data could live together, in a format that was mine first and sharable second. Where I could look back and see: "This week was hard emotionally, and my sleep and HR show it." And where that data could be exported in a way that was useful in a healthcare conversation, not just surveillance.

2

The Approach

Encryption by default. Privacy as the foundation.

If you're writing about mental health, emotional struggles, or health patterns, the default should be: this data doesn't leave your device. Not because you have anything to hide, but because you own this. Your private reflections shouldn't depend on trusting a company not to get hacked, or change their terms of service, or sell your data.

So: AES-256 encryption at rest. A passphrase you choose, never stored. Access the journal from your PC, or your iPhone over home WiFi, but the data never travels through a cloud. Runs as a local web server that only you control. If something goes wrong, you have the encrypted database file — you own it completely.

Then, on top of that privacy-first foundation, add health data (from Apple Health export) and structured reflection templates. The health data becomes context for the story — you're not just saying "I felt bad," you're seeing "I felt bad, and my sleep was fragmented, and my resting HR was 15 points higher than baseline."

3

What I Built

A personal health journal with structured entry types

The Core is a single Windows .exe file you double-click to start. It runs a local web server, accessible from your PC browser and from your iPhone/iPad over home WiFi. All data is stored as an encrypted SQLite database on your hard drive. The passphrase is used to derive the encryption key at login — it's never stored anywhere, just held in memory for the session.

Entry Types are templates for different kinds of reflection. Free-form entries are the default (date, title, body, optional mood check-in). Book Notes capture thoughts while reading. Conversation Prep helps prepare for difficult conversations (what you want to say, what you anticipate, how it actually went). Pattern Log documents patterns as they're noticed. Activation Log is a fast capture for emotional intensity in the moment (what triggered it, body sensations, intensity, how long to return to baseline). Each type is structured differently because the work is different.

Health Integration pulls in Apple Health exports: resting heart rate, HRV, sleep duration, steps, active minutes. You export from your phone whenever you want, import into the app. The health data sits quietly on each entry — you can see what your body was registering on days that were emotionally significant. Over time, this builds a picture of how sleep, HR, exercise, and emotional state correlate for you specifically.

Categories let you organize entries by context: "Me Only," "For Conversations," "For Pete" (if sharing with family), "To Read," "Book Notes." These can be hidden with one click if someone walks by your screen.

Export is deliberate. There's an encrypted backup (just the raw database file, can be copied anywhere). There's a JSON export (all data decrypted to JSON format, for analysis or archival). And there's a generalized text export designed for sharing with a healthcare provider — structured, readable, focused on the health patterns and reflections, not a raw dump.

Privacy by Default

Encryption First

Everything encrypted at rest. The database file is unreadable without the passphrase. The passphrase is never stored. This is the foundation, not a checkbox feature.

Data Integration

Mind + Body

Apple Health metrics (sleep, HR, exercise) live alongside emotional reflection. The picture becomes whole — you see the correlation, not just the isolation.

4

Architecture

Local-first, privacy-first infrastructure

The app is a single .exe file bundled with Python + Flask using PyInstaller. No external dependencies. No cloud calls. On startup, it launches a local web server on port 5000, accessible from your PC browser at http://localhost:5000. Your iPhone connects to the same server over home WiFi using the PC's local IP address — which is shown in the app's Settings.

Data is stored in SQLite on your hard drive (location you choose on first run). All user content is encrypted using AES-256-GCM. The passphrase is used to derive the encryption key via PBKDF2-HMAC-SHA256 (100,000 iterations, 16-byte salt) at login, then held in memory only for the session. Wrong passphrase = nothing readable, ever.

Sessions expire on inactivity (configurable: 5, 10, 20, 30 minutes, or never). Browser localStorage is never used for journal data — only the unsaved form text is stored locally for drafts. Once you log out, the session is gone.

5

The Data

In daily use since launch

The journal has been used almost every day since it launched. The app now holds months of entries, across multiple entry types, with full Apple Health history integrated.

Health + Emotion

Sleep duration, resting HR, HRV, and exercise data sit alongside journal entries, revealing personal patterns and correlations.

Multiple Structures

Different entry types for different purposes — free reflection, book notes, conversation prep, activation logging — rather than one generic note field.

The patterns that emerge are personal and concrete. You begin to see: "Weeks with fragmented sleep also had more activation incidents." Or: "HR variability dropped when I was working through a hard topic in therapy." These aren't clinical judgments — they're your own data, telling you about yourself.

6

Lessons & Next Steps

What works. What's being learned.

The encryption + health integration core is solid. Daily use proves it works as designed. The export functions for both personal analysis and healthcare sharing are complete. The multiple entry types have proven useful — you do use the Pattern Log differently than the Conversation Prep template.

What I'm still learning: how the patterns in this data actually predict or inform wellbeing over time. The tool is built to support that kind of reflection — you can see the data — but that's aspirational work. I'm testing the hypothesis that having this holistic view (mind + body + structure) will make the patterns visible faster than they would be without it. That's still unfolding.

The real value here isn't in my design choices — it's in having a space that's entirely yours, where health data and emotional reflection can live together, encrypted and private, and can be shared with healthcare providers in a way that serves you, not just the provider's convenience. This app is built for someone who wants to think deeply about their own wellbeing and actually own the data.