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/licensePreview the write set without changing files:
pnpm rebrand --name "Acme" --scheme acme --dry-run| Flag | Value it changes |
|---|---|
--name | Display name, Tauri product/window name, and Cargo description |
--app-id | APP_ID and Tauri identifier |
--slug | PRODUCT_SLUG and the npm package name |
--scheme | PROTOCOL_SCHEME and the Tauri deep-link registration |
--email | SUPPORT_EMAIL |
--repo | REPO_URL and package repository; also derives homepage/license unless overridden |
--homepage | HOMEPAGE_URL |
--license | LICENSE_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.
| Item | What to update |
|---|---|
| App icons | Run pnpm tauri icon path/to/1024x1024.png to regenerate src-tauri/icons/. |
| Tray icons | Edit the source SVG and regenerate the PNGs under resources/build/tray/ using docs/APP_ICONS.md. |
| Screenshots and locale copy | Replace demo media and product-specific strings under src/locales/{en,zh}/. |
| Supabase and billing redirects | Allow the new scheme in Supabase Auth and return checkout to a URL such as acme://billing. |
| Update feed | Replace the updater endpoint and minisign public key in src-tauri/tauri.conf.json; configure UPDATE_SERVER_URL for your feed. |
| Keychain identity | Change 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 metadata | Review 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 acknowledgements | Review 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 buildCheck 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