---
title: Previews
description: Run the exact candidate in its own environment and click through it before anything is merged — how previews start, what they include, how sign-in works, and when they expire.
---

A **preview** runs the candidate so you can use it yourself — before a single
line reaches your repository.

![A running preview of an online store Ysra built: the Atlas Market homepage with "Moroccan living, thoughtfully made." over a courtyard photo](../assets/screens/atlas/home.webp){ width="1600" height="917" }

## Start a preview

- In the workroom, press **Start preview** above the canvas.
- In the conversation, say *start preview*.
- On the phone, tap **Preview** in the output bar.

Previews start once coding has stopped, so the preview shows a finished version
rather than something mid-edit.

## What happens

1. Ysra rebuilds the **exact candidate** — the same version the checks and
   review looked at — in a **separate preview environment**, and confirms it
   matches before going further.
2. It installs dependencies and builds, just as your project does. For apps that
   need a database, it gets a temporary one, runs your migrations and seed data,
   and starts any services the app depends on.
3. It starts the app and gives you a link.

The first preview of a project can take a few minutes while dependencies install
and the app builds. Later previews of the same version are faster.

The preview environment is separate from the one doing the coding, so stopping
or replacing a preview can never disturb the work. It is also network-limited:
it can reach what your app needs to run, not the open internet.

## What you get

| | |
|---|---|
| **Link** | Opens the running app. On the phone it opens in the system browser. |
| **Kind** | A website opens as a page. An API is labelled as an API, with its address — not a blank page. |
| **Version** | Which candidate the preview is running. If the candidate changes, the preview resets. |
| **Temporary sign-in** | If the app needs an account, disposable sign-in details are created for this preview only. |

!!! warning "Never use real credentials in a preview"
    Use the temporary sign-in the preview gives you. Previews are for looking,
    not for production data.

## Stopping and expiry

Previews stop on their own after a while. Stop one yourself from the workroom
when you're done; start it again whenever you need it.

## Previews versus deployments

A preview is temporary and private to your team. Putting a candidate live on
your hosting is a [deployment](delivery.md#deploying) — a separate, explicitly
authorised step.
