the only tool indie iOS developers need
- charts
- alerts
- digest
- competitors
- featured
- namespace
- ratings
- reviews
- showcase
- testflight
- indie index
- downloads
- payouts
- subscriptions
- revenue
- paywalls
- experiments
- feature flags
- progressive rollouts
- remote config
- update prompts
- what's new
- widgets
- share cards
- iPhone
- iPad
- Apple Watch
- Mac
Mac app coming soon
Free to download, free to use.
taool --help
Everything after you ship, in one app.
How your app's doing in every country, what people say about it, what your rivals are up to, and what Apple's going to pay you. In an app for iPhone, iPad, Mac and Apple Watch that pings you when something happens.
And before: testers for your TestFlight, a name people can find, and the rivals you'll be up against.
taool ranks --everywhere
Where your app ranks, in every country.
taool reads the top 100 of every App Store chart in every country, on iPhone, iPad, Mac and Apple TV. Your app's ranks come with how far they moved since the same day last week, so a weekend dip isn't news.
Browse any chart in any market, for free.
- every storefront
- every category
- 7-day change
- chart history
- release impact
- top markets first
taool ranks --nearly
Know when it's about to chart.
Nearly Charting shows the charts where your app is just short of the top 100, and how far it has to go: 12 away. An alert comes as it closes in, so you know where a push could tip it over.
Kept apart from your ranks, since it isn't charting yet, and updated at least every 48 hours.
- places to go
- closing-in alerts
- your app's categories
taool alerts --follow
Hear about it before you go looking.
A push when your app charts in a new country, with a hello in the local language. When it reaches the top 10, climbs, passes a rival, gets featured or gets a review. Several at once wait a few minutes and arrive as one.
Every alert lands in a list too, so nothing's lost while you're on mute. Or take the morning digest instead: every app's day in one push.
- new countries
- top 10, top 3, #1
- climbing
- passing a rival
- featured
- reviews
- rival releases
- payouts
- birthdays
taool rivals
Keep an eye on the competition.
Add up to 20 competitors for each of your apps, or let taool automatically find them. Then see where you stand in every country and where they chart and you don't, with an option to see the changes rivals make to their name, icon, prices and more.
And how your app measures up, side by side with each of them: accessibility, privacy, languages, minimum iOS, app size, where you stand, and how often each of you ships an update.
- standing
- market gaps
- listing watch
- price watch
- featured
- in-app events
- review mentions
taool insights tomatick
What to change on your App Store page.
The Insight Score grades your app's page out of 100, and shows where you place among your competitors. It comes from checks: screenshots, an App Preview, languages, ratings and how fast they come, how often you update, your subtitle, privacy, in-app events, accessibility and more, each with its target, so it's never a black box.
Then the checks and insights, each insight with its evidence and the points it's worth: catch up where a competitor already does better, then get ahead where none does yet. Translate into the language your own downloads come from, add the App Preview most of your rivals have, ask for ratings.
Scored by code from public facts, the same way for every app. Once taool sees the change, it shows what followed.
- insight score
- catch up
- get ahead
- languages
- screenshots
- what followed
taool reviews --unread
Every review, from every country, in your language.
Reviews from every storefront in one list, read or unread like an inbox, translated on your device. Reply from the app, through your own App Store Connect key.
And your worldwide rating: every country's average, weighted by how many ratings it has. The App Store only ever shows one country's.
- search
- translate
- reply
- unread badges
- showcase
taool earn
Know what's coming, and when.
Downloads and proceeds from App Store Connect's own reports, a year of them on the first day, in the currency you choose. And your next payout: the day Apple pays, predicted from its fiscal calendar, and the amount once Apple has settled it.
Hide Earnings hides every amount until you tap it, for screenshots and sharing your screen.
- downloads
- proceeds
- sales
- payouts
- pay days in your calendar
taool earn --funnel
From a download to a subscriber.
Downloads, users, trials, subscribers and proceeds, a step each, and how each turns into the next: trials per 100 downloads, proceeds per download. Played back a day at a time on a globe of where they came from.
Put them on one timeline, each on its own scale, and tap a day: > why lines up what happened then, a release, a featuring, a new best rank, a rival's price change, an experiment ending, beside what the day was worth.
A day Apple hasn't reported yet is hatched, never a 0, one still counting says so, and trials still in their free period are still deciding. Users come with TaoolKit.
- downloads
- users
- trials
- subscribers
- proceeds
- > why
- cohorts
taool subscriptions
Every subscriber's story, and who has access.
Point your app's App Store Server Notifications at taool, in a tap from the taool app, and every purchase arrives as it happens: free trials, renewals, upgrades and downgrades, billing retries, refunds, offer codes, and one-time purchases like a lifetime unlock. Your own StoreKit code keeps doing the buying, and a server that had Apple's notifications still gets them: taool forwards them on.
Each customer has a timeline, from the day they downloaded to what they've spent. Your server gets every event already decoded, as a webhook, and asks taool who has access, by your own user ID or an Apple Account.
Access is your App Store subscription groups and their levels, so there's nothing to set up, and a lifetime unlock counts as one. Give someone free access from the taool app, for a tester or a support case. Sandbox purchases are kept apart.
- trials
- renewals
- refunds
- lifetime unlocks
- offer codes
- customer timeline
- free access
- webhooks
- entitlement API
swift package add-dependency taool-swift
A few lines in your app.
TaoolKit is taool's Swift package, a product per feature, so your app links only what it uses. It has no dependencies, and collects nothing a feature doesn't need: each product comes with its own privacy manifest.
import SwiftUI
import TaoolUpdates
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.taoolUpdatePrompts(key: "taool_public_β¦")
.taoolWhatsNew(key: "taool_public_β¦")
}
}
}
import TaoolExperiments
// Once, on your root view:
ContentView()
.taoolExperiments(key: "taool_public_β¦")
// A test is an enum, its control first:
enum Onboarding: String, TaoolExperiment {
case control, shortTour, noTour
}
// Where it shows:
switch Onboarding.variant {
case .control: Tour()
case .shortTour: ShortTour()
case .noTour: Home()
}
// Where it pays off:
TaoolExperiments.record("finished-onboarding")
import TaoolFlags
// Once, on your root view:
ContentView()
.taoolFlags(key: "taool_public_β¦")
// Made in the taool app, read by its key:
enum Flags: String, TaoolFlag {
case newOnboarding = "new-onboarding"
case trialDays = "trial-days"
}
// On for testers, then everyone, no app update:
if Flags.newOnboarding.isOn { NewOnboarding() } else { Onboarding() }
// Remote config:
let days = Flags.trialDays.int(default: 7)
import SwiftUI
import TaoolAnalytics
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.taoolAnalytics(key: "taool_public_β¦")
}
}
}
// Already there with TaoolPurchases or TaoolFlags.
import SwiftUI
import TaoolPurchases
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.taoolPurchases(key: "taool_public_β¦")
}
}
}
// Anywhere below it:
@Environment(TaoolPurchases.self) var purchases
if purchases.hasAccess { ProFeatures() } else { Paywall() }
https://github.com/taoolcom/taool-swiftIn Xcode: File β Add Package Dependencies, then paste it in. Your key is in the taool app, on its TaoolKit page.
Add taool's update prompts to this app. Follow https://raw.githubusercontent.com/taoolcom/taool-swift/main/docs/integrate-updates.md My taool key starts with taool_public_ and is on the TaoolKit page of the taool app: ask me for it. If you can't open links: add the Swift package https://github.com/taoolcom/taool-swift, link TaoolUpdates to the app target, and put `.taoolUpdatePrompts(key: "taool_public_β¦")` on the root view of every WindowGroup.
Add taool's experiments (A/B/n tests) to this app. Follow https://raw.githubusercontent.com/taoolcom/taool-swift/main/docs/integrate-experiments.md Ask me which screen to test, its variants and the goals that matter, if I haven't said. My taool key starts with taool_public_ and is on the TaoolKit page of the taool app: ask me for it. If you can't open links: add the Swift package https://github.com/taoolcom/taool-swift, link TaoolExperiments to the app target, and put `.taoolExperiments(key: "taool_public_β¦")` on the root view of every WindowGroup.
Add taool's feature flags to this app. Follow https://raw.githubusercontent.com/taoolcom/taool-swift/main/docs/integrate-flags.md Ask me which flags to add and what each turns on, if I haven't said; each is made in the taool app first, and its key there is what the code reads. My taool key starts with taool_public_ and is on the TaoolKit page of the taool app: ask me for it. If you can't open links: add the Swift package https://github.com/taoolcom/taool-swift, link TaoolFlags to the app target, and put `.taoolFlags(key: "taool_public_β¦")` on the root view of every WindowGroup.
Add taool's analytics to this app. Follow https://raw.githubusercontent.com/taoolcom/taool-swift/main/docs/integrate-analytics.md My taool key starts with taool_public_ and is on the TaoolKit page of the taool app: ask me for it. If you can't open links: add the Swift package https://github.com/taoolcom/taool-swift, link TaoolAnalytics to the app target, and put `.taoolAnalytics(key: "taool_public_β¦")` on the root view of every WindowGroup.
Add taool's purchases to this app. Follow https://raw.githubusercontent.com/taoolcom/taool-swift/main/docs/integrate-purchases.md My taool key starts with taool_public_ and is on the TaoolKit page of the taool app: ask me for it. If you can't open links: add the Swift package https://github.com/taoolcom/taool-swift, link TaoolPurchases to the app target, and put `.taoolPurchases(key: "taool_public_β¦")` on the root view of every WindowGroup.
taool test
Developers make the best testers.
Turn on Looking for Testers, and other developers on taool can join your TestFlight in a tap: taool adds them to a group of yours with your own key, and Apple sends the invite. Test their apps back from the Test tab.
Blueprint Icons redraw your icon in white lines on blueprint paper, so a Debug or TestFlight build never passes for the App Store one.
- your own group
- each tester's state
- remove anyone
- blueprint icons
- icon composer files
taool --everywhere
On your Home Screen, menu bar and wrist.
Widgets for your ranks, reviews, downloads, proceeds, TestFlight and next payout, on the Home Screen, the Lock Screen and the Mac's desktop. On the Mac, taool lives in the menu bar. On Apple Watch, your numbers sit on the watch face.
Amounts hide while your iPhone is locked, since anyone near it can see the Lock Screen.
taool namespace "moss diary"
Will people find it by its name?
Before you name an app, see how crowded App Store search is for the name: a score from 0 to 100, its grade, and why. Check up to five names at once.
Namespace Watch notifies you when a new app in your field comes out with the same name as your app.
taool icon-search screenshot.png
Which app is that icon?
Give taool a screenshot of a home screen, a Dock or a post, and it finds the icons and widgets in it on your device. Tap one, and it reads the name under it and searches the App Store in that name's own script, Japanese in Japan's, then checks the icon to be sure.
Similar Icons puts your own icon, out or still in the works, against every icon taool knows, the same drawing in other colors too, so a new one isn't too close to another app's while you can still change it.
The screenshot never leaves your device: only the icon you tap, and the apps its name turned up, do.
- home screens
- docks
- posts
- widgets
- any language
- similar icons
ls ~/indie-index
Indie Index: apps, and the people who make them.
Every app in the Indie Index is listed by the developer who built it, sorted by App Store category and the city it's made in. Download one, or join its TestFlight before it launches.
Made an app? List it from the taool app with one switch, TestFlight builds too.
taool --pricing
Free to start. Pro when it pays.
free
- every chart in every country
- your app's top 5 charts, and alerts for all of them
- reviews, ratings and replies
- support email: a copy of your app's support mail, sorted and summed up beside its reviews, with an alert for each, answered from your own mail
- downloads and proceeds, and the funnel from a download to a subscriber
- when Apple pays you next, and a payout calendar
- competitors: the finder, new rivals each week, their listings and today's prices, and the top 5 of each list
- your Insight Score, and where it places among your competitors
- Namespace Search: a name's score, 5 checks a day
- Icon Search, and the icons closest to yours
- TestFlight builds and testers, for betas under 100 testers, and blueprint icons
- widgets, the menu bar and Apple Watch
- webhooks for new reviews and TestFlight joins, to your server, Slack or Discord
- share cards
- a listing in the Indie Index
TaoolKitin your app
- subscriptions: revenue, trials and renewals, up to $500 in monthly tracked revenue (MTR)
- each customer's story, free access for testers and support, and an entitlement API for your server
- a webhook per app for its purchase events, to your server
- update prompts: tell people when a new version is out, in 37 languages
- one A/B/n test at a time
- feature flags and remote config, 3 in progress at a time
- your users, week by week and by country
pro
everything in free, plus
- every chart your app's in, and its history
- every alert in your list, not only the newest 5
- every competitor, their news as alerts, and price history
- who's ahead of you in each chart, and every competitor ranked on their App Store page
- Nearly Charting: the charts your app is close to, and an alert as it closes in
- insights: the Insight Score's checks, and what to change on your App Store page, with the evidence and the points each is worth
- > why: what happened on any day, beside what it was worth
- what a rank is worth: your own downloads at each rank, country by country
- how much Apple pays you, and an alert the day before
- webhooks for chart moments, being featured and payouts, also to Slack or Discord
- Showcase: your best reviews on your own website
- support email replies sent from taool, from your own address
- Namespace Search: the detailed report on why a name scores as it does, for up to five names at once
- Namespace Watch: a weekly check of your app's name, and an alert when a new app in your field comes out with the same name
- TestFlight builds and testers, for betas of 100 testers or more
- how many people the Indie Index sent to your App Store page
- share cards without the branding, and payout cards
TaoolKitin your app
- subscriptions: expanded limits in MTR
- update prompts with a required minimum version, and an optional server-to-server integration
- your own update messages, in any language
- webhooks to your server: a new version live on the App Store, and each app's purchase events to up to five servers, so staging gets its own
- What's New: a page you design, shown once to everyone who had the app before
- any number of A/B/n tests, running at once
- 15 feature flags in progress at once, with percentages, progressive rollouts and targeting rules
- version adoption: how fast people move to each release
- expanded analytics: daily users, how often your app is opened, and each user's language, region and device
Some features have fair-use limits, set well above what an indie app needs. Apps that outgrow them may need a higher plan.