Files
zeekay 1d88fac03f Load hanzo.agency's tags from cloud, after consent, under its own key
The page now mounts the docs.hanzo.ai wiring: @hanzo/event's stream posts
under project agency's publishable key, startTags loads the GA4 and Meta
tags cloud holds for that project once the visitor consents, and
@hanzo/ui/consent is the banner, a lazy chunk under its own GuiProvider.

The raw gtag in index.html goes, with the GA id in hanzo.yml and the vite
step that wrote it in: it loaded for every visitor without asking, and
beside the tag manager would count each visit twice. The stream carried
the hanzo org's key; it carries the project's now. Checkout helpers ask
analytics() for the provider's client rather than holding one of their
own.

vite resolves react-native to react-native-web and prefers .web.*
extensions, as gui needs. Overrides keep one gui and one event client.
2026-10-25 20:30:14 -07:00

34 lines
1.6 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Hanzo | AI-Powered Solutions</title>
<meta name="description" content="The human edge for AI. We build tomorrow's solutions with today's teams." />
<meta name="author" content="Hanzo AI, Inc." />
<!-- Absolute, because scrapers do not resolve relative og:image. -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://hanzo.agency/" />
<meta property="og:title" content="Hanzo | AI-Powered Solutions" />
<meta property="og:description" content="The human edge for AI. We build tomorrow's solutions with today's teams." />
<meta property="og:image" content="https://hanzo.agency/og-image.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://hanzo.agency/og-image.png" />
<!-- The Hanzo mark, from @hanzo/logo. The SVG carries its own
prefers-color-scheme rule; the ICO is opaque so it stays legible
on a dark tab strip, where a transparent black mark disappears. -->
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<link rel="alternate icon" href="/favicon.ico" sizes="16x16 32x32 48x48" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>