Rebuilt the app while it stayed live
Moved to Riverpod 3 and Drift screen by screen in both stores, then deleted the legacy services, models and DAOs.
Case study · 2024 – now
A private place for families to keep the ordinary days: photos, voice notes, letters and milestones, shared only with the people they choose.
01 · The product
Nothing is public and there is no feed. Parents invite a partner, grandparents and relatives, and choose who sees each memory. Over the years the app turns those moments into a timeline, growth charts and printable yearbooks.
02 · Architecture
That single boundary keeps the local database and Firestore in step, so the app works offline. Purchases are verified on the server before a plan unlocks.
Flutter app · iOS, iPadOS, Android
Firebase backend
App Store and Google Play receipts are verified here before a plan unlocks.
03 · Hard problems
Moved to Riverpod 3 and Drift screen by screen in both stores, then deleted the legacy services, models and DAOs.
Fixed new-device logins that pulled no data, comments that never synced in real time, and a re-entrancy bug that dropped sync passes.
Server-side verification for Apple and Google, the Play subscriptions v2 migration, Billing Library 8 before Google's deadline, and a fail-closed bug fixed.
Removed an N+1 query on the memories screen, made photos load lazily and split large screens into small widgets.
Firestore and Storage rules scoped to each family, plus per-memory visibility in the data layer.
Crashlytics with obfuscated builds and symbol upload on both platforms, and a fix for an iPad freeze caused by the system password prompt.
04 · Beyond the code
Product, UX and the warm "keepsake" paper visual style, store listings and screenshots in three languages, the Next.js marketing site, and the brand's social media, published with tools I built myself.
| Plan | Price | Includes |
|---|---|---|
| Essentials | $4.99/mo or $34.99/yr | Up to 3 family members, all memory types, cloud backup |
| Unlimited | $9.99/mo or $59.99/yr | Time Capsules, up to 10 members, yearbooks and keepsakes |
Stack
Flutter · Dart · Riverpod 3 · Drift · Firebase Auth, Firestore, Storage, Cloud Functions, FCM, Crashlytics · GoRouter · Next.js