Docs/Customization
Customization

Branding

Site name, logo, colors, SEO. Config files and overrides.

Last updated Mar 19, 2026

Customize your ZShip site's brand without code changes where possible.

Config file (no rebuild for backend vars)

Feature Config File Fields
Astro brand identity apps/web/zship.app.json appKey, domain, siteUrl, siteName, tagline, description, brand.*, links.*, dashboard.url
Nuxt brand identity apps/web-nuxt/zship.app.json appKey, domain, siteUrl, siteName, brand.*, links.*, contactEmail
Nuxt header / footer apps/web-nuxt/zship.app.json header.*, footer.*, dashboard.features.*
Dashboard brand packages/dashboard/config/brand.ts BRAND_NAME, STORAGE_PREFIX
Analytics apps/web/zship.app.json / apps/web-nuxt/zship.app.json analytics.googleAnalytics.measurementId, analytics.plausible.*, Nuxt also supports analytics.clarity.projectId

Analytics (Google Analytics 4 & Plausible)

Public pages that use the shared Base layout load scripts from apps/web/src/components/AnalyticsHead.astro. Nothing is injected unless you set valid values in apps/web/zship.app.json under analytics.

Google Analytics 4

  • Set analytics.googleAnalytics.measurementId to your GA4 Measurement ID (format G- followed by alphanumeric characters).
  • Leave it empty or omit googleAnalytics to disable gtag.js.

Plausible

  • Set analytics.plausible.domain to the same domain you registered in Plausible (e.g. yoursite.com).
  • Default script URL is https://plausible.io/js/script.js.
  • Self-hosted Plausible: set scriptSrc to your instance’s script URL (e.g. https://plausible.example.com/js/script.js).
  • Reverse proxy: set apiEndpoint to your proxied event endpoint; it is emitted as the data-api attribute on the script tag.

You can enable GA4, Plausible, both, or neither. Rebuild the web app after changing zship.app.json.

How to rebrand

  1. Edit apps/web/zship.app.json — change appKey, domain, siteName, brand.*, links.*, and analytics.*
  2. Edit packages/dashboard/config/brand.ts — change BRAND_NAME (dashboard sidebar)
  3. Replace /public/logo.svg and /public/favicon.ico with your assets
  4. For Nuxt apps, edit apps/web-nuxt/zship.app.json; keep apps/web-nuxt/app/config/site.ts as the manifest adapter

Component overrides

Place files in apps/web/src/overrides/ to override shared components without modifying packages. The zship-resolver plugin auto-resolves overrides.

See apps/web/src/overrides/README.md for details.