📓

// Case Study · 02 · Android App

MemoDate

Relive Your Journey.

TypeAndroid App
StackAndroid · Google Drive API
Status● Live on Google Play
Year2025
StudioFerryPot · Jayy
0
Servers used
100%
Private to user
Drive
Your cloud, your data
2025
Shipped

// The Problem

Journals are personal.
Why do apps own your words?

The Gap
Every journal app stores your data on their servers

Day One, Notion, even Google Keep — they all store your private thoughts on someone else's server. Your most personal memories are sitting in a database you don't control, behind a subscription you might cancel. That felt wrong.

The Vision
Your memories live in your Google Drive. Not ours.

What if a journal app stored everything directly in your own Google Drive? No server, no subscription, no company owning your data. Just you, your phone, and your Drive. MemoDate is that app — we literally have zero access to your journals.

// What it does

Your journal. Your cloud.
Your rules.

☁️
Google Drive Sync

Every entry saves directly to your Google Drive as a structured file. Accessible from any device, forever, even without the app.

🔒
Zero Server Architecture

FerryPot has no backend, no database, no server. Your data never touches our infrastructure. Total privacy by design.

📝
Rich Entry Editor

Write freely with mood tags, weather context, location stamps, and photo attachments — everything that makes a memory complete.

📅
Timeline View

Scroll back through your life month by month. See entries as a beautiful timeline — not a flat list of notes.

🔍
Full-text Search

Search across all your entries instantly. Find that memory from two summers ago in seconds.

🌙
Daily Reminder

Optional gentle nudge at a time you choose — because the habit of writing is what makes a journal valuable over time.

// Tech Stack

Built with zero servers.

The entire backend is your Google Drive. That constraint shaped every technical decision.

Android (Kotlin) Google Drive API v3 Google Sign-In Room DB (local cache) Jetpack Compose WorkManager (sync) Gson (JSON entries) Glide (photo loading) Material Design 3

// Key decisions

Privacy-first means
no compromises.

01 / No backend at all
Google Drive IS the database

I stored entries as structured JSON files in Drive — one file per entry. This meant no Firestore, no server costs, no privacy policy exceptions. Drive's API handles versioning, backups, and multi-device access for free.

02 / Local cache with Room
Offline reads, Drive writes

Room DB caches all entries locally. Reads are instant. Writes go to Drive via WorkManager background sync — so the app feels fast even on slow connections.

03 / Jetpack Compose for UI
Declarative UI for a content-heavy app

Compose made the timeline and editor much easier to build than XML. State-driven rendering meant the UI always reflected the sync state without manual refresh logic.

04 / Google Sign-In only
One auth provider, by design

Since the storage is Drive, Google Sign-In is the only option — and that's actually a feature. Users trust Google with their data already. No password to forget, no extra account.

// Lessons learned

What shipping
teaches you.

✓ What worked

Zero-server architecture was the biggest differentiator. Users immediately trusted the app more when they saw their Drive folder filling up with their entries.

! What was hard

Drive API rate limits — Google throttles API calls per user. Had to build smart batching and retry logic to avoid hitting limits during bulk entry loads.

✓ What worked

Jetpack Compose made the timeline beautiful and easy to maintain. The animation and state handling was far cleaner than XML views would have been.

! What was hard

Conflict resolution — if a user edits an entry offline on two devices, which version wins? Implemented a timestamp-based last-write-wins strategy.

✓ What worked

The privacy story resonated. "We literally can't see your data" was a genuine differentiator that drove word-of-mouth installs.

! What I'd do differently

Build the photo attachment feature first — it was the most requested feature and I shipped it late. Memories need photos.

Start your journey
with MemoDate.

Live on Google Play · Your data stays in your Drive · Always free

Visit MemoDate site ← Back to Studio
← PreviousBudgetBeeExpense tracker · Firebase · Excel export Next →NearNodeOff-grid P2P messenger · AES-256