Set an app’s browser tab title, favicon, and the title, description, and image shown when its link is shared, with seoSettings in the app’s zite.config.json.
Each app has its own browser tab title, favicon, and link preview (the card shown when someone shares the
app’s URL in Slack, iMessage, or social media). They live under seoSettings in the app’s
apps/<dir>/zite.config.json. The owner can edit the same fields under Settings → Branding, which writes to
this file.
{ "seoSettings": { "title": "Acme Helpdesk", "description": "Submit and track support requests for Acme customers.", "faviconUrl": "https://example.com/acme-favicon.png", "thumbnailUrl": "https://example.com/acme-preview.png" }}
Field
Sets
title
The browser tab title and the link preview title
description
The link preview description and the meta description
faviconUrl
The browser tab icon, and the Apple touch icon unless PWA settings set one
thumbnailUrl
The link preview image. Use a 1.91:1 image, such as 1200×630
All four fields are required strings. Use "" for any field you don’t want to set: an empty string
leaves that field to the fallbacks below. A seoSettings object missing a field fails config
validation, and the build tools reject the file write with an error naming the field.Changes take effect when the app is published.
For each field, the first of these that exists is used:
The value in seoSettings.
The matching tag in the app’s own index.html: its <title>, <meta name="description">, <link rel="icon">, or og:image.
The platform default: the app name followed by | Zite for the title, a generic Zite description, the Zite favicon, and, for public (external) apps, a screenshot of the app as the preview image. Internal apps get no preview image by default.
The starter’s <title>Zite App</title> and /vite.svg favicon count as placeholders, so they never
override the platform defaults.
faviconUrl and thumbnailUrl must be URLs a browser can load. When the owner uploads an image under
Settings → Branding, Zite hosts it and fills in the URL. The build tools can’t upload images, so an
agent either uses a URL the user already has (their website’s favicon, a logo on a CDN) or asks the user to
upload the image in Settings → Branding.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Zite Platform","colors":{"primary":"#292929","light":"#FFD202","dark":"#0F0F0F"},"logo":{"light":"https://mintcdn.com/zite-js/LSPdozoqw4nFOq3k/logo/light.svg?fit=max\u0026auto=format\u0026n=LSPdozoqw4nFOq3k\u0026q=85\u0026s=fa83feb01f3d85c0ca46aad9a6419281","dark":"https://mintcdn.com/zite-js/LSPdozoqw4nFOq3k/logo/dark.svg?fit=max\u0026auto=format\u0026n=LSPdozoqw4nFOq3k\u0026q=85\u0026s=2bda77a8d14427719e80cfa4fb133234"},"favicon":"https://mintcdn.com/zite-js/LSPdozoqw4nFOq3k/favicon.svg?fit=max\u0026auto=format\u0026n=LSPdozoqw4nFOq3k\u0026q=85\u0026s=f87512a1c9310c771dd35a01d948534c","api":{},"appearance":{"default":"dark"},"background":{"color":{"light":"#FBFBFB","dark":"#252522"}},"navbar":{"primary":{"type":"button","label":"Dashboard","href":"https://app.zite.com"}},"footer":{"socials":{"x":"https://x.com/zite","linkedin":"https://www.linkedin.com/company/zitecom","github":"https://github.com/zite"},"links":[{"header":"Documentation","items":[{"label":"Quickstart","href":"/quickstart"},{"label":"Build with agents","href":"/mcp/overview"},{"label":"Zite.js","href":"/framework/overview"},{"label":"Database API","href":"/api/overview"},{"label":"Build API","href":"/build-api/overview"}]},{"header":"Product","items":[{"label":"Zite.com","href":"https://zite.com"},{"label":"Dashboard","href":"https://app.zite.com"},{"label":"Databases","href":"https://zite.com/database"},{"label":"Help center","href":"https://zite.com/help"}]},{"header":"Company","items":[{"label":"Careers","href":"https://recruiting.zite.com/join-us"},{"label":"Enterprise","href":"https://zite.com/enterprise"},{"label":"Blog","href":"https://zite.com/blog"}]}]},"fonts":{"heading":{"family":"STK Bureau Serif","weight":500,"source":"fonts/STKBureauSerif-Medium.woff2","format":"woff2"},"body":{"family":"STK Bureau Sans","weight":400,"source":"fonts/STKBureauSans-Regular.woff2","format":"woff2"}},"icons":{"library":"lucide"},"styling":{"eyebrows":"section","codeblocks":"system","latex":false},"integrations":{"intercom":{"appId":"bbe4x0bh"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor","vscode"],"display":"header"},"interaction":{"drilldown":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"zite-js","hasAudioNarration":false,"actualSubdomain":"zite-js","customDomains":["developers.zite.com"],"gitSource":{"type":"github","owner":"zite","repo":"developer-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae03d14de6f4d2b20a51016","collectionId":"8ba9d520-fc59-4cee-9cd5-d4109a956f9d","liveDeploymentHistoryId":"6ae03d14de6f4d2b20a51016","schemaVersion":"v3"},"entitlements":{},"buildId":"6ae03d14de6f4d2b20a51016","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"Guides","count":42},{"language":"default","tag":"Database API","count":32},{"language":"default","tag":"API reference","count":30},{"language":"default","tag":"Build API","count":19},{"language":"default","tag":"Build \u0026 Deploy","count":19},{"language":"default","tag":"Recipes","count":13},{"language":"default","tag":"Build sessions","count":10},{"language":"default","tag":"Zite.js framework","count":10},{"language":"default","tag":"Records","count":9},{"language":"default","tag":"Core concepts","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:\"STK Bureau Sans\";src:url(/fonts/STKBureauSans-Regular.woff2) format(\"woff2\");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:\"STK Bureau Serif\";src:url(/fonts/STKBureauSerif-Medium.woff2) format(\"woff2\");font-weight:500;font-style:normal;font-display:swap}:root{--zb-bg:#252522;--zb-surface:#2d2d2a;--zb-surface-hi:#31312e;--zb-sunken:#242421;--zb-sunken-light:#f3f3f0;--zb-rule:#353531;--zb-border:#3d3d38;--zb-edge:#4b4b48;--zb-fg:#ffffff;--zb-fg-2:#c9c9c4;--zb-muted:#989893;--zb-dim:#8c8c86;--zb-accent:#ffd202;--zb-serif:\"STK Bureau Serif\", \"Iowan Old Style\", Charter, Palatino,\n \"Palatino Linotype\", Georgia, serif;--zb-sans:\"STK Bureau Sans\", Inter, -apple-system, BlinkMacSystemFont,\n \"Segoe UI\", Helvetica, Arial, sans-serif;--zb-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;--zb-ink:#252522;--zb-ink-2:#3d3d38;--zb-container:1240px;--zb-gutter:40px;--zb-inset:12px;--gray-50:248 248 246;--gray-100:241 241 238;--gray-200:227 227 223;--gray-300:203 203 197;--gray-400:168 168 162;--gray-500:152 152 147;--gray-600:111 111 106;--gray-700:75 75 72;--gray-800:61 61 56;--gray-900:45 45 42;--gray-950:37 37 34;--zb-code-surface:var(--zb-sunken-light)}html.dark{--zb-ink:#f8f8f6;--zb-ink-2:#c9c9c4}a[href*=\"mintlify.com\"][href*=poweredBy],a[href*=\"mintlify.com\"][href*=poweredBy]+span{display:none!important}#navbar,#sidebar-content,footer,nav[aria-label=Main]{font-family:var(--zb-sans)}html{font-synthesis-weight:none}.prose b,.prose strong{color:var(--zb-ink)}.zx,html.dark{--zb-code-surface:var(--zb-sunken)}[data-component-part=code-block-root]{background-image:linear-gradient(var(--zb-code-surface),var(--zb-code-surface))}[data-fade-overlay][data-fade-overlay],html.dark [data-fade-overlay][data-fade-overlay]{background-image:linear-gradient(to right,transparent 0,color-mix(in srgb,var(--zb-code-surface) 20%,transparent) 10px,color-mix(in srgb,var(--zb-code-surface) 55%,transparent) 25px,color-mix(in srgb,var(--zb-code-surface) 85%,transparent) 35px,var(--zb-code-surface) 45px)}.zx .code-block,html.dark .code-block{border-width:0;box-shadow:0 0 0 1px rgba(255,255,255,.14)}html:not(.dark) .zx .shiki,html:not(.dark) .zx .shiki span{color:var(--shiki-dark)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}[id=ask-assistant-code-block-button]{display:none!important}.zx{--zb-copy-clearance:40px}.zx [data-component-part=code-block-root]{--code-padding-right:0px}.zx .code-block:has([data-floating-buttons]) .line:first-child::after{content:\"\";display:inline-block;width:var(--zb-copy-clearance)}.zx .code-block:has([data-floating-buttons]) [data-fade-overlay]{width:var(--zb-copy-clearance)}.prose a:not(.not-prose):not([class*=card]){color:var(--zb-ink);text-decoration-color:var(--zb-accent);text-decoration-thickness:1px;text-underline-offset:3px}.prose a:not(.not-prose):not([class*=card]):hover{color:var(--zb-ink-2);text-decoration-thickness:2px}[data-table-wrapper] :is(td, th) code{white-space:nowrap}[data-table-wrapper] tbody tr{--zb-row-hover:color-mix(in srgb, rgb(var(--gray-500)) 8%, transparent);transition:background-color .12s ease}[data-table-wrapper] tbody tr:hover{background-color:var(--zb-row-hover);box-shadow:-10px 0 0 var(--zb-row-hover),10px 0 0 var(--zb-row-hover)}@media (min-width:64rem){:root{--zx-sidebar-w:18rem}#sidebar-content{width:var(--zx-sidebar-w)}.is-not-custom~#body-content{padding-left:var(--zx-sidebar-w)}.is-not-custom~#body-content #content-area{margin-left:max(0px,calc(50vw - 348px - var(--zx-sidebar-w)))}}body:has(.zx-hero) nav[aria-label=Main] a[aria-current=location]{background-color:transparent;color:#a8a8a2}body:has(.zx-hero) nav[aria-label=Main] a[aria-current=location]:hover{background-color:color-mix(in oklab,#fff 4%,transparent);color:#f1f1ee}html:not(.dark) body:has(.zx-hero) #navbar{--background-light:37 37 34;--gray-50:37 37 34;--gray-100:45 45 42;--gray-200:61 61 56;--gray-300:75 75 72;--gray-400:111 111 106;--gray-500:152 152 147;--gray-600:168 168 162;--gray-700:203 203 197;--gray-800:227 227 223;--gray-900:241 241 238;--gray-950:248 248 246}html:not(.dark) body:has(.zx-hero) img.nav-logo[class*=\"dark:hidden\"]{display:none}html:not(.dark) body:has(.zx-hero) img.nav-logo[class*=\"dark:block\"]{display:block}html:not(.dark) body:has(.zx-hero) #navbar [class*=bg-white]{background-color:rgba(255,255,255,.08)}html:not(.dark) body:has(.zx-hero) #navbar a[class*=bg-primary]{background-color:var(--zb-accent);color:#0f0f0f}html:not(.dark) body:has(.zx-hero) #navbar a[class*=bg-primary] *{color:#0f0f0f}#navbar [class~=pb-px]{padding-bottom:0}#navbar [class~=h-9],#navbar a[class*=\"h-[34px]\"]{height:2rem}#navbar [class~=size-9]{width:2rem;height:2rem}html:not(.dark) #sidebar-content a[aria-current=page]{background:color-mix(in oklab,var(--zb-ink) 6%,transparent);border-radius:8px}html:not(.dark) body:not(:has(.zx-hero)) nav[aria-label=Main] a[aria-current=location]{background-color:color-mix(in oklab,var(--zb-ink) 8%,transparent)}.zx{--bg:var(--zb-bg);--surface:var(--zb-surface);--surface-hi:var(--zb-surface-hi);--sunken:var(--zb-sunken);--rule:var(--zb-rule);--line:rgba(255, 255, 255, 0.06);--line-2:rgba(255, 255, 255, 0.12);--edge:rgba(255, 255, 255, 0.16);--fg:var(--zb-fg);--fg-2:var(--zb-fg-2);--muted:var(--zb-muted);--dim:var(--zb-dim);--accent:var(--zb-accent);position:relative;margin-top:-2rem;background:var(--bg);color:var(--fg);font-family:var(--zb-sans);font-weight:400;-webkit-font-smoothing:antialiased}.zx [data-as=p]{display:contents}.zx img{margin:0;pointer-events:none}.zx-bleed{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}.zx-sec{position:relative;background:var(--bg)}.zx-sec+.zx-sec{border-top:1px solid var(--rule)}.zx-rails{position:absolute;inset:0;left:0;right:0;max-width:var(--zb-container);margin:0 auto;border-left:1px solid var(--rule);border-right:1px solid var(--rule);pointer-events:none}.zx-head-wrap{position:relative;border-bottom:1px solid var(--rule)}.zx-head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;max-width:var(--zb-container);margin:0 auto;padding:clamp(64px,10.3vw,148px) var(--zb-gutter) 40px}.zx-head-copy{max-width:800px;min-width:0}.zx-head-copy .zx-sub{max-width:598px}.zx-head-aside{flex:none;padding-bottom:4px}.zx-slot{position:relative;max-width:var(--zb-container);margin:0 auto;padding:var(--zb-inset)}.zx-eyebrow{margin:0 0 16px;font-size:.875rem;line-height:1.857;color:var(--accent)}.zx-h1,.zx-h2{margin:0;font-family:var(--zb-serif);font-weight:500;font-size:clamp(2.5rem,5vw,4rem);line-height:1.02;letter-spacing:0;color:var(--fg)}.zx-h2{font-size:clamp(2rem,3.6vw,2.75rem);line-height:1.04}.zx-sub{margin:16px 0 0;max-width:40rem;font-size:1rem;line-height:1.625;color:var(--muted)}.zx-h1+.zx-sub{font-size:1.0625rem;line-height:1.6}.zx :not(pre)>code{font-family:var(--zb-mono);font-size:.86em;background:rgba(255,255,255,.07);border:1px solid var(--line);padding:.05em .38em;border-radius:5px}.zx-canvas{border-radius:16px;border:1px solid var(--line);border-top-color:var(--edge);background:linear-gradient(180deg,var(--surface-hi) 0%,var(--surface) 55%);box-shadow:0 0 0 1px rgba(0,0,0,.3),0 30px 70px rgba(0,0,0,.34);overflow:hidden}.zx-canvas::before{content:\"\";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:100px 100px;mask-image:radial-gradient(125% 105% at 14% 6%,#000 0,transparent 64%);-webkit-mask-image:radial-gradient(125% 105% at 14% 6%,#000 0,transparent 64%);pointer-events:none}.zx-canvas,.zx-canvas>*{position:relative}.zx-canvas-flush{padding:0}.zx-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border:1px solid transparent;border-radius:999px;font-size:.9375rem;line-height:1.2;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.zx-btn-primary{background:var(--accent);color:#1a1a17;box-shadow:0 0 0 1px var(--accent),0 0 0 4px rgba(255,210,2,.14)}.zx-btn-primary:hover{background:#ffdc3d;color:#1a1a17;text-decoration:none;box-shadow:0 0 0 1px #ffdc3d,0 0 0 5px rgba(255,210,2,.2)}.zx-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.zx-link{display:inline-flex;align-items:center;gap:6px;font-size:.9375rem;color:var(--fg);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:2px;transition:color .15s ease}.zx-link:hover{color:var(--accent);text-decoration:none}.zx a.zx-btn{border-color:transparent}.zx a.zx-chip,.zx a.zx-mini{border-color:var(--line)}.zx a.zx-chip:hover,.zx a.zx-mini:hover{border-color:var(--line-2)}.zx-radio{position:absolute;width:1px;height:1px;opacity:0}.zx-cn-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 22px;border-bottom:1px solid var(--line);background:rgba(0,0,0,.14)}.zx-cn-t{font-size:.9375rem;color:var(--fg)}.zx-cn-url{min-width:0;padding:5px 13px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.03);font-family:var(--zb-mono);font-size:.8125rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.zx-cn-body{display:grid;grid-template-columns:320px minmax(0,1fr)}.zx-pick{display:flex;flex-direction:column;gap:2px;padding:10px;border-right:1px solid var(--line);background:rgba(0,0,0,.1)}.zx-pick-row{display:flex;align-items:center;gap:11px;padding:9px 11px;border:1px solid transparent;border-radius:10px;color:var(--fg-2);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.zx-pick-row:hover{background:rgba(255,255,255,.05);color:var(--fg)}.zx-pick-ico{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--line-2);border-radius:8px;background:#1d1d1b;color:var(--muted)}.zx-go img,.zx-pick-ico img,.zx-pick-ico svg{width:15px;height:15px;display:block}.zx-pick-n{flex:1;min-width:0;font-size:.9375rem;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.zx-pane{display:flex;align-items:center;min-width:0;padding:26px 28px}.zx-pane .zx-panels{max-width:620px;margin:0 auto}.zx-pane .zx-panel{align-content:center}.zx-panel,.zx-panels{display:grid;width:100%;min-width:0}.zx-panel{grid-row:1;grid-column:1;grid-template-columns:minmax(0,1fr);visibility:hidden;opacity:0;transition:opacity .18s ease}.zx-go{justify-self:start;padding:12px 22px;font-size:.9375rem}.zx-go img{flex:none;width:16px;height:16px}.zx-go-i{margin-left:3px;font-size:.8125rem}.zx-cue{margin:0 0 12px;font-size:.9375rem;line-height:1.5;color:var(--fg-2)}.zx-note{margin:16px 0 0;font-size:.875rem;line-height:1.6;color:var(--muted)}.zx-note strong{color:var(--fg-2)}.zx-more{justify-self:start;margin-top:16px;font-size:.875rem;color:var(--accent);text-decoration:none}.zx-more:hover{color:#ffdc3d;text-decoration:none}.zx .zx-panel>div,.zx .zx-split-code>div,.zx-panel pre,.zx-split-code pre{margin:0}.zx-cap{display:flex;align-items:center;gap:16px;padding:14px 22px;border-top:1px solid var(--line);background:rgba(0,0,0,.14)}.zx-cap-l{flex:none;font-size:.8125rem;color:var(--dim)}.zx-cap-row{display:flex;flex:1;flex-wrap:wrap;justify-content:flex-end;gap:6px}.zx-alt,.zx-chip{align-items:center}.zx-chip{display:inline-flex;gap:7px;flex:none;padding:6px 11px;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.03);font-size:.8125rem;line-height:1;color:var(--fg-2);white-space:nowrap;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.zx-chip:hover{background:rgba(255,255,255,.06);border-color:var(--line-2);text-decoration:none}.zx-chip:hover svg,.zx-surface-card:hover .zx-surface-t em{color:var(--accent)}.zx-chip svg{width:13px;height:13px;flex:none;color:var(--zb-muted)}.zx-alt{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:14px 32px;padding:28px 22px 18px 4px}.zx-tabs-bar{display:flex;justify-content:center;padding:14px 16px;border-bottom:1px solid var(--line);background:rgba(0,0,0,.14)}.zx-tab,.zx-tabs{border-radius:999px}.zx-tabs{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid var(--line);background:var(--sunken)}.zx-tab{cursor:pointer;padding:7px 16px;font-size:.875rem;line-height:1.2;color:var(--muted);transition:color .15s ease,background .15s ease}.zx-chip:hover,.zx-ep-row:hover .zx-ep-ops,.zx-foot-col a:hover,.zx-foot-legal a:hover,.zx-foot-socials a:hover,.zx-tab:hover{color:var(--fg)}.zx-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);height:100%}.zx-split>*{min-width:0;display:flex;flex-direction:column;justify-content:center;padding:28px}.zx-split-code{background:rgba(0,0,0,.16);border-right:1px solid var(--line)}.zx-split-lead{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}.zx-split>*>*{width:100%;min-width:0}.zx-split-lead .zx-split-code .code-block-copy-button button{width:auto;height:26px;gap:6px;padding:0 10px;border:1px solid rgba(255,210,2,.3);border-radius:999px;background:rgba(255,210,2,.11);color:var(--accent);transition:background .15s ease,border-color .15s ease}.zx-split-lead .zx-split-code .code-block-copy-button button:hover{border-color:rgba(255,210,2,.5);background:rgba(255,210,2,.2)}.zx-split-lead .zx-split-code .code-block-copy-button button svg{color:inherit}.zx-split-lead .zx-split-code .code-block-copy-button button::after{content:\"Copy\";font-size:.75rem;font-weight:500;line-height:1;color:var(--accent)}.zx-split-lead .zx-split-code .code-block-copy-button:has([role=status]:not(:empty)) button::after{content:\"Copied\"}.zx-tiles-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line)}.zx-surface-card{display:flex;flex-direction:column;gap:8px;padding:28px 24px 30px;background:var(--surface);text-decoration:none;transition:background .15s ease}.zx-surface-card:hover{background:var(--surface-hi);text-decoration:none}.zx-surface-ico{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;margin-bottom:10px;border:1px solid rgba(255,210,2,.28);border-radius:10px;background:rgba(255,210,2,.09);color:var(--accent)}.zx-surface-ico svg{width:18px;height:18px}.zx-surface-t{display:flex;align-items:center;gap:8px;font-family:var(--zb-serif);font-weight:500;font-size:1.125rem;color:var(--fg)}.zx-surface-t em{font-style:normal;color:var(--dim);transition:color .15s ease,transform .15s ease}.zx-surface-d{font-size:.9375rem;line-height:1.55;color:var(--muted)}.zx-viz{display:flex;flex-direction:column;gap:12px}.zx-viz-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.zx-mini{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025)}.zx-mini-ico{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;margin-bottom:6px;border-radius:8px;background:rgba(255,210,2,.1);color:var(--accent)}.zx-mini-ico svg{width:15px;height:15px}.zx-mini-t{font-size:.9375rem;color:var(--fg)}.zx-mini-s{font-size:.8125rem;color:var(--muted)}.zx-db{border:1px solid var(--line-2);border-radius:12px;background:var(--sunken);overflow:hidden}.zx-db-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 16px}.zx-db-title{display:inline-flex;align-items:center;gap:9px;font-size:.9375rem;color:var(--fg)}.zx-db-title svg{width:16px;height:16px;color:var(--accent)}.zx-db-pill{padding:4px 10px;border-radius:999px;background:rgba(255,210,2,.12);color:var(--accent);font-size:.75rem;line-height:1.3}.zx-db-tabs{display:flex;gap:6px;padding:0 16px 12px}.zx-db-tab{padding:4px 10px;border-radius:7px;background:rgba(255,255,255,.04);font-family:var(--zb-mono);font-size:.75rem;color:var(--muted)}.zx-db-tab-on{background:rgba(255,210,2,.14);color:var(--accent)}.zx-db-table{border-top:1px solid var(--line)}.zx-db-row{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr) minmax(0,.5fr);align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line);font-size:.875rem;color:var(--fg)}.zx-db-row:last-child{border-bottom:0}.zx-db-hd{background:rgba(255,255,255,.02);font-size:.75rem;color:var(--dim)}.zx-db-c1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zx-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:.75rem;line-height:1.35}.zx-badge::before{content:\"\";width:6px;height:6px;border-radius:50%;background:currentColor}.zx-badge-open{background:rgba(224,112,92,.14);color:#e8907d}.zx-badge-prog{background:rgba(255,210,2,.14);color:var(--accent)}.zx-badge-done{background:rgba(111,184,119,.14);color:#85c98c}.zx-av{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;font-size:.6875rem;background:rgba(255,255,255,.07);color:var(--fg-2)}.zx-av-amber{background:rgba(255,210,2,.18);color:var(--accent)}.zx-role-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1.1fr) minmax(0,1fr)}.zx-role-name{display:inline-flex;align-items:center;gap:9px}.zx-role-name svg{width:15px;height:15px;flex:none;color:var(--muted)}.zx-role-ops{font-family:var(--zb-mono);font-size:.78rem;color:var(--muted)}.zx-role-scope{font-size:.8125rem;color:var(--muted)}.zx-role-off{opacity:.55}.zx-ep{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.zx-ep-col{display:flex;flex-direction:column;min-width:0}.zx-ep-head{margin:0 0 4px;font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.zx-ep-row{display:flex;flex-direction:column;gap:2px;padding:9px 0;text-decoration:none}.zx-ep-row+.zx-ep-row{border-top:1px solid var(--line)}.zx-ep-res{font-family:var(--zb-mono);font-size:.75rem;color:var(--accent)}.zx-ep-ops{min-width:0;font-size:.8125rem;color:var(--fg-2)}.zx-foot{position:relative;border-top:1px solid var(--rule);background:var(--bg)}.zx-foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;max-width:var(--zb-container);margin:0 auto;padding:56px var(--zb-gutter)}.zx-foot-brand img{width:30px;height:30px;display:block}.zx-foot-word{margin-top:14px;font-family:var(--zb-serif);font-weight:500;font-size:1.0625rem;color:var(--fg)}.zx-foot-socials{display:flex;gap:16px;margin-top:12px}.zx-foot-col a,.zx-foot-socials a{font-size:.875rem;color:var(--muted);text-decoration:none}.zx-foot-col{display:flex;flex-direction:column;gap:11px}.zx-foot-h,.zx-foot-legal{font-size:.8125rem;color:var(--dim)}.zx-foot-h{margin-bottom:3px}.zx-foot-col a{font-size:.9375rem}.zx-foot-legal{display:flex;justify-content:space-between;align-items:center;gap:16px;max-width:var(--zb-container);margin:0 auto;padding:20px var(--zb-gutter) 40px;border-top:1px solid var(--rule)}.zx-foot-legal a{margin-left:18px;color:var(--dim);text-decoration:none}#zx-ag-cc:checked~.zx-canvas .zx-p-cc,#zx-ag-claude:checked~.zx-canvas .zx-p-claude,#zx-ag-cursor:checked~.zx-canvas .zx-p-cursor,#zx-ag-gpt:checked~.zx-canvas .zx-p-gpt,#zx-ag-other:checked~.zx-canvas .zx-p-other,#zx-ag-vsc:checked~.zx-canvas .zx-p-vsc,#zx-fw-apps:checked~.zx-canvas .zx-p-apps,#zx-fw-data:checked~.zx-canvas .zx-p-data,#zx-fw-roles:checked~.zx-canvas .zx-p-roles{visibility:visible;opacity:1}#zx-ag-cc:checked~.zx-canvas label[for=zx-ag-cc],#zx-ag-claude:checked~.zx-canvas label[for=zx-ag-claude],#zx-ag-cursor:checked~.zx-canvas label[for=zx-ag-cursor],#zx-ag-gpt:checked~.zx-canvas label[for=zx-ag-gpt],#zx-ag-other:checked~.zx-canvas label[for=zx-ag-other],#zx-ag-vsc:checked~.zx-canvas label[for=zx-ag-vsc]{color:var(--fg);background:var(--surface-hi);border-color:rgba(255,210,2,.42)}#zx-fw-apps:checked~.zx-canvas label[for=zx-fw-apps],#zx-fw-data:checked~.zx-canvas label[for=zx-fw-data],#zx-fw-roles:checked~.zx-canvas label[for=zx-fw-roles]{color:var(--fg);background:var(--surface-hi);box-shadow:0 0 0 1px rgba(255,210,2,.45)}.zx-radio:focus-visible~.zx-canvas label[for=zx-ag-cc],.zx-radio:focus-visible~.zx-canvas label[for=zx-ag-claude],.zx-radio:focus-visible~.zx-canvas label[for=zx-ag-cursor],.zx-radio:focus-visible~.zx-canvas label[for=zx-ag-gpt],.zx-radio:focus-visible~.zx-canvas label[for=zx-ag-other],.zx-radio:focus-visible~.zx-canvas label[for=zx-ag-vsc]{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.zx-panel{transition:none}}@media (max-width:1100px){.zx-tiles-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.zx-head{flex-direction:column;align-items:flex-start;gap:28px;padding-bottom:32px}.zx-head-aside{padding-bottom:0}.zx-split{grid-template-columns:minmax(0,1fr)}.zx-split-code{border-right:0;border-bottom:1px solid var(--line)}.zx .code-block:has([data-floating-buttons]) [data-fade-overlay]{width:var(--fade-width)}.zx-cn-body{grid-template-columns:minmax(0,1fr)}.zx-pick{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line)}.zx-pick-row{flex:1 1 auto}.zx-pick-n{flex:none}.zx-foot-grid{grid-template-columns:1fr 1fr;gap:32px}}@media (max-width:620px){:root{--zb-gutter:20px}.zx-cn-head{flex-direction:column;align-items:flex-start;gap:10px}.zx-cn-url{max-width:100%}.zx-pick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px}.zx-pick-row{flex:none;gap:9px;padding:9px 10px}.zx-pick-n{flex:1;font-size:.875rem}.zx-pane{padding:22px 18px}.zx-cap{flex-direction:column;align-items:flex-start;gap:10px;padding:16px 18px}.zx-alt,.zx-cap-row{justify-content:flex-start}.zx-cap-row{flex:none}.zx-alt{padding:24px 4px 14px}.zx-tiles-grid{grid-template-columns:minmax(0,1fr)}.zx-foot-grid{grid-template-columns:1fr}.zx-foot-legal{flex-direction:column;align-items:flex-start;gap:10px}.zx-foot-legal a{margin:0 18px 0 0}.zx-db-row{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto}}"}],"page":{"pagePath":"framework/branding-seo","slug":"/framework/branding-seo","pageMetadata":{"title":"Title, favicon, and link previews","description":"Set an app's browser tab title, favicon, and the title, description, and image shown when its link is shared, with seoSettings in the app's zite.config.json.","href":"/framework/branding-seo"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Set an app’s browser tab title, favicon, and the title, description, and image shown when its link is shared, with seoSettings in the app’s zite.config.json.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Each app has its own browser tab title, favicon, and link preview (the card shown when someone shares the\napp’s URL in Slack, iMessage, or social media). They live under `,_jsx(_components.code,{children:`seoSettings`}),` in the app’s\n`,_jsx(_components.code,{children:`apps/\u003cdir>/zite.config.json`}),`. The owner can edit the same fields under `,_jsx(_components.strong,{children:`Settings → Branding`}),`, which writes to\nthis file.`]}),`\n`,_jsx(Heading,{level:`2`,id:`seosettings`,children:`seoSettings`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"seoSettings\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Acme Helpdesk\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Submit and track support requests for Acme customers.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"faviconUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://example.com/acme-favicon.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"thumbnailUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://example.com/acme-preview.png\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Sets`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`title`})}),_jsx(_components.td,{children:`The browser tab title and the link preview title`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`description`})}),_jsx(_components.td,{children:`The link preview description and the meta description`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`faviconUrl`})}),_jsx(_components.td,{children:`The browser tab icon, and the Apple touch icon unless PWA settings set one`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`thumbnailUrl`})}),_jsx(_components.td,{children:`The link preview image. Use a 1.91:1 image, such as 1200×630`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`All four fields are required strings. Use `,_jsx(_components.code,{children:`\"\"`}),` for any field you don’t want to set: an empty string\nleaves that field to the fallbacks below. A `,_jsx(_components.code,{children:`seoSettings`}),` object missing a field fails config\nvalidation, and the build tools reject the file write with an error naming the field.`]}),`\n`,_jsx(_components.p,{children:`Changes take effect when the app is published.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-wins`,children:`What wins`}),`\n`,_jsx(_components.p,{children:`For each field, the first of these that exists is used:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`The value in `,_jsx(_components.code,{children:`seoSettings`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`The matching tag in the app’s own `,_jsx(_components.code,{children:`index.html`}),`: its `,_jsx(_components.code,{children:`\u003ctitle>`}),`, `,_jsx(_components.code,{children:`\u003cmeta name=\"description\">`}),`, `,_jsx(_components.code,{children:`\u003clink rel=\"icon\">`}),`, or `,_jsx(_components.code,{children:`og:image`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`The platform default: the app name followed by `,_jsx(_components.code,{children:`| Zite`}),` for the title, a generic Zite description, the Zite favicon, and, for public (external) apps, a screenshot of the app as the preview image. Internal apps get no preview image by default.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The starter’s `,_jsx(_components.code,{children:`\u003ctitle>Zite App\u003c/title>`}),` and `,_jsx(_components.code,{children:`/vite.svg`}),` favicon count as placeholders, so they never\noverride the platform defaults.`]}),`\n`,_jsx(Heading,{level:`2`,id:`image-urls`,children:`Image URLs`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`faviconUrl`}),` and `,_jsx(_components.code,{children:`thumbnailUrl`}),` must be URLs a browser can load. When the owner uploads an image under\n`,_jsx(_components.strong,{children:`Settings → Branding`}),`, Zite hosts it and fills in the URL. The build tools can’t upload images, so an\nagent either uses a URL the user already has (their website’s favicon, a logo on a CDN) or asks the user to\nupload the image in `,_jsx(_components.strong,{children:`Settings → Branding`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/framework/project-structure`,children:`Project structure`}),`: the other fields in an app’s `,_jsx(_components.code,{children:`zite.config.json`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/recipes/pwa`,children:`Make your app installable (PWA)`}),`: home screen icon and install title, set under `,_jsx(_components.strong,{children:`Settings → Mobile`}),`.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Title, favicon, and link previews","description":"Set an app's browser tab title, favicon, and the title, description, and image shown when its link is shared, with seoSettings in the app's zite.config.json.","href":"/framework/branding-seo"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"seoSettings","slug":"seosettings","depth":2,"children":[]},{"title":"What wins","slug":"what-wins","depth":2,"children":[]},{"title":"Image URLs","slug":"image-urls","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"zite-js","siteName":"Zite Platform","title":"Title, favicon, and link previews - Zite Platform","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-27T05:56:42.996Z","originalFileLocation":"framework/branding-seo.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Set an app\u0026#x27;s browser tab title, favicon, and the title, description, and image shown when its link is shared, with seoSettings in the app\u0026#x27;s zite.config.json.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Zite Platform\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zite-js/kfgIWSogbuxhM4y1/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/zite-js/kfgIWSogbuxhM4y1/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zite-js/kfgIWSogbuxhM4y1/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/zite-js/kfgIWSogbuxhM4y1/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/zite-js/kfgIWSogbuxhM4y1/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zite-js/kfgIWSogbuxhM4y1/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zite-js/kfgIWSogbuxhM4y1/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/zite-js/kfgIWSogbuxhM4y1/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/zite-js/kfgIWSogbuxhM4y1/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Title, favicon, and link previews - Zite Platform\">\u003cmeta data-mint-head property=\"og:description\" content=\"Set an app\u0026#x27;s browser tab title, favicon, and the title, description, and image shown when its link is shared, with seoSettings in the app\u0026#x27;s zite.config.json.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Zite Platform\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.zite.com/framework/branding-seo\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://zite-js.mintlify.app/_mintlify/api/og/v2?division=Zite.js+framework\u0026amp;title=Title%2C+favicon%2C+and+link+previews\u0026amp;description=Set+an+app%27s+browser+tab+title%2C+favicon%2C+and+the+title%2C+description%2C+and+image+shown+when+its+link+is+shared%2C+with+seoSettings+in+the+app%27s+zite.config.json.\u0026amp;theme=28a74b4679d4551ed3c3aacd\u0026amp;signature=5fceb21fe1a8c9643fdef5000cb9730eb35d5e2559e6544ea57d4f26094d6033\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Title, favicon, and link previews - Zite Platform\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Set an app\u0026#x27;s browser tab title, favicon, and the title, description, and image shown when its link is shared, with seoSettings in the app\u0026#x27;s zite.config.json.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://zite-js.mintlify.app/_mintlify/api/og/v2?division=Zite.js+framework\u0026amp;title=Title%2C+favicon%2C+and+link+previews\u0026amp;description=Set+an+app%27s+browser+tab+title%2C+favicon%2C+and+the+title%2C+description%2C+and+image+shown+when+its+link+is+shared%2C+with+seoSettings+in+the+app%27s+zite.config.json.\u0026amp;theme=28a74b4679d4551ed3c3aacd\u0026amp;signature=5fceb21fe1a8c9643fdef5000cb9730eb35d5e2559e6544ea57d4f26094d6033\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/zite-js/kfgIWSogbuxhM4y1/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Zite Platform\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#292929\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.zite.com/framework/branding-seo\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/framework/branding-seo.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.zite.com/#organization\",\"name\":\"Zite Platform\",\"url\":\"https://developers.zite.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/zite-js/LSPdozoqw4nFOq3k/logo/light.svg?fit=max\u0026auto=format\u0026n=LSPdozoqw4nFOq3k\u0026q=85\u0026s=fa83feb01f3d85c0ca46aad9a6419281\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.zite.com#website\",\"name\":\"Zite Platform\",\"url\":\"https://developers.zite.com\",\"publisher\":{\"@id\":\"https://developers.zite.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.zite.com/framework/branding-seo#webpage\",\"url\":\"https://developers.zite.com/framework/branding-seo\",\"name\":\"Title, favicon, and link previews\",\"description\":\"Set an app's browser tab title, favicon, and the title, description, and image shown when its link is shared, with seoSettings in the app's zite.config.json.\",\"dateModified\":\"2026-10-27T05:56:42.996Z\",\"isPartOf\":{\"@id\":\"https://developers.zite.com#website\"},\"breadcrumb\":{\"@id\":\"https://developers.zite.com/framework/branding-seo#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.zite.com/framework/branding-seo#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Zite.js framework\",\"item\":\"https://developers.zite.com/framework/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Title, favicon, and link previews\",\"item\":\"https://developers.zite.com/framework/branding-seo\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://developers.zite.com/framework/branding-seo#article\",\"headline\":\"Title, favicon, and link previews\",\"name\":\"Title, favicon, and link previews\",\"description\":\"Set an app's browser tab title, favicon, and the title, description, and image shown when its link is shared, with seoSettings in the app's zite.config.json.\",\"url\":\"https://developers.zite.com/framework/branding-seo\",\"mainEntityOfPage\":{\"@id\":\"https://developers.zite.com/framework/branding-seo#webpage\"},\"dateModified\":\"2026-10-27T05:56:42.996Z\",\"publisher\":{\"@id\":\"https://developers.zite.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.zite.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Zite Platform\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Zite Platform","nav":{"global":null,"tabs":[{"tab":"Guides","groups":[{"group":"Get started","icon":"rocket","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Quickstart","href":"/quickstart"},{"title":"Use the APIs","sidebarTitle":"Use the APIs","href":"/quickstart-api"}]},{"group":"Core concepts","icon":"book-open","pages":[{"title":"Workspaces","href":"/concepts/workspaces"},{"title":"Databases","href":"/concepts/databases"},{"title":"Apps","href":"/concepts/apps"},{"title":"Workflows","href":"/concepts/workflows"},{"title":"Authentication","href":"/concepts/authentication"},{"title":"Integrations \u0026 secrets","href":"/concepts/integrations-secrets"}]},{"group":"Build with agents","icon":"sparkles","pages":[{"title":"Build with agents","sidebarTitle":"Overview","href":"/mcp/overview"},{"title":"Connect the Zite MCP","sidebarTitle":"Connect","href":"/mcp/connect"},{"title":"The build loop","href":"/mcp/build-loop"},{"title":"Build tools","href":"/mcp/build-tools"},{"title":"For AI agents","href":"/ai-skill"}]},{"group":"Zite.js framework","icon":"code","pages":[{"title":"Zite.js","sidebarTitle":"Overview","href":"/framework/overview"},{"title":"Project structure","description":"How a Zite workspace is laid out: the monorepo, generated .zite/ files, config files, and the import conventions.","href":"/framework/project-structure"},{"title":"Title, favicon, and link previews","href":"/framework/branding-seo"},{"title":"Context","description":"Documents you write for the agent: data model notes, policies, specs, and brand guidelines, stored in context/ at the workspace root.","href":"/framework/context"},{"title":"Database client","href":"/framework/database-client"},{"title":"Workflows","href":"/framework/workflows"},{"title":"Schedules","href":"/framework/schedules"},{"title":"Webhooks","href":"/framework/webhooks"},{"title":"Auth","href":"/framework/auth"},{"title":"Utilities","href":"/framework/utilities"}]},{"group":"Tutorials","icon":"graduation-cap","pages":[{"title":"Build a CRM","href":"/tutorials/crm"},{"title":"Build an inventory tracker","href":"/tutorials/inventory"}]},{"group":"Recipes","icon":"chef-hat","expanded":false,"pages":[{"title":"Cookbook","href":"/recipes/overview"},{"title":"Dashboards \u0026 reports","href":"/recipes/dashboards-sql"},{"title":"Scheduled jobs","href":"/recipes/scheduled-jobs"},{"title":"React to inbound webhooks","href":"/recipes/inbound-webhooks"},{"title":"Stripe payments \u0026 subscriptions","href":"/recipes/stripe-payments"},{"title":"Generate PDFs","href":"/recipes/generate-pdfs"},{"title":"Drag-and-drop Kanban board","href":"/recipes/kanban-board"},{"title":"Rich text editor","href":"/recipes/rich-text"},{"title":"Barcode \u0026 QR scanning","href":"/recipes/barcode-scanning"},{"title":"Maps \u0026 address picker","href":"/recipes/maps"},{"title":"AI image generation","href":"/recipes/image-generation"},{"title":"Import spreadsheets","href":"/recipes/import-spreadsheets"},{"title":"Make your app installable (PWA)","href":"/recipes/pwa"}]},{"group":"Deploy","icon":"cloud-upload","pages":[{"title":"Publishing","href":"/deploy/publishing"}]},{"group":"Resources","icon":"life-buoy","pages":[{"title":"Troubleshooting","href":"/troubleshooting"},{"title":"Platform limits","sidebarTitle":"Limits","href":"/limits"}]}]},{"tab":"Database API","pages":[{"title":"Database API","href":"/api/overview"}]},{"tab":"Build API","pages":[{"title":"Build API","href":"/build-api/overview"}]}]},"title":"Title, favicon, and link previews - Zite Platform","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":[],"chunks":[]}