# Project URLs

> Give a deployed app a readable address. Set one namespace for your organization, add an alias per project, and both URLs reach the same app.

Every deployed project answers at `https://{project-id}.helix-app.ai`, and that address never changes. A project URL puts a readable name in front of it: an org admin sets one namespace for the whole organization, each project takes an alias, and the app also answers at `https://{alias}-{namespace}.helix-app.ai`. Both addresses reach the same app, and both stay behind login.

## The two halves of the address

```
https://{alias}-{namespace}.helix-app.ai   pattern
https://invoices-acme.helix-app.ai         example
```

| Part | Scope | Who sets it | Where |
|---|---|---|---|
| Namespace | One per organization, shared by every project in it | Org admins | Organization settings, General tab |
| Alias | One per project | Anyone who can change that project | The project's Settings tab |

The namespace comes first. Until your organization has one, the Project URL field on a project is read only and tells you to ask an org admin.

## Set the organization namespace

1. Open **Organization settings** from the user menu, then the **General** tab.
2. Type a namespace into the Namespace card, or keep the one suggested from your organization name.
3. Save.

A namespace is 3 to 30 characters, lowercase letters and numbers only. Hyphens are not allowed in it, because the hyphen is what separates the alias from the namespace in the hostname. If the name is already taken, the card says so and you pick another.

:::warning{title="Changing the namespace moves every project URL"}
The namespace is shared by the whole organization. Change it and every project URL changes with it. The old addresses stop working straight away, and anywhere they were bookmarked, shared, or saved needs updating.

Every project stays reachable at `https://{project-id}.helix-app.ai` throughout. That address is unaffected by a namespace change, an alias change, and a release, which is why anything automated should point there.

Helix asks you to confirm, showing the current namespace against the new one, before the change goes through. Setting a namespace for the first time breaks nothing, so it saves without a confirmation step.
:::

## Set a project URL

1. Open the project in the dashboard and go to its **Settings** tab.
2. Type a name into the **Project URL** card. The field shows the rest of the address next to what you type, so you can read the result before you commit to it.
3. Wait for the availability check, then save.

An alias is 3 to 30 characters: lowercase letters, numbers, and hyphens, with a letter or a number at each end. It also has to be free across your organization, and a few names are reserved. The card checks the name as you type and says whether it is available, taken, reserved, or not usable in a URL, so you find that out before you save rather than after.

What you type is trimmed and lowercased before it is stored, so `Invoices` is saved as `invoices`. When the saved form differs from what is in the field, the card shows you the form it will use.

## Change or release a URL

Both actions live on the Project URL card, and both ask you to confirm:

- **Change it.** Save a different alias. The old address stops working the moment you save, and the old name goes back into the pool for other projects in your organization.
- **Release it.** Choose **Release URL** to give up the alias without taking a new one. The app then answers at its project ID URL only.

An old address stops working rather than forwarding to the new one, so send the new one to anyone who was using it.

## Which address to use where

| Address | Use it for |
|---|---|
| `https://{project-id}.helix-app.ai` | Webhooks, integrations, and anything else that has to keep working. The project ID never changes. |
| `https://{alias}-{namespace}.helix-app.ai` | People. Links you send, bookmarks, and anything you have to read out loud. |

The project ID URL keeps working after you set an alias, and the project's Settings tab shows it under Project ID with a copy button. That is the address to hand to anything automated.

The namespace and the alias are dashboard settings rather than project code. Nothing in `helix.config.ts` names either one, and changing one takes effect without a new deployment.

## Who can change what

| Change | Who can make it |
|---|---|
| The organization namespace | Org admins |
| A project's alias | The people who can change that project, which is the same set that can deploy it |

If you cannot make one of these changes, the settings page says so at the top rather than leaving you to work it out from a disabled field.

## What a project URL does not change

A project URL is a friendlier name for the same protected app. It does not make anything public: visitors still sign in, and they still have to be covered by the project's Access Control setting. See [identity and roles](/documentation/guides/identity-and-roles/).

Namespace and alias changes are both recorded in the [activity trail](/documentation/governance/audit-and-compliance/), so an admin can see who moved an address and when.

---

Canonical: https://helix.tray.ai/documentation/guides/project-urls/
Any link on this page is available as markdown by appending .md to its URL.
Full corpus: https://helix.tray.ai/documentation/llms-full.txt