Every deployment on Unkey receives automatic *.unkey.app subdomains with no DNS configuration required. These domains are available as soon as the deployment completes.
Immutable vs sticky#
Wildcard domains fall into two categories based on how they resolve over time.
Immutable domains are locked to a specific commit or deployment and never change. The same URL always returns the same version of your app. Use immutable domains when you need a permanent reference to an exact version, for example in incident reports, audit trails, or rollback verification.
Sticky domains follow the latest deployment that matches a condition (a branch, an environment, or production). The URL stays the same, but the deployment behind it changes as you push new code. Use sticky domains for bookmarks, CI/CD integrations, and sharing preview links that stay up to date.
Immutable domains#
Tied to a specific commit. Once created, it always resolves to the deployment built from that commit.
Example: myapp-api-git-a1b2c3d-acme.unkey.app
Deployments created via CLI upload include a random suffix to prevent collisions when deploying from a dirty git state.
Tied to a specific deployment ID. Similar to commit domains, but references the deployment rather than the commit.
Example: myapp-api-dep-xyz789-acme.unkey.app
Sticky domains#
Follows the latest deployment on a given branch. Each time you push to the branch, this domain updates to point to the new deployment.
Example: myapp-api-git-main-acme.unkey.app
Branch names are slugified: non-alphanumeric characters become hyphens, and the name is truncated to 80 characters.
Follows the latest deployment promoted to a specific environment. When you promote a new deployment or roll back, this domain updates automatically.
Example: myapp-api-staging-acme.unkey.app
A short-form URL that always resolves to the current production deployment. Unkey creates this domain only for the production environment.
Example: myapp-api-acme.unkey.app
When to use each type#
| Domain | Use case |
|---|---|
| Commit | Link to an exact commit's deployment in an incident report or changelog |
| Deployment | Reference a specific deployment for debugging or comparison |
| Branch | Share a preview URL in a pull request that stays current |
| Environment | Point integration tests at a stable staging URL |
| Live | Give internal tools a short, memorable production URL |