◉RORK LABJP
●GPT-6.1 SOL — Added to Rork's model menu (09-29) with Low, Medium and High effort; included on Pro and Max●SONNET 5.5 — Claude Sonnet 5.5 is selectable: strong at UI design and faster than Sonnet 5 (09-28)●SDK 58 — Expo SDK 58 is out of beta as of 10/15 (beta since 09/15). Check your dependencies before upgrading●WIDGET — A write-up traces an iOS widget that renders black only in production builds●OBSERVE — EAS Observe now records native crashes too (SDK 57.0.21 or later, 10/07)●NEW — My App Open Ad Only Showed When the App…●GPT-6.1 SOL — Added to Rork's model menu (09-29) with Low, Medium and High effort; included on Pro and Max●SONNET 5.5 — Claude Sonnet 5.5 is selectable: strong at UI design and faster than Sonnet 5 (09-28)●SDK 58 — Expo SDK 58 is out of beta as of 10/15 (beta since 09/15). Check your dependencies before upgrading●WIDGET — A write-up traces an iOS widget that renders black only in production builds●OBSERVE — EAS Observe now records native crashes too (SDK 57.0.21 or later, 10/07)●NEW — My App Open Ad Only Showed When the App…
Articles/Business
⟐ Business/2026-07-19Intermediate

Sunsetting an App Well — Designing the Path from Update Freeze to Full Shutdown

What to do with an app whose revenue no longer covers its server bill. A three-stage decision table, a CDN-based sunset flag with TypeScript implementation, a data export path, and the practical order for winding down auto-renewable subscriptions.

Rork588app operations3indie development42App Store91long-term maintenance

✦ Premium Article

The server bill is a few dollars a month. Ad revenue has been less than that for a while now. If you have an app like this sitting in your portfolio, the next move is not another feature.

There is endless writing about how to build apps and almost none about how to retire them. Running several apps in parallel as a solo developer, I have learned that nobody makes this call for you — and nobody hurries you either. That is exactly why the decision drifts, while a dormant app quietly keeps accruing fixed costs.

This article walks through the stages of winding down an app built with Rork, from the decision to the final shutdown: the in-app sunset notice, the data export path, and the cleanup work that auto-renewable subscriptions demand. The short version: if you wire in one small hook while the app is still healthy, everything that follows becomes far easier.

Retiring an App Has Three Distinct Stages

The word sunset covers very different actions. Separating them makes the costs and the reversibility visible.

Stage What you do Ongoing cost Reversibility Impact on existing users
1. Update freeze Stop new features; keep OS compatibility and crash fixes only Server + membership fee + minimal maintenance time High — you can resume any time Practically none
2. Store removal Remove the app from sale in App Store Connect, stopping new downloads Server + membership fee Medium — republishing is possible, but search ranking will not return Installed copies keep working
3. Full shutdown Turn off the backend and announce the end inside the app Near zero (optionally keep static delivery) Low Online features stop working

The gap between stages 2 and 3 is the part people underestimate. Removing an app from sale does not remove it from anyone's device. If the app depends on a server, the window between removal and shutdown is where the notice period and the data export window belong. Skip it, and what users remember is only that the app suddenly stopped working one day.

Decide the Thresholds in Numbers, Before You Need Them

Retirement decisions drag on because no threshold was ever set. I track two figures monthly.

The first is fixed cost: server fees, domain fees, and the 99-dollar Apple Developer Program membership divided across the number of apps I run. Add the hours a major OS update costs each year, converted at an honest hourly rate, and even a dormant app turns out to cost real money every month.

The second is the revenue trend — as a three-month moving average, not a single month. Ad revenue swings too easily with seasonality and eCPM to trust one month. When the three-month average falls below fixed costs and keeps trending down, the app enters stage 1. Since I adopted this line, the time I used to spend agonizing has visibly shrunk.

The arithmetic itself is the same structure I used in Deciding Whether Rork Max's $200 per Month Pays for Itself, with a Formula. Only the question changes — from whether to adopt a tool to whether to keep an app alive.

One more check before committing: if only part of the app is the burden, removing features may be the better move than retiring the whole product. The three-step retirement flow in When and How to Remove Features Nobody Uses covers that path.

✦

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
✦A decision table comparing update freeze, store removal, and full shutdown across cost, reversibility, and user impact
✦A minimal TypeScript implementation of a sunset flag served as static JSON from a CDN, with no Remote Config dependency
✦The practical sequence for winding down auto-renewable subscriptions, from closing new sales to caring for remaining subscribers
Secure payment via Stripe · Cancel anytime
✦

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Rork Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • ✦Copy-paste ready implementation code
  • ✦New advanced guides published daily
  • ✦$5/mo or $10 for lifetime access
View Membership →

Related Articles

⟐ Business2026-04-17
A Year to First Revenue with Rork: A Working Roadmap from Idea Validation to Retention
A 4-phase, 12-month roadmap from first Rork prototype to actual revenue: idea validation, plan cost design, store launch, monetization model selection, and retention work—at a level of detail you can act on.
⟐ Business2026-08-31
After the Google Play deadline: which dormant Android apps to raise, and which to leave at 35
Apps you have stopped updating are governed by a different bar than apps you still ship. Here is how to inventory effective targetSdk across your builds and decide which apps to raise, hold, or retire.
⟐ Business2026-08-25
I Split Rork and Claude Code by Who Owns the Build Environment
How to decide between Rork and a terminal coding agent using data from your own repository instead of impressions of generated code. Includes a script that counts which layer your maintenance work lands in, and a check that catches native settings silently disappearing on regeneration.