Problem
My partner and I have a French bulldog, Hanx. Every so often, the same debate: when did we last bathe her? We never knew - we'd argue, give up, and let her go until the couch felt unpleasant, then bathe her and reset a clock we also never tracked.
I wanted an app for it, but nothing fit:
- Not a reminder - the interval depends on how muddy she got, not a fixed schedule
- Not a habit tracker - daily/weekly logging is wrong for a rough, irregular cadence
- Not a to-do - there's no deadline. I just wanted to see: it's been 23 days
The pattern generalized instantly - bed sheets, the oven, car service, checking in with a friend. Things that need doing but resist a schedule.
Researching the category, I found Reddit threads back to 2016 asking for exactly this app. The gap between "habit tracker" and "calendar reminder" had been open for a decade.
My Role
Ago is a solo project - I owned the market-gap research, UX and visual design, the App Store listing, and launch. Claude Code ran through every phase: clustering review research, building interaction variants as branches, writing production code, preparing the release. No team, no handoff. The app is the direct output of the decisions below, built the way I describe in How I build.
Decisions
Calm as the product
The obvious playbook is the streak model - Duolingo-style daily chains, achievement unlocks, guilt-framed nudges. I considered it and deliberately went the other way.
- The research pointed away from gamification. Mapping 15 apps and clustering 500+ App Store reviews with Claude in an afternoon, the recurring pattern was resentment: "I get angry at notifications and rebel against my own authority."
- Streaks work for language learning because daily practice is the point. Wrong for a dog bath - you don't fail bathing Hanx by breaking a chain, you just lack a neutral way to see the fact
| App | Calm | Beautiful | Pay-once | Maintained |
|---|---|---|---|---|
| Last Time Tracker | ✓ | - | ✓ | - |
| SinceWhen / Wheneri | ✓ | - | - | - |
| Streaks | - | ✓ | ✓ | ✓ |
| Ago | ✓ | ✓ | ✓ | ✓ |
So: no streaks, badges, or "don't break the chain." Every word in the app shows elapsed time accurately and lets the user decide what to do about it.
Calm is a product decision, not a style choice.
Reset from done, not from schedule
- Every competitor frames around habits, sobriety, milestones, or countdowns - none around the recurring-but-irregular task that resists a schedule
- Consequence for reminders: when you log something done, the deadline resets from that date - not from the missed schedule. This is what Todoist and Apple Reminders get wrong; a missed recurring task just accumulates
- A r/adhdwomen thread said it independently, several times: a late monthly task should restart from when you actually did it. Ago's reminders always count days from last done
The gap between "habit" and "calendar event" is where a lot of real life actually happens.
Freemium with a one-time Pro unlock
Ago is free to download - three real items and nearly all features before any ask (only custom colors and icons are gated). Subscriptions were considered and rejected:
- Most competitors charge $3-50/yr; "bait and switch" appears more than almost any other pattern across the review corpora
- Days Since sits at 3.4 stars after paywalling once-free features; Since: Day Counter gets constant one-time-purchase requests despite $49.99 lifetime; Last Time Tracker's $2.99 pay-once is "best two dollars I ever spent"
Most competitors
$3–50
per year, or $49.99 lifetime
Ago
$4.99
once, yours forever
- $4.99 once, chosen deliberately: $2.99 now reads as "abandoned app," $6.99+ hits sticker shock against a clear ~$5 ceiling in the review data. Anyone who reaches the paywall has already used three real items
- Pay-once is also a trust signal - a clean one-time unlock is the opposite of what the category is angry about
Grid to list, and one tap to log
- V1 shipped a 2-column card grid; beta testers found it hard to scan. The home screen's job is comparison, and a grid forces lateral eye movement between columns
- Full-width single-column rows show 7-8 items at once, every number left-aligned at the same position: one vertical scan tells you everything
- Log-done lives on the card itself - no tap into a detail screen, unlike every competitor. No confirm dialog: a 4s undo toast, and the card holds position 650ms so you see the number reset before the list re-sorts
Every extra tap on the most common action is a small tax on every session, forever.
Solve the cold start
Worst first launch for an app like this: opens empty, the user doesn't know what to add, and closes it. The whole first-run flow targets that.
- Onboarding doesn't explain features - it uses concrete examples ("wash the car," "call mom," "water the plants") to trigger "oh, I should track that," then shows those same things as cards with elapsed time
- The last slide asks "What have you been meaning to keep track of?" with three starter items, not a blank field
- The templates library ("Browse ideas") adds 60+ pre-built items across home, health, and relationships - recognize yourself instead of inventing from scratch
- Notification permission isn't requested on launch - it comes up the first time you set a reminder, where the reason is obvious
Don't ask users to imagine what the app is for. Show them something they already recognize.
A constructed mark and a living system
A calm utility still has to feel crafted at icon size and stay coherent as it grows - so Ago needed a real mark and a system, not just screens.
- The logo is a single looping link, drawn on a grid in Illustrator: two forms joined in a continuous loop for recurrence - the "again" in Ago - refined from a blocky grid form to the final rounded sage mark
- The app's visual language is extracted into a versioned, hosted design system - OKLCH tokens, components, motion - so light and dark and every screen stay consistent
Outcome
Ago launched on the App Store in June 2026, iOS-only, no paid marketing.
- 200+ downloads in 24 hours, driven by a r/GenAiApps giveaway (20 Pro codes). The signal wasn't code-hunters - it was comments naming the exact use case: water filters, dog care, vehicle maintenance
- Three weeks in: 900+ downloads, 5.0 across the first 30 ratings; the giveaway became the subreddit's #10 post of all time (24K views)
- PostHog: 200 weekly actives, and 14% of paywall views buy the Pro unlock
The launch is soft by design - find the people who already have the problem and show up where they talk about it, same as Recipe Fox.
Lessons learned
- Start the marketing assets earlier. Screenshots, App Store copy, and Product Hunt graphics all got squeezed into the final week - time that should have gone to polishing the product itself.
- Design the growth mechanic before launch, not after. Last Time Tracker's ~609 ratings over several years is the honest benchmark without word-of-mouth. A home screen widget - the thing people screenshot and share - would have been better at launch than on the backlog.
- Calm can cost discovery. The same restraint that makes the product good leaves it less to shout about, so the shareable surface has to be designed in, not bolted on.