Inspiration

Ruh Halim began with a simple question: can a private journal feel warm, expressive and useful without sending intimate memories to a central media server? Emotions, photos, videos, voice notes and reflections are among the most personal data a phone can hold.

Every project I build starts from a desire to make everyday life easier through uncommon simplicity. I developed Ruh Halim while managing multiple chronic health conditions; on low-energy days, even journaling can feel demanding. That experience shaped the app’s calm, private, low-friction flow so recording an emotion takes less effort than carrying it alone.

What it does

Ruh Halim is a privacy-first mobile mood journal. A user can choose a mood, add reasons and notes, attach up to five photos, one short video or voice recordings, and revisit entries through a calendar and journal history. Live themes, reminders, streaks, statistics, PDF reports, biometric protection, and multilingual support—including Turkish and English—make the daily ritual feel personal.

For cloud continuity, users can connect Google and back up directly to the hidden app-data area of their own Google Drive. The app does not require a shared media database. New media is uploaded only once, resumable transfers recover from interruptions, and foreground progress keeps long operations visible. On a new device, the small journal index is restored first so the app becomes usable quickly while photos and videos continue in the background.

How we built it

The app uses React, TypeScript, Vite, Capacitor 8, Android Java plugins, Google Sign-In and the Google Drive API.

During OpenAI Build Week, Codex with GPT-5.6 helped us meaningfully extend and harden the existing product. We added incremental Google Drive backup and restore, resumable media uploads, automatic latest-backup recovery, merge-safe same-day entries, faster cached media previews, foreground transfer feedback, Android lifecycle and system-bar fixes, and regression coverage for the highest-risk flows.

Codex was used as an engineering partner: inspecting the existing architecture, tracing failures from real-device screenshots and Android crash logs, proposing safer data flows, implementing native and TypeScript changes, running tests and builds, and iterating on UI behavior. GPT-5.6 helped reason across the React UI, Capacitor bridge, Android lifecycle, Drive API and privacy constraints.

Challenges

Large videos exposed difficult mobile problems: upload time, process death, Base64 memory expansion and understandable progress feedback. Restore originally hit Android out-of-memory failures when large native payloads were serialized through the Capacitor bridge. We redesigned the flow around file references, smaller metadata manifests and background media hydration. We also had to make same-day updates merge text and media instead of silently replacing them, and keep live rain-theme lightning synchronized with thunder audio.

Accomplishments

  • Direct user-owned Google Drive backup instead of a shared media backend
  • Incremental, resumable uploads that avoid sending unchanged media again
  • Fast index-first restore with background media recovery
  • Merge-safe daily entries
  • Faster cached photo and video previews
  • Foreground progress for long transfers
  • Regression tests for backup, restore, ads, events, mood merging and live-theme synchronization
  • A polished multilingual and theme-rich mobile experience

What we learned

Privacy architecture and performance are inseparable on mobile. Avoiding a central media server reduces platform cost and trust risk, but makes lifecycle, storage permissions and recovery design more important. Codex was most valuable when it connected evidence from UI reports, logs, native code and tests into one iteration loop.

What's next

Apple Sign In and private iCloud backup, optional local encryption, cross-device conflict resolution, and privacy-preserving regional mood insights.

Built With

Share this project:

Updates