zship.app.json is the app-level source of truth for public identity.
Required fields
appKey: tenant key injected server-side into backend requestsdomainandsiteUrl: production host metadatasiteName,tagline, anddescription: public copybrand.name,brand.logo, andbrand.logoDark: brand assetsseo.landingTitleandseo.landingDescription: default head metadatadashboard.urlanddashboard.features: dashboard entry and feature flagsheader/footer: optional shell navigation and footer sectionsanalytics: optional GA / Plausible / Clarity plus consent banner switch
Runtime adapter
src/lib/site.ts imports the manifest, validates required strings, and exports APP_KEY plus siteConfig.
Safety rules
- Do not store secrets in
zship.app.json. - Do not trust a browser-supplied
app_keyfor authenticated or billing operations. - Keep feature switches in the manifest and enforcement in the page/API code where needed.