Runstack Docs

Whitelabelling

Customize Runstack's connector auth screens with your company logo and name for a branded user experience.

Runstack supports whitelabelling on connector OAuth screens. When users connect services like GitHub, Gmail, or Notion through your integration, they see your company branding instead of the default Runstack branding.

What gets customized

ElementDefaultWith branding
Logo on auth screenRunstack logoYour company logo
Company name"Runstack"Your company name
"Secured by" footer"Secured by Runstack""Secured by [Your Company]"

Both the connect screen (before OAuth) and the result screen (after OAuth success/failure) reflect your branding.

Setup

1. Go to Branding settings

Navigate to SettingsBranding in the Runstack dashboard, or go directly to /settings/branding.

Click Upload Logo and select an image file:

  • Formats: PNG, JPG, or SVG
  • Max size: 512 KB
  • Recommended dimensions: 56x56px or larger (displayed as a circle)

3. Set your company name

Enter your company name in the Company Name field. This replaces "Runstack" on the auth screen and the "Secured by" footer. Maximum 100 characters.

4. Preview and save

The preview section shows how the auth screen will look with your branding. Click Save Changes when you're satisfied.

How it works

When a user visits a connector auth screen (e.g., /auth/provider/github), Runstack loads your branding settings from the database and passes them to the auth card components. The branding is resolved server-side, so there's no flash of default branding.

If no custom branding is set, the default Runstack logo and name are used.

API

Get branding (authenticated)

GET /api/settings/branding
Authorization: Clerk session

Returns:

{
  "companyName": "Acme Corp",
  "logo": "data:image/png;base64,..."
}

Update branding

PUT /api/settings/branding
Content-Type: application/json
Authorization: Clerk session

{
  "companyName": "Acme Corp",
  "logo": "data:image/png;base64,..."
}

Set companyName or logo to null to revert to defaults.

Public branding endpoint

GET /api/branding/[clerkUserId]

Returns the same companyName and logo fields. No authentication required -- only non-sensitive branding data is exposed. This endpoint is used internally by auth screens.

Limitations

  • Logo is stored as a base64 data URL in the database. Keep it under 512 KB.
  • Branding is per-user (per Clerk account), not per-organization.
  • Only the connector OAuth screens are branded. The main Runstack dashboard uses the default branding.

On this page