Inspiration

I ignore every reminder on my phone. I swipe them away without reading. But when my mom calls and asks "did you drink water? did you take your tablet?", I do it. About half of people with long-term conditions don't take their medicines as prescribed, and forgetting is one of the top reasons. The problem isn't the reminder. It's that nobody listens to an alarm.

So I built Nagly: reminders that sound like someone who loves you.

Who it helps

  • People on daily medicines. About half of people with long-term conditions miss doses. One medicine reminder is free forever, so nobody loses the reminder for their most important pill because they can't pay.
  • Older parents. Set it up for Amma or Appa in a voice they already trust, renamed to the real person, with big buttons and "Took it" in one tap on the reminder. A weekly summary from Insights can be shared with family (nothing is uploaded).
  • Anyone who ignores alarms: busy professionals, students, people living away from home. Supplements (vitamins, creatine, protein) bring younger, healthy people into the habit too.
  • Private by design: no account, works offline, health data never leaves the phone.

What it does

  • Water + meds + supplements. Log water with one tap, add pills, vitamins, creatine or protein from quick picks, and tap "Took it".
  • 15 voices in 5 families: Mom, Dad, Grandparent, Bestie and Spouse. Mom is free forever.
  • Make it yours: rename your persona to the real person, like "Subbu Amma", with your own emoji.
  • Mood engine: the persona is proud, worried or disappointed depending on how your day is going. The words change and so does the animation.
  • One tap on the reminder: +250 ml, +500 ml or "Took it" right from the notification.
  • History is a chat with your nagger, and your bond level grows as you stay consistent.
  • Tilt the phone and the water in the bottle stays level and sloshes.
  • No account, works offline, health data never leaves the phone.

Where to look (design)

  • Home: tilt your phone. The water in the bottle stays level and sloshes (accelerometer), every sip sends up bubbles, and hitting your goal throws confetti.
  • Moods you can see: the persona bounces when proud, wobbles when worried and sighs and sinks when disappointed. The words change with the mood too.
  • Typing dots: the persona "types" before each message, like a real chat, and History is that chat.
  • Time of day: the background tint follows the hour, from morning light to evening.
  • Make it yours: rename the persona to the real person ("Subbu Amma") with an emoji; the name shows everywhere, including the reminder.
  • Personal paywall: the persona you tried to unlock speaks on the paywall instead of a feature list.
  • Haptics when you pick a persona, in the add-reminder sheets and on the paywall; a bond level that grows as you stay consistent.
  • The GIFs in the gallery are real iPhone recordings.

How I built it

  • Flutter (one codebase for iPhone and Android), SQLite for local data, flutter_local_notifications for on-device nudges with action buttons.
  • RevenueCat for payments: Lifetime, Annual (with a 7-day store trial) and Monthly, plus a 7-day no-card welcome trial of everything. The paywall opens from 8 moments, each with a RevenueCat placement. A live targeting rule sends trial_end to an offering that opens on Annual and medication_limit to one that opens on Monthly, so I can change pricing without an app update.
  • OneSignal for cloud pushes and Journeys: win-back, streak celebrations (3 and 7 days) and trial ending. One template speaks in 15 voices using Liquid, and the push image is the user's own persona. Water logged and doses taken are reported back as outcomes.
  • RevenueCat Ads (Android only): rewarded ads only when you choose to watch one, to borrow a paid persona for 24 hours. The iPhone app has no ad SDK at all.

How it makes money

  • Free forever: Mom's voice, water tracking and one medicine or supplement reminder. Nobody loses the reminder for their most important pill because they can't pay.
  • 7-day welcome trial of everything, no card.
  • Nagly Pro through RevenueCat: Lifetime $29.99, Annual $19.99 (7-day store trial) or Monthly $1.99. Pro unlocks 12 more voices, custom names and unlimited reminders.
  • The paywall is personal: the persona you tried to unlock asks you to keep them. RevenueCat placements and targeting open the right plan for the moment (trial ending → Annual, a second pill reminder → Monthly).
  • On Android, opt-in rewarded ads (RevenueCat Ads) let you borrow a paid voice for 24 hours.

How OneSignal brings people back

Local reminders handle the day. OneSignal brings people back when they go quiet, always in their own persona's voice.

  • One template, 15 voices. Each push uses Liquid ({% case tag.persona_id %}) so Mom, Dad, Nonna or your Spouse writes it, and the push image is your own persona.
  • Win-back Journey ("Mom misses you"): no water logged for 2 days → a gentle push in the persona's voice (8 am–6 pm in the user's time zone) → wait 1 day → a guilt-trip push → an in-app "Welcome back" with a log button. Pushes carry +250 ml / +500 ml action buttons, and people leave the Journey as soon as they log again.
  • Trial-ending Journey: the day before the free trial ends, the persona asks to stay; the push opens the paywall and an in-app message follows.
  • Streak celebrations at 3 and 7 days.
  • Outcomes, not just clicks: water logged, goal met and dose taken are reported back to OneSignal, so I can see which message actually made someone drink.
  • Privacy: only 6 tags (persona, care mode, streak, last log time, trial start, Pro), never health data.
  • Results so far: the win-back Journey reached 28 users with a ~14% push click rate (4 clicks from 29 delivered), and 3 of the 4 people who saw "Welcome back" tapped it (75%).

Traction so far

  • Live on the App Store on Sep 25. 1.0.1 shipped the next day from user feedback; 1.0.2 (reminder buttons on iPhone) on Sep 29; 1.0.3 (in review) makes every tap save reliably.
  • 46 active customers in the first week on the App Store (RevenueCat), and the first paying subscriber.
  • OneSignal win-back Journey: 28 users, ~14% push click rate, 75% tapped the in-app "Welcome back".

Challenges

  • Writing 15 personalities that feel caring, not annoying, and funny without being mean.
  • Getting notification action buttons to log water with one tap on the reminder, on both platforms.
  • Keeping the iPhone build completely free of ad code while Android has rewarded ads.
  • First time shipping to both stores: privacy rules for many countries, store reviews, in-app purchases and promo codes.

What I learned

Tone matters more than features. When the reminder sounds like a person, people answer it. The first real users asked for creatine and protein reminders, so version 1.0.1 added supplements, the Spouse family and "Make it yours" the day after launch.

What's next

Android launch (in Google review now), shared family mode so a parent can see "took it" from their kid, and more languages.

Built With

Share this project:

Updates

Submission history