Preview deployments
Test branches and pull requests before releasing them to production.
Preview deployments provide isolated versions of your application for testing changes before release.
They use Preview environment variables and do not replace the deployment serving your production domains.
Branch previews
When you push to a non-production branch, Easel creates a Preview deployment for that commit.
A branch may have two related URLs:
- A unique deployment URL for the specific commit
- A stable branch preview URL that points to the latest Ready deployment for the branch
When a newer deployment reaches Ready, Easel updates the branch preview URL to point to it. The older deployment remains available through its unique deployment URL while that deployment stays Ready.
While a newer deployment is building or if it fails, the stable branch URL continues serving the previous Ready deployment.
Pull request previews
When you push a branch that has an open pull request in the connected repository, Easel associates a pull request preview URL with the Preview deployment.
Branch and pull request URLs are separate aliases. They may point at the same underlying Ready deployment, but they are different hostnames:
- Branch:
…-git-{branch}-… - Pull request:
…-pr-{number}-…
A pull request preview is useful to:
- Review UI changes
- Test application behavior
- Share work with teammates
- Run automated checks against a deployed version
- Validate integrations before merging
The Git provider integration can post the preview URL and deployment status on the pull request and related commits.
Updating previews
Each new commit creates a new deployment.
Easel updates stable preview URLs only after the new deployment reaches Ready. Failed or canceled deployments do not replace the last working preview.
The unique URL for an older deployment does not move to a newer deployment.
Preview environment variables
Preview deployments use variables configured for the Preview environment.
Use Preview variables for services that should not affect production, such as:
- Test databases
- Sandbox API credentials
- Preview-only feature flags
- Non-production callback URLs
For branch-specific values, set a Preview branch override in Project settings → Environment Variables.
Forks and untrusted code
Easel creates Git deployments from pushes to the connected repository. There is no separate fork-approval or secret-stripping gate for forked pull requests.
Treat Preview configuration as untrusted-input space:
- Keep Production secrets out of Preview variables
- Prefer Preview branch overrides only where needed
- Enable Deployment Protection in project settings when previews must not be public
Preview access
By default, preview hostnames are publicly reachable.
Enable Deployment Protection in project settings so visitors to default Easel hostnames must authenticate before they see the app. Custom production domains can stay public while default hostnames remain gated.
Preview responses also send X-Robots-Tag so crawlers skip indexing.
Closing or deleting a branch
Deleting a Git branch or closing a pull request does not delete existing deployments.
- Unique deployment URLs continue to resolve while the deployment remains Ready
- Stable branch and pull request aliases stop receiving new updates when no newer Ready deployment is assigned
- You can still promote a Ready Preview deployment to production (rebuild) or inspect it in deployment history