RORK LABJP
APPLE — Apple's event is September 9, with the iOS 27 release candidate landing the same day. General release is September 14, preorders September 12, and retail September 18TESTING — That leaves five working days between the RC and the public release. For React Native and Expo apps, it is the last clean window to run everything against Xcode 27 and the iOS 27 SDKSIRI — iOS 27 rebuilds Siri from the ground up, which puts anything using Siri Intents or voice input at the top of the list to verifyPLAY — Google Play's target API level 36 requirement took effect on August 31. If you did not make it, an extension request through November 1 is still available in Play ConsoleEXPO — expo@57.0.17 moves React Native to 0.86.3 and clears the Hermes V1 memory regression that hit apps importing react-native-worklets or reanimatedRORK — The two Rork products build different things: the original generates React Native via Expo, while Rork Max generates Swift and compiles it on a cloud Mac fleetAPPLE — Apple's event is September 9, with the iOS 27 release candidate landing the same day. General release is September 14, preorders September 12, and retail September 18TESTING — That leaves five working days between the RC and the public release. For React Native and Expo apps, it is the last clean window to run everything against Xcode 27 and the iOS 27 SDKSIRI — iOS 27 rebuilds Siri from the ground up, which puts anything using Siri Intents or voice input at the top of the list to verifyPLAY — Google Play's target API level 36 requirement took effect on August 31. If you did not make it, an extension request through November 1 is still available in Play ConsoleEXPO — expo@57.0.17 moves React Native to 0.86.3 and clears the Hermes V1 memory regression that hit apps importing react-native-worklets or reanimatedRORK — The two Rork products build different things: the original generates React Native via Expo, while Rork Max generates Swift and compiles it on a cloud Mac fleet
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.

Rork549app operations3indie development38App Store88long-term maintenance2

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 $15 for lifetime access
View Membership →

Related Articles

Business2026-05-12
What I Discovered Expanding My Rork App to Android — Key Differences Between App Store and Google Play
What actually differs between shipping to the App Store and shipping to Google Play — the AAB requirement, the 12-tester closed testing rule for new personal accounts, Data safety, staged rollouts, and how search works on each store.
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.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →