# Choose an app lifecycle

An app's lifecycle determines how long its running environment stays available. It is separate from the lifetime of the app record, definition, and saved resources. A stopped app can be started again; stopping is not deletion.

## Choose a mode

Open **Settings**, find **Lifecycle**, and choose the mode that fits the task.

| Mode | Behavior | Considerations |
| --- | --- | --- |
| **Always on** | Stays running until you stop it. | Keeps its runtime resources while idle. |
| **Timed** | Stops when its lease expires. | Extend the current lease from Overview when you need more time. |
| **On demand** | Sleeps after a period without platform-observed activity and wakes on the next visit. | The first visit after sleeping waits for a cold start. |

For Timed, set **Lease length**. For On demand, set **Idle timeout**. Enter whole minutes within the form's allowed range; the maximum policy duration is 24 hours. An empty field uses the server default. Choose **Save changes** to apply the setting.

## Activity and sleep

On-demand activity means activity observed by Strive, such as data reads through the platform. Raw page traffic alone does not guarantee that the app stays awake. A browser tab can remain open while the app becomes eligible to sleep.

Overview labels a running on-demand app **Sleeps when idle** and a stopped one **Asleep — wakes on visit**. It does not show the timed app's manual Extend control because there is no manually extended fixed lease in this mode.

## Policy versus a one-off extension

Settings defines the ongoing lifecycle policy. **Extend** in Overview adds time to the currently running timed lease. It does not rewrite the stored policy for future starts. A later policy change can replace the current grant, so choose the policy intentionally instead of using a rename or unrelated setting edit to adjust running time.

Lifecycle settings do not grant sharing access, activate an immutable release, or remove resources. Use [Start and stop](/docs/apps/start-stop) for runtime controls and [Trash and restore](/docs/apps/trash-and-restore) when retiring an app.
