Branding

Rebrand the app in one pass with the rebrand script.

Soar Tauri ships with literal starter identity on purpose: product name Soar Tauri, app id com.soarstarter.tauri, slug soar-tauri, and deep-link scheme soar-tauri://. Replace them early, before you issue installers, register redirect URLs, or create keychain entries for real users.

Source of truth

Application code imports its identity from shared/constants.ts. Static files that cannot import TypeScript are updated by scripts/rebrand.mjs.

Prop

Type

One-pass rebrand

Every flag is optional; only supplied values change. --homepage defaults to --repo, and --license defaults to its LICENSE file.

pnpm rebrand \
  --name "Acme" \
  --app-id com.acme.app \
  --slug acme \
  --scheme acme \
  --email support@acme.com \
  --repo https://github.com/acme/app \
  --homepage https://acme.example \
  --license https://acme.example/license

Preview the write set without changing files:

pnpm rebrand --name "Acme" --scheme acme --dry-run
FlagValue it changes
--nameDisplay name, Tauri product/window name, and Cargo description
--app-idAPP_ID and Tauri identifier
--slugPRODUCT_SLUG and the npm package name
--schemePROTOCOL_SCHEME and the Tauri deep-link registration
--emailSUPPORT_EMAIL
--repoREPO_URL and package repository; also derives homepage/license unless overridden
--homepageHOMEPAGE_URL
--licenseLICENSE_URL

The script rewrites exactly four files: shared/constants.ts, src-tauri/tauri.conf.json, src-tauri/Cargo.toml, and package.json.

Finish the manual pass

The script synchronizes its known identity fields, not every branded asset or deployment setting.

ItemWhat to update
App iconsRun pnpm tauri icon path/to/1024x1024.png to regenerate src-tauri/icons/.
Tray iconsEdit the source SVG and regenerate the PNGs under resources/build/tray/ using docs/APP_ICONS.md.
Screenshots and locale copyReplace demo media and product-specific strings under src/locales/{en,zh}/.
Supabase and billing redirectsAllow the new scheme in Supabase Auth and return checkout to a URL such as acme://billing.
Update feedReplace the updater endpoint and minisign public key in src-tauri/tauri.conf.json; configure UPDATE_SERVER_URL for your feed.
Keychain identityChange SERVICE_NAME in src-tauri/src/commands/secure.rs; pnpm rebrand currently leaves com.soarstarter.tauri there. Do this before users store sessions.
Remaining native metadataReview bundle.publisher, homepage, copyright, and descriptions in tauri.conf.json. The macOS override also still has its own title in src-tauri/tauri.macos.conf.json.
Legal acknowledgementsReview CREDITS.md and every dependency license. Its origin attribution is appreciated but not required by the referenced MIT license.

Changing the keyring service after release makes existing entries appear missing. If this is an established app, design a migration instead of simply renaming SERVICE_NAME.

Verify

Run the app and cut a packaged build after the manual pass:

pnpm format:check
pnpm lint:check
pnpm typecheck
pnpm test
pnpm tauri build

Check the window and About names, installer name, bundle identifier, dock/taskbar and tray icons, keychain service, and a packaged deep link such as acme://settings. Also search for starter identity that you did not intend to keep:

rg "Soar Tauri|soar-tauri|com\.soarstarter\.tauri" \
  shared src src-tauri package.json

On this page