← All work
Ago

Ago

Some things need doing but resist a schedule - not a habit, not a calendar event. When did we last give the dog a bath? Service the car? See that friend? Ago answers one question: how long has it been since I last did this?

2,300+ Downloads, $0 marketing
5.0 App Store rating (50+ ratings)
200 Weekly active users
14% Paywall view → purchase
Role Solo designer, developer & product owner
Platform iOS
Year 2026
Status Live
Ago app - home screen showing tracked items with elapsed time

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:

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

01

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
No competitor in the calm/utility niche held all four corners. Last Time Tracker - the closest match by philosophy and pricing - had been effectively abandoned since 2019. Streaks (Apple Design Award, 27K ratings) set the quality and pricing bar but is the wrong product for irregular tasks.

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.

Ago home screen showing tracked items with elapsed time in days
Home screen. Each item shows one number. No streaks, no badges, no overdue guilt - just the fact.
The visual language that carries this principle is documented in the Ago Design System - a living style guide of tokens, components, and patterns in light and dark mode, versioned alongside the app. Open it →
02

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.

Ago Browse Ideas screen showing template categories - Home, Car, Health, Pets, People
Browse Ideas - 60+ template items across Home, Car, Health, Pets, and People. Most of them don't belong in a habit tracker or a calendar.
03

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
04

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.

4 items visible · eye jumps laterally Wash bedsheets 42 days Service car 91 days Water plants 8 days Call parents 17 days Replace razor 23 Trim hedges 66 col 1 col 2 7+ items visible · one vertical scan scan Wash bedsheets 42 days · overdue Service car 91 days Water plants 8 days Call parents 17 days Replace razor 23 days Trim hedges 66 days Cook a new recipe 4
Grid vs. single-column list. The grid looks denser but forces lateral scanning - numbers land at two different horizontal positions. The list puts every number at the same left-edge position: one vertical scan tells you everything.
05

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.

Early pen-and-paper sketch of the four onboarding slides - the structure and examples are nearly identical to what shipped
The first sketch of the onboarding flow. Four slides, the same examples ("washed the bed sheets," "called mom," "been at the dentist"), the happy face character on the last slide. This is more or less what shipped.
Slide 1 - illustration of a person with chips floating above their head showing things to keep track of Slide 2 - character with floating item chips, headline: When did I last...? Slide 3 - two iOS notification banners, headline: Get nudged when you want. Slide 4 - character with happy face, headline: Nothing forgotten. Nothing slipping. First-launch app state - What have you been meaning to keep track of?
Slide 1: the familiar overwhelm - things you keep meaning to do, floating around in your head. Slide 3: what a notification looks like before the app asks permission to send one. Slide 5: the first-launch state - "What have you been meaning to keep track of?" with starter suggestions.
The full onboarding flow.
06

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
Adobe Illustrator: the Ago mark constructed on a grid, from a blocky grid form to the refined green looping link
The mark built on a grid in Illustrator - blocky construction, refined loop, final sage color. Two linked forms for "again."
The hosted Ago Design System - Calm by design - showing brand, foundations, and components in a sidebar
The Ago Design System - tokens, components, and motion, versioned alongside the app.

Outcome

Ago launched on the App Store in June 2026, iOS-only, no paid marketing.

Figma canvas of the Ago App Store screenshots, localized into English, Spanish, French, and Portuguese
The App Store listing, designed and localized into four languages (EN, ES, FR, PT) in Figma.
r/GenAiApps
u/lagniapeus · 2d ago

What really interests me is using it as more of a "last done" tracker rather than something that constantly sends notifications. Not everything needs to go on a reminder schedule. Sometimes I just want to know when I last changed the HVAC filter, rotated the tires, cleaned the gutters, replaced a battery, or did some other maintenance task. Then, when I think about it later, I can see how much time has passed and decide whether it actually needs to be done again based on its condition instead of getting another alert. I think that's a really valuable use case that goes beyond traditional reminder apps.

View thread on Reddit →
Day-one comment describing the exact use case the app was built for. The user named HVAC filters, tires, gutters - none of which were in any marketing copy.

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

Everything in this case study - research clustering, code-first prototyping, App Store release - ran on one repeatable workflow. See how I build →