Everyone who ships their first app has the same experience: the high when your app passes review, then the quiet that follows. Downloads trickle in. You refresh the dashboard. You wonder what you missed.
When I shipped my first app, the first two weeks produced 8 downloads. That period taught me that what you do in the 90 days after launch determines whether an app generates revenue or quietly fades out. Rork Max apps are no exception.
Why 90 Days — and Why Phases Matter
The App Store algorithm gives newly launched apps a brief window of favorable treatment. During the first few weeks, your app gets modest additional exposure as a "new release." Your performance metrics during this window — install rate, ratings count, retention — influence your organic ranking for months afterward.
Treating the first 90 days as three distinct phases prevents the most common mistake: doing nothing while waiting for downloads to arrive organically.
Phase 1 (Days 1–30): Data collection and first KPI check
Phase 2 (Days 31–60): First improvement cycle
Phase 3 (Days 61–90): Monetization model finalization
Phase 1: Collect Data (Days 1–30)
Your only job in the first 30 days is to understand why people use your app more than once — and why they stop. Everything else is secondary.
Rork Max makes Firebase Analytics integration straightforward. Before your initial release, wire up these three events at minimum:
// App launch — track version and user lifecycle
Analytics.logEvent("app_launch", parameters: [
"version": Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "unknown",
"days_since_install": daysSinceInstall()
])
// Core feature usage — define this as whatever your app's central action is
Analytics.logEvent("core_feature_used", parameters: [
"feature_name": featureName,
"session_number": sessionNumber
])
// Session end — the most important event for understanding retention
Analytics.logEvent("session_end", parameters: [
"session_duration_seconds": duration,
"screens_visited": screenCount,
"completed_core_action": completedCore
])After 30 days, look at three numbers only:
Day 1 Retention: The percentage of users who come back the day after installing. Above 20% is passing. Below 15% means there's a problem with your first-run experience — before anything else changes.
Core Action Completion Rate: The percentage of users who actually complete the central function of your app. Below 30% means your onboarding has lost people before they see the value.
Average Session Duration: Aim for 2–5 minutes for most utility apps. Under 1 minute often means users couldn't figure out what to do. Over 10 minutes for a utility app suggests the interface has complexity problems.
Phase 2: One Improvement at a Time (Days 31–60)
Take your data and identify the single highest-impact problem to fix. Not three problems — one.
Changing multiple things simultaneously makes it impossible to understand what worked. Rork Max's strength here is that you can prompt specific, targeted changes without rewriting adjacent code:
Example Rork Max prompt for focused improvement:
"Analytics shows 68% of users drop off before completing the onboarding registration
(profile setup) screen. Redesign the initial onboarding to require only an email address
at signup — all other profile information should be optional and collectable later.
Reduce the required steps to 3 or fewer. Keep the existing visual design system intact."
This is also the phase to configure your monetization layer properly.
For AdMob (ad revenue model): The transition from banner ads to interstitial ads matters more than most developers realize. Wait until you have 50+ DAU before introducing interstitials. When you do, limit them to one per session at session start — not mid-flow. Users who see ads mid-task churn faster than users who see a single ad on open.
For subscriptions: Implement a 14-day free trial standard. Set up a reminder notification for the day before trial expiration. Before you go live with paid subscriptions, verify your StoreKit 2 transaction validation is working correctly in TestFlight — subscription bugs that surface in production are much harder to fix.
// StoreKit 2 — verify subscription status before gating content
import StoreKit
func checkSubscriptionStatus() async -> SubscriptionStatus {
for await result in Transaction.currentEntitlements {
if case .verified(let transaction) = result {
if transaction.productType == .autoRenewable {
return .active(expiresDate: transaction.expirationDate)
}
}
}
return .inactive
}
// Always verify — never trust client-side state alone
enum SubscriptionStatus {
case active(expiresDate: Date?)
case inactive
case unknown
}Phase 3: Lock In Your Revenue Model (Days 61–90)
By day 61, you have enough data to choose a direction and commit to it.
Volume play (ad revenue): Revenue is directly tied to downloads. Your focus is maximizing top-of-funnel: App Store Optimization, broad appeal, low-friction onboarding. Every extra tap in the setup flow reduces your addressable audience.
Depth play (subscriptions): Revenue is tied to retention and conversion rate, not download volume. You can build a sustainable business with 500 engaged, paying subscribers in a niche market — you don't need tens of thousands of users.
Neither is universally correct. Utility apps used daily (weather, timer, calculator-style tools) suit volume plays. Specialized tools with habitual usage patterns (journaling, fitness tracking, productivity) suit depth plays.
At the end of day 90, check these benchmarks:
Volume play benchmarks:
- Monthly downloads: 1,000+ to sustain meaningful ad revenue
- ARPDAU (revenue per daily active user): ¥2–¥5 is standard for ad-supported apps
- Day 7 retention: Target 10%+
Depth play benchmarks:
- Trial-to-paid conversion rate: 5%+ is the threshold for a sustainable model
- Monthly churn rate: Below 10% for a product that can grow
- LTV (lifetime value): monthly_price × (1 / monthly_churn_rate)
What Happens After Day 90
With 90 days of real data, your next 6 months have a clear priority order. Volume plays invest in acquisition channels. Depth plays invest in feature depth and churn prevention.
Rork Max's update cycle is fast enough to sustain monthly releases. The "small improvement, shipped consistently" pattern is what turns a 90-day foundation into compounding revenue growth.
If revenue is still near zero at day 90 — that's data, not failure. It tells you something specific about your product, your market, or your distribution. Address the specific thing the data shows, and the revenue follows.
The 90 days after launch are the most leveraged time in any app's life. Treat them as an experiment, not a waiting period.
App Store Optimization: What Actually Moves the Needle in 90 Days
Downloads don't appear without discovery. Even the best app sits at zero installs if nobody finds it. App Store Optimization is the cheapest distribution channel you have — and most developers underinvest in it at launch.
The highest-impact ASO changes in the first 90 days are:
App name and subtitle: Include your primary keyword in the app name if possible. The subtitle (30 characters) is often unused space — it's indexed for search and appears in search results. Use it.
Screenshots: Screenshots are conversion rate, not just aesthetics. The first screenshot should show what the app does in one image — not a logo, not a tagline. Users in search results decide in under 3 seconds whether to tap through to your page.
Keyword field: The 100-character keyword field is invisible to users but indexed for search. Don't repeat words already in your title. Use synonyms, use related terms, use plural forms.
ASO checklist for day 1 launch:
✓ Primary keyword in app name (if space allows)
✓ Subtitle uses a secondary keyword naturally
✓ First screenshot shows the core use case, not branding
✓ Preview video (if recorded) shows the first 30 seconds of actual usage
✓ 100-character keyword field is fully populated, no word repetition
✓ Description first 3 lines (visible without expanding) sell the value, not the features
✗ Don't: stuff keywords unnaturally into the title
✗ Don't: use screenshots that require reading to understand what the app does
In the first 30 days, you won't have enough ratings to show social proof. That's fine. Focus on the metadata that improves discoverability — conversion rate improvements come later when you have more traffic to convert.
Getting Your First Ratings Without Being Annoying
Ratings velocity matters. Apps with zero ratings rank lower and convert fewer visitors. Getting your first 5–10 ratings in the first two weeks meaningfully changes your store presence.
The right time to ask for a rating is immediately after a user completes a core action successfully — not on launch, not mid-task, not after an error. StoreKit's SKStoreReviewController handles the prompt UI automatically:
import StoreKit
func requestReviewIfAppropriate() {
// Only ask after the user has completed a meaningful action
let completedActionsCount = UserDefaults.standard.integer(forKey: "core_actions_completed")
// Ask on the 3rd, 10th, and 50th core action
let triggerPoints = [3, 10, 50]
if triggerPoints.contains(completedActionsCount) {
// iOS will decide whether to show the prompt based on its own throttling
if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
SKStoreReviewController.requestReview(in: scene)
}
}
}The system throttles how often the rating prompt appears — you won't be able to spam users even if you call this function repeatedly. But timing the call to a success moment rather than an arbitrary launch count is the difference between getting ratings and getting one-star reviews from annoyed users.
When to Stop Waiting and Make a Decision
The most common mistake I see in the first 90 days is passive waiting. The developer ships the app, checks the dashboard occasionally, sees low numbers, and doesn't change anything — waiting for the algorithm to fix the problem.
Here's a simple decision tree that forces action over waiting:
Day 14 check:
- Downloads < 50?
→ Your discoverability is the problem. Fix ASO first. Do not change the app.
- Downloads > 50 but Day 1 retention < 15%?
→ Your first run experience is losing people. Fix onboarding. Do not change marketing.
- Downloads > 50 and Day 1 retention > 20% but zero revenue?
→ Your monetization implementation has a bug or the paywall placement is wrong.
Day 45 check:
- Monthly active users growing?
→ Stay the course. Keep the improvement cycle going.
- Monthly active users flat or declining?
→ Identify the highest-leverage single problem from your analytics. Fix it. Measure for 2 weeks.
Day 75 check:
- Do you have a meaningful revenue signal (any paying users, any ad revenue)?
→ Yes: Double down on what's working.
→ No: Something fundamental is wrong with the product-market fit. Talk to 5 of your most engaged free users this week.
The 90-day window is the period when your app is newest and has the most favorable algorithmic treatment. Use it to learn quickly, not to wait for things to improve on their own.
Start with day 1 analytics properly configured. Everything else builds on that foundation.