Preview deploys
Four ways to get a shareable URL before going live
A preview runs a version of your app at its own URL without touching the live one. Share it, click around, then promote it to live or let it expire. There are four kinds — they differ in how they're triggered, what URL they get, and how long they live.
Ephemeral — percher publish --preview. Deploys to {app}--p-{slug}.percher.run with a random slug, so every publish gets a fresh URL. Expires automatically after 24 hours. This is the quick "look at this" preview.
Preview branch (stable URL) — percher preview branch set <branch>. Pins a branch to the fixed address {app}-preview.percher.run. The URL never changes; every push to the pinned branch updates what it serves. Use this when you want one preview address to bookmark or share standing links to.
Auto branch — enable autoPreviews on the connected GitHub repo, then every push to a non-live branch deploys to {app}--p-{branch}.percher.run.
Pull request — open a PR on the connected repo and it deploys to {app}-pr-{n}.percher.run, where n is the PR number.
Finding them. The app's Overview shows the four surfaces in the Previews panel, with every currently reachable preview linked under Active now together with its time left. The full list — including expired and failed ones — lives under Publishes → Deploys & previews, where you can open, promote (make it the live version), or discard each preview.
Previews of a private app are gated the same way as the app itself — a preview URL never exposes a private app publicly.