Skip to main content
Deploy

Deployment URLs

Understand unique deployment URLs, branch previews, and production domains.

Easel uses different URL types for immutable deployment identity and stable project workflows.

All generated hostnames use the suffix preview.easelusercontent.com and are reachable over HTTPS. You can find them on a deployment's detail page in the Domains section.

Unique deployment URL

Every successful deployment receives a unique URL tied to the Git commit hash (or a fallback identifier for non-Git deploys).

A unique deployment URL identifies one specific deployment and never moves to a different deployment.

Use it to:

  • Inspect a particular build
  • Compare two deployments
  • Link directly to a historical version
  • Diagnose behavior from a specific commit

Pattern:

https://{project}-{commit9}-{scope}.preview.easelusercontent.com

Example for project My App, commit a1b2c3d4e, and workspace scope acme:

https://my-app-a1b2c3d4e-acme.preview.easelusercontent.com

The commit segment is the first 9 alphanumeric characters of the Git commit hash.

Branch preview URL

A branch preview URL is a stable alias for the latest Ready Preview deployment on a branch.

Pattern:

https://{project}-git-{branch}-{scope}.preview.easelusercontent.com

Example for project My App, branch feature/login, and scope acme:

https://my-app-git-feature-login-acme.preview.easelusercontent.com

When a new commit on the branch deploys successfully, the branch URL moves to the new deployment. The branch URL does not move when the new deployment fails or is canceled.

Pull request preview URL

A pull request preview URL is a stable alias associated with a pull request number.

Pattern:

https://{project}-pr-{number}-{scope}.preview.easelusercontent.com

Example for project My App, pull request 42, and scope acme:

https://my-app-pr-42-acme.preview.easelusercontent.com

Branch and pull request URLs are separate aliases. They may point at the same Ready deployment when both apply, but they have different hostnames.

Closing or merging the pull request does not delete existing deployments. The PR hostname stops receiving new updates when no newer Ready deployment is assigned to it.

Production project URL

Each project receives a default Easel production hostname.

Pattern:

https://{project}-{scope}.preview.easelusercontent.com

Example for project My App and scope acme:

https://my-app-acme.preview.easelusercontent.com

The production project URL points to the current production deployment. When auto-assign is off, a Ready Production deployment can exist without updating this URL until you promote it.

Custom domains

Custom domains also point to the current production deployment.

Examples:

https://example.com
https://www.example.com

Assigning a custom domain changes routing. It does not create a new deployment. Configure domains in Project settings → Custom Domains. See Domains.

URL behavior

URL typeStable addressTarget can changeIdentifies one deployment
Unique deployment URLYesNoYes
Branch preview URLYesYesNo
Pull request preview URLYesYesNo
Production project URLYesYesNo
Custom domainYesYesNo

URL updates

Stable URLs update after the target deployment reaches the assigning-domains stage and becomes Ready.

During a new build:

  • The old Ready deployment continues serving traffic
  • The new deployment builds independently
  • Easel updates the stable URL only after the new deployment is publishable
  • A failed deployment leaves the stable URL unchanged

Edge manifests refresh on a short TTL, so there can be a brief propagation period after routing changes.

URL naming

Easel builds hostnames from slugified components:

  • Uppercase characters become lowercase
  • Non-alphanumeric characters become hyphens (feature/loginfeature-login)
  • Consecutive hyphens collapse
  • Scope segments are capped for length
  • Subdomains are capped at 63 characters; Easel truncates the scope segment first so the project name stays readable

If the slugified project name looks like a domain (for example www-mycompany-com), Easel shortens it to avoid browser anti-phishing warnings. Branch, commit, and scope segments are unchanged.

Retention

A URL resolves only while its deployment remains Ready and the project remains available.

  • There is no plan-based deployment URL expiration today
  • Spinning down a deployment stops serving its unique URL
  • Pausing a project stops production URLs; preview URLs keep working
  • Suspending a workspace stops all project traffic, including previews

See Managing deployments and Deployment troubleshooting.