Managing Your App

Pausing, resuming, and deleting apps and projects, and the difference between deployment and static apps.

Pausing an app

Pausing stops every running replica of your App without deleting anything — your App, its configuration, its environment variables, its deploy history, and its domains are all left exactly as they are. Use this for an app you want offline temporarily (an old demo, something between billing cycles, anything you're not ready to delete).

Pausing is asynchronous: the App's status moves to pausing, then to paused once every replica has actually stopped (or to pause_failed, with a reason shown, if a replica didn't stop cleanly — pausing again retries it). It's safe to pause an app that already has nothing running.

Resuming a paused app

Resuming starts fresh replicas of your App's last active release — the same container port, health check, and resource settings it was running with before you paused it. No rebuild happens; this just brings the same release back up.

Status moves from resuming to active (or to resume_failed, with a reason shown, if a replica fails to start — resuming again retries it). An app that was paused before ever having a successful deploy simply ends up active with nothing running, since there's no previous release to bring back.

Deleting an app

Deleting an App removes it permanently, along with its deploy history. An App must be paused before it can be deleted — this exists to make sure you never delete something that's still actively serving traffic by accident.

Deleting a project

A Project can only be deleted once every App inside it has been deleted first. This mirrors the App rule above: nothing gets removed while something underneath it is still around.

Static vs. Deployment apps

An App's type is chosen when it's created and can't be changed afterward:

  • Deployment apps are built from your source with Cloud Native Buildpacks and run as a container process — this is what you want for a web app, an API, a background service, anything with server-side code.
  • Static apps skip the build step and serve your source directory's files directly — use this for something that's already just HTML/CSS/JS (including the output of a frontend build step you ran yourself before uploading/pushing it).

If you're not sure which one you need: if your project has a package.json, requirements.txt, go.mod, or similar that needs to actually run as a process, use Deployment. If it's just static files with nothing to execute, use Static.