Inspiration
I talk to myself constantly — meetings, half-formed ideas, 2am thoughts I know I'll forget by morning. I tried every voice memo app out there, and they all have the same dead end: they save audio, but they don't understand it. Six months later you're scrubbing through forty unlabeled recordings hoping to find the one where you said something about pricing. That gap — between recording your voice and actually remembering what you said — is what Memorly is built to close.
What it does
Memorly turns spoken memories into something you can actually search, ask questions of, and get reminded about — with zero manual effort after you hit record.
- One-tap record, auto-understand. Every recording is transcribed, summarized, and mined for action items, decisions, and events automatically — no typing, no tagging.
- Ask it out loud. Tap the mic in Search and ask a real question — "what did I decide about pricing last week?" — and Memorly searches across every memory you've ever recorded and speaks the answer back. Not a keyword match. An answer.
- Smart reminders. If you say "remind me to call the vendor at 4pm," Memorly extracts the date/time and schedules a real phone notification automatically — no separate reminder app needed.
- Memory Chain + Memory Map. New memories automatically link to related ones you recorded weeks ago — no folders, no tags. The Memory Map visualizes your entire memory history as a living, spring-embedded node graph.
- Weekly Recap. Every week, Memorly narrates your week back to you in its own voice, plus Pro users get topic-level insight into what they've actually been talking about over time.
- Real subscriptions. Pro is powered end-to-end by RevenueCat, with real Google Play Billing in production.
How we built it
Flutter + Dart for a single Android codebase, with GetX for state/DI and go_router for navigation. Recordings and summaries persist locally in Hive — no backend, no account required to use the core app.
The AI pipeline is: record, then Groq Whisper transcription, then Gemini for structured summarization (topics, action items with due dates, decisions, events), then local embeddings for retrieval-augmented voice search, so the spoken-question feature is genuine RAG, not a scripted response. Extracted due dates flow straight into flutter_local_notifications to schedule real on-device reminders.
Subscriptions and entitlements run entirely through RevenueCat on top of Google Play Billing, including a coupon-redemption path on the paywall.
Challenges we ran into
The nastiest bug was invisible in debug builds and only showed up in release: flutter_local_notifications persists scheduled reminders via Gson, which needs Java generic-type info at runtime — and R8 strips that by default in release builds, silently crashing every scheduled reminder with "Missing type parameter". It took pulling real crash stacks off a physical device via adb to catch it, and the fix was a set of Gson/TypeToken ProGuard keep rules.
I also hit real-money purchase flows that completed with no error but never actually granted entitlement — traced to the purchase/restore calls not verifying the post-purchase entitlement state, which I fixed by making both paths fail loudly and honestly instead of failing silently. And because transcription and summarization are two sequential network calls, a reminder set for "5 minutes from now" could have its due time pass during processing — solved with a short grace window so a just-missed reminder still fires instead of silently vanishing.
Accomplishments that we're proud of
Getting a genuine RAG pipeline — spoken question in, synthesized spoken answer out — running smoothly on a phone, built solo, end to end. The Memory Map's spring-embedder layout is hand-built, not a stock chart widget, and it's the single feature every tester reacts to first. And RevenueCat is fully wired into a real, live Play Store listing, not a demo stub.
What we learned
That the gap between "works in debug" and "works in a real release build" is bigger than it looks — R8/ProGuard silently breaking a third-party plugin's persistence layer is the kind of bug that never shows up until a real user is holding the phone. Also: async AI latency needs to be a first-class UX concern, not an afterthought — a reminder pipeline that assumes instant processing will quietly fail for real users.
What's next for Memorly
iOS support, cross-device sync for memories (currently fully local), calendar integration for detected events, and a home-screen widget for one-tap recording without opening the app.
Log in or sign up for Devpost to join the conversation.