an icon, so the tab is not blank

The export declared no icon and the bucket had none to serve, so /favicon.ico
answered 404 and every Tabs pane sat behind a blank tab — in a product whose
whole premise is telling one tab from another.

public/ carries the Hanzo mark from @hanzo/brand as .svg and .ico, and the
layout declares both. The .ico is there because a browser asks for it whether
or not a page names one, and a bucket has no server to answer with anything
else.
This commit is contained in:
2026-08-21 00:26:08 -07:00
parent 8b1ba1d8ac
commit 42cb7819b0
3 changed files with 18 additions and 0 deletions
+10
View File
@@ -6,6 +6,16 @@ export const metadata = {
metadataBase: new URL('https://tabs.hanzo.ai'),
title: { default: 'Hanzo Tabs', template: '%s — Hanzo Tabs' },
description: 'Keep tabs on your agents. A browser terminal workspace for machines you have linked.',
// Both files are the Hanzo mark from @hanzo/brand, copied into public/. The
// .ico is here because a browser asks for /favicon.ico whether or not a page
// declares one, and the bucket has no server to answer that with anything
// else — an undeclared icon is a 404 and a blank tab.
icons: {
icon: [
{ url: '/favicon.svg', type: 'image/svg+xml' },
{ url: '/favicon.ico', sizes: '48x48' },
],
},
openGraph: {
title: 'Hanzo Tabs — keep tabs on your agents',
description: 'Every shell your coding agents work in, split and tiled, from anywhere.',
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

+8
View File
@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 67 67" role="img" aria-label="Hanzo">
<style>path{fill:#000}@media (prefers-color-scheme:dark){path{fill:#fff}}</style>
<path d="M22.21 67V44.6369H0V67H22.21Z"/>
<path d="M66.7038 22.3184H22.2534L0.0878906 44.6367H44.4634L66.7038 22.3184Z"/>
<path d="M22.21 0H0V22.3184H22.21V0Z"/>
<path d="M66.7198 0H44.5098V22.3184H66.7198V0Z"/>
<path d="M66.7198 67V44.6369H44.5098V67H66.7198Z"/>
</svg>

After

Width:  |  Height:  |  Size: 443 B