Skip to content

Custom Subdomains

Subdomain Format

Tunnel URLs follow this pattern:

https://{subdomain}.expose.{your-domain}

For example:

  • https://myapp.expose.yourdomain.com
  • https://api-preview.expose.yourdomain.com

Choosing a Subdomain

When exposing a service, enter your desired subdomain:

  1. Click Expose on a running service
  2. Enter your subdomain (e.g., myapp)
  3. Click Done

Naming Rules

RuleExample
Lowercase lettersmyapp
Numbersapp2
Hyphens (not at start/end)my-app
3-63 charactersapp

Invalid examples:

  • MyApp — uppercase not allowed
  • -myapp — can’t start with hyphen
  • my_app — underscores not allowed
  • ab — too short

Default Subdomains

If you don’t specify a subdomain, Expose suggests one based on:

  1. Project name (sanitized)
  2. Framework name
  3. Directory name

Reserved Subdomains

Some subdomains may be reserved:

  • api — Often reserved for the Expose API
  • www — Common web convention
  • Admin-reserved names

If a subdomain is reserved, you’ll see an error when trying to use it.

Subdomain Availability

Subdomains are unique per user. If another user has myapp, you can still use it because your domain is different.

However, if you already have myapp active, you can’t create a second tunnel with the same subdomain until you disconnect the first.

Persistent Subdomains

By default, subdomains are temporary — they’re released when you disconnect.

To keep a subdomain reserved (coming soon):

  1. Go to SettingsSubdomains
  2. Add subdomains you want to reserve
  3. These won’t be available to other users

Project Groups

When exposing a project group, subdomains are auto-generated:

Group: my-fullstack-app
├── frontend → my-fullstack-app-frontend.expose.domain.com
├── backend → my-fullstack-app-backend.expose.domain.com
└── docs → my-fullstack-app-docs.expose.domain.com

Tips

Use Descriptive Names

✓ staging-checkout-flow
✓ demo-2024-01
✓ client-review
✗ test
✗ temp
✗ xxx

Include Context

For client demos:

acme-demo.expose.domain.com

For feature branches:

feature-auth.expose.domain.com

Keep It Short

Shorter subdomains are easier to share:

✓ api-v2
✗ my-super-awesome-api-version-2-beta