Tally Counter

Our own tally counter for iPhone and Android: big, colour-coded counters you tap anywhere on, grouped into sets — free, with one upgrade that removes the ads and the limits.

ServicesProduct design · Mobile development · Own product
Get it on Google Play
Tally Counter preview

The brief

Counting is an old problem with a cheap answer — the metal clicker — but people reach for their phone instead: scoring a game, counting stock, laps, or people through a door. The job sounds trivial until you notice it’s done mostly without looking, eyes on the game, the shelf or the door. An app that asks you to find a small plus button in the middle of a busy screen has already failed at the one thing it’s for.

Tally Counter is our own product, and it’s deliberately small. The brief was a counter you can use by feel, several counters side by side when one isn’t enough, and a business model that stays out of the way of both: free to use with a banner ad and a cap on counters, and a single upgrade that removes the two.

The details

The decision that shaped everything else was making the whole tile the button. A counter is used with your eyes on something else, so a small plus sign is the wrong target. A two-way counter is split down the middle — right half up, left half down — with faint chevrons as a reminder rather than buttons to aim at, and a one-way counter turns the entire tile into a single target. The number is the biggest thing on the screen, and only drops a size when the grid makes the tiles too small for it. Taps are switched off in edit mode, so rearranging the grid can never quietly change a count.

A counter that forgets is worse than no counter, so every tap is saved the moment it happens. State lives in one Zustand store persisted to MMKV, a native key–value store that reads and writes synchronously, so the counts are already there when the first screen draws instead of flashing zero while storage loads. Only the data is saved — counters, groups, column count and the premium flag — never passing UI state like an open sheet or edit mode, so the app always reopens on a usable screen.

Ads paid for the free tier and complicated start-up. On iOS the App Tracking Transparency prompt has to come first, then Google’s consent form for UK and EU users, and the ads SDK must not start until consent allows it — but someone who agreed last week shouldn’t wait for a form to load. So the consent form and the decision stored from the last session are checked side by side, and a guard makes sure the SDK only ever starts once. The same restraint went into asking for reviews: the native prompt appears only after three launches and three days, no more than once every 30 days, and never more than twice.

The outcome

Tally Counter launched on the App Store and Google Play on 13 February 2025, six days after the first commit. In April 2026 we brought it up to date: Expo SDK 52 to 55 and React 19, payments moved from Qonversion to RevenueCat, and a full visual redesign built on a written design system — a deep navy base and seven gradient colour themes. It runs on iOS 15.1 and Android 7.0 and up, on phones and tablets.