Inspiration -

My dad missed his blood pressure medication for two days, and I only found out because I happened to call and ask. Nothing dramatic happened that time but it was enough to make me sit with an uncomfortable question: how many other families only find out about a missed dose by accident?

Most medication reminder apps solve a much smaller problem than the one that actually matters. They remind you. They don't tell anyone else if the reminder didn't work. For a healthy 25-year-old forgetting a vitamin, that's fine. For an aging parent managing blood pressure or heart medication, a missed dose that nobody notices is the actual risk not the forgetting itself, but the silence around it.

Vouch AI started from that gap: a medication app built not just for the person taking the medicine, but for the family member worrying about them from a distance.

What it does -

Vouch AI is an iOS medication reminder app with an escalating alert system instead of a single notification. If a dose is missed, it re-alerts after 5 minutes, then again after another 5 minutes. If all three alarms go unanswered, it automatically sends an SMS to a designated family member so the people who care are never more than one missed pattern away from knowing.

Beyond the core safety loop, it tracks adherence streaks, exports a PDF history for doctor visits, and lets a family set up a primary caregiver contact with proper SMS consent. The free tier covers the basic reminders; a Pro subscription unlocks the family safety net the SMS alerts, custom alarms, and reports.

How we built it -

The stack is SwiftData for local storage, Supabase for authentication and subscription status, RevenueCat paired with StoreKit for the subscription and free trial logic, and an SMS API for the family alerts. All pricing and trial values are fetched live from StoreKit rather than hardcoded, so App Store pricing changes never require a client update.

The onboarding flow was designed deliberately around trust: signup → onboarding questions → medication setup → family contact setup, all before any paywall is shown. Given this app deals with a parent's health routine, asking for payment before the person has even configured their first reminder felt backwards so the paywall only appears after setup is complete, framed around the features that matter most (family alerts, custom alarms) rather than gating the basic reminder itself.

Challenges we ran into -

The biggest one was foundational: local notifications, the obvious first choice for a reminder app, silently fail to fire when the device is locked, the app is backgrounded or force-quit, or the phone is on silent which is exactly when a missed-medication alert matters most. Discovering that mid-build meant migrating the core alarm system to AlarmKit, Apple's system-level alarm framework, which only ships on iOS 26+. That created a second problem: a real chunk of users are still on older iOS versions, so the app needs a fallback alarm path for pre-26 devices running alongside the AlarmKit path for newer ones two alarm systems that don't share logic and have to be kept in sync by hand.

A second challenge came from a background process added to keep home-screen widgets synced with medication status. It introduced a bug where the app gets stuck visibly pinned in the Dynamic Island after being swiped to the home screen, with no way to dismiss it by swipe or long-press and removing the background process to fix that breaks widget sync entirely. It's an unresolved trade-off we're still working through.

On the product side, the original design used a hard paywall immediately after onboarding. It made business sense on paper, but felt wrong the moment we actually walked through the flow asking someone to pay before they'd even trusted the app with their parent's medication schedule. We pulled it out in favor of the current freemium structure, and even then, some things took iteration: the free trial started at 7 days and was later cut to 3, on the reasoning that if the app hadn't proven its value in 3 days, a longer trial wasn't going to fix that.

What we learned -

The most important lesson had nothing to do with code: reliability isn't a feature in a health-adjacent app, it's the entire product. A missed notification in a to-do app is an inconvenience. A missed notification in a medication app is the exact failure mode the app exists to prevent so the bar for "does this actually fire, every time, under real conditions" is much higher than it first appears, and it's worth discovering that early rather than after launch.

We also learned to be honest about unfinished work rather than polishing it out of the story. The iOS 27 fallback-screen bug is still open. The Dynamic Island trade-off isn't solved. Building this in public, dead ends included, has been a better way to build trust with early users than presenting a smoothed-over version would have been.

What's next for Vouch AI -

Finishing the AlarmKit migration so it's the exclusive alarm mechanism on iOS 26+, with the fallback screen properly scoped to only pre-26 devices. A full visual redesign that keeps the brand purple as an accent rather than the dominant color throughout the UI. And continuing to grow through organic, zero-budget channels since the app's whole premise is that trust matters more than reach.

Built With

Share this project:

Updates

Submission history