1
0 Comments

1 year, 87 locales, 2 policy rejections: shipping a Pomodoro + tasks + habits app as a solo dev

The problem

My productivity stack for years was three apps: Forest for focus, Todoist for tasks, Habitica for habits.

Each one worked fine on its own. The gap between them was the problem. I'd finish a Pomodoro session and have to manually update a task in another app. I'd complete a task and forget to log the habit. By evening, half my habit tracker was empty not because I hadn't done the things, but because I hadn't tapped the right buttons in the right apps.

The friction was eating the productivity gain.

So I started building one app that did all three. One year of solo dev later: PomoPlan.


What it actually is

An Android app that combines three things that usually live in separate apps:

  • Pomodoro timer with live notification controls, floating overlay, and home screen widgets

  • Task manager with Kanban board, Waterfall view, and Eisenhower Matrix

  • Habit tracker with streaks, heatmap, custom frequencies, and a 3 AM day boundary

The point isn't the feature list. Three apps already do each thing individually. The point is the modules talk to each other. You start a Pomodoro from a task. When it ends, it logs to the task. Your habits sit in the same app so you don't context switch to check them.

Favorite feature: the Waterfall view. Tasks can have prerequisites. "Edit draft" stays locked until "Write draft" is done. It removes the mental overhead of tracking sequences in your head.


Where I am right now

I'll be honest: there has been no big bang launch. There was a Product Hunt attempt, a SaaSHub and AlternativeTo and OpenHunt round, some Quora answers, and the slowest Play Store burn you can imagine.

Early days numbers, before any of the Reddit or community pushes I have planned:

  • Installs in the low hundreds

  • Zero paying users yet, at one dollar per month, eight dollars per year, or twenty dollars lifetime

  • Play Store rating settling in around four stars from a handful of reviews

That is the real number. Not great, not zero, just the part of the curve where you build, ship, and wait while you figure out which channel actually moves the needle. I am writing this post partly because I want feedback from people who have already crossed that bridge.


The thing that almost killed it

Two weeks before I planned to push hard on promotion, Google rejected the app from the Play Store. Twice.

The reason: a Strict Mode feature uses Android's AccessibilityService to block distracting apps. Google now requires a prominent disclosure, which has to appear in the app itself, in the Play Store listing, and in a demo video uploaded to YouTube, with the disclosure text translated into every supported locale.

PomoPlan ships in 87 languages.

So I spent about 10 days doing all of this:

  • Writing the disclosure card and wiring it into Settings

  • Auto-translating the policy text into 86 locales and reviewing the ones I could read

  • Recording a demo video showing exactly what the accessibility permission does

  • Setting up Fastlane to push the AAB plus 87 metadata files plus 87 changelogs atomically, because manual Play Console uploads were no longer feasible at this scale

It approved on the third submission. But by then I had burned the launch window I had planned for months.

Lesson: if your app touches AccessibilityService, NotificationListener, or any other sensitive permission, assume Google's policy team will reject you at least once. Build the disclosure flow before you build the feature, not after.


Tech stack, quickly

Flutter, Hive for local storage, Riverpod for state, RevenueCat for subscriptions, Google Drive API for cloud backup, AdMob for free tier monetization, Fastlane for Play Console uploads (added under duress, see above).

Android only for now. iOS port is theoretically straightforward with Flutter but I want to validate the Android numbers first before committing to a second platform.

Flutter was the right call for solo work at this scope. Mature ecosystem, one codebase, and hot reload is genuinely a competitive advantage when you are the only one shipping.


What I would do differently

  1. Build the policy compliance flow before the feature. The AccessibilityService rejection cost me about 2 weeks of launch momentum. If your feature needs a sensitive permission, write the disclosure layer first.

  2. 87 languages was probably overkill. I auto-translated the app into 87 locales hoping for Play Store long tail visibility. ASO impact so far has been minimal. Three or four well-localized languages would have been a better use of the time.

  3. Scope creep is real even when you know about it. Eight months in, I was still adding "one more feature" before forcing myself to ship. The launch version has probably three times what v1 needed. Eisenhower Matrix, Waterfall view, NLP task input. All useful, none of them moved the first paying user across the line.

  4. The code was not the hard part. The hard part was sequencing the work: ship, promote, fix policy issue, re-prepare metadata, promote again, while running a 87-locale pipeline in parallel. The code was the most predictable piece of the year.


What is next

Best Pomodoro app listicle outreach. The biggest organic channel I have not worked yet.

Actually watching what new users use, instead of guessing what they should use. Analytics has been on the backlog for too long.

Paywall placement experiments. Right now the free tier shows banner ads and the paid tier unlocks Waterfall view, Google Drive backup, and home screen widgets. I have no real data yet on which of those three is actually pulling people across to paid.

iOS port once Android numbers cross a threshold I have not defined yet.


Ask

Two specific things I would genuinely like input on:

  1. For anyone running freemium on a productivity app: my current pricing is one dollar per month, eight dollars per year, or twenty dollars lifetime. The yearly to lifetime ratio is 2.5x, which I think is in the normal range, but I am not sure the monthly is doing any work. Should I drop monthly entirely and force the yearly versus lifetime choice? Or is keeping monthly as a low friction entry point worth it even if conversion to it is small?

  2. For anyone who has done an 80 plus locale Play Store rollout: does it actually move ASO? My data so far says basically no. Did yours look different, and how long did it take to show up in installs?

Play Store: https://play.google.com/store/apps/details?id=com.pomoplan.pomoplan

posted toAvatar for product PomoPlan
PomoPlan