# Brand your hosted pages Put your product's name, logo, and color on the pages where your users sign in and manage their accounts, and send them back to your application when they are done. This guide covers the five branding fields, the rules each one enforces, and how to check the result. ## Where your hosted pages live Your users sign in on your tenant's own host, `https://{tenantId}.udibo.com`, where `{tenantId}` is the id in your dashboard URL. Branding applies to the pages that host serves them: - Sign-in, including email codes and links, social sign-in, and MFA steps - Create account and the waitlist - Forgot password, reset password, email verification, and account unlock - The consent screen shown for third-party applications - The account pages `/profile`, `/security`, and `/connected-apps` - `/organization-invite`, where an emailed organization invitation opens when you have not set a home URL Custom domains for hosted pages are not available. The pages are always served from your tenant's `udibo.com` host; branding changes what they show, not their address. ## Set branding in the dashboard 1. Open your tenant in the dashboard and choose **Settings**. 2. Scroll to **Branding** and fill in the fields you want. The preview beside the form updates as you type. 3. Choose **Save branding**. Saving requires permission to manage tenant settings. Each save replaces the whole set, so a field you leave blank returns to its default. Changes appear on the next page load. - **Display name** — shown beside the logo, in the browser tab title, and on the account pages' **Continue to** button. 1–60 characters after trimming, with no line breaks, control characters, or invisible formatting characters. Blank uses the **Tenant name** from **Settings** → **General**. - **Logo URL** — an absolute `https` URL to an image you host, shown about 32 pixels tall beside the display name. Uploading a file is not available. Blank shows no logo. - **Accent color** — a six-digit hex color such as `#1D4ED8`, used for buttons, focus rings, and links. It replaces the default accent; hover and tint shades are derived from it. Blank keeps the default. - **Support URL** — an absolute `https` URL. It appears as a **Contact support** link where a person has no self-serve way forward: account creation when sign-up is closed, waitlisted, or has no available method, and the MFA challenge for someone who lost their authenticator and recovery codes. Blank shows no link. - **Home URL** — your own application. When nothing asked for the person back, it is where a signed-in person lands and where **Continue to** points. It is also where organization invitation emails link. Blank falls back to a redirect URI origin of your oldest first-party application, and invitation emails open the hosted `/organization-invite` page instead. For local development, `http://localhost` and `http://127.0.0.1` URLs are also accepted. ### Why a value is refused - **Accent color too light.** Button text must reach a contrast of at least 4.5:1 against the color. For example, `#3B82F6` is refused and `#1D4ED8` is accepted. A refused color is never darkened for you; the preview warns before you save. - **Home URL not registered.** Its origin, including any port, must match a redirect URI registered on one of your applications. Wildcard redirect URIs do not count. If you later remove that redirect URI, the home URL is ignored until the origin is registered again. See [where an accepted invitation lands](https://www.udibo.com/docs/identity/organizations#where-an-accepted-invitation-lands-when-nothing-asked-for-the-person-back) for how invitations use it. - **Not an `https` URL.** Logo, support, and home URLs must be absolute; `data:` and `javascript:` URLs are refused. Udibo adds no watermark or badge to your branded pages, and branding is not tied to a plan. The management API's `PATCH /api/identity/tenants/{id}` accepts the same fields as a `branding` object, applies the same rules, and replaces the stored branding whole. Today you reach it through the dashboard; see [choose the right API](https://www.udibo.com/docs/identity/apis#the-management-api). ## Check the result 1. Open `https://{tenantId}.udibo.com/sign-in` in a private browser window. 2. Confirm the display name, logo, tab title, and button color. 3. With sign-up closed, open `/create-account` and confirm the **Contact support** link. 4. Sign in, open `/security`, and confirm that **Continue to** reaches your home URL. ## Limits today - **No custom domains.** Hosted pages stay on `{tenantId}.udibo.com`. - **No logo upload.** Point at an image you already host. - **One accent color.** Fonts, CSS, and page layout cannot be customized. - **Email is only partly branded.** See [send email from your domain](https://www.udibo.com/docs/identity/email#what-your-branding-changes-in-email). **Next:** [send email from your domain](https://www.udibo.com/docs/identity/email), or work through the [production checklist](https://www.udibo.com/docs/identity/production). _Last verified 2026-09-29._