Wire world's telemetry to the live Hanzo observability services, all env-gated
from KMS (no-op until IDs provisioned — ships inert, activates on config):
- Sentry: VITE_SENTRY_DSN build-secret → errors to sentry.hanzo.ai.
- Analytics: bootstrap/analytics.ts injects the analytics.hanzo.ai (Umami) script
on VITE_ANALYTICS_WEBSITE_ID; track() forwards custom product events (→
/v1/insights/events + AnalyticsPanel pageviews). track('variant_view') wired.
- GTM-ready: initGtm() loads one Google Tag Manager container (VITE_GTM_ID) that
manages GA / Facebook / LinkedIn / X tags from GTM's UI; CSP script-src allows
googletagmanager/google-analytics/facebook/linkedin/x.
- Naming: CloudAnalyticsPanel → AnalyticsPanel, org-analytics.ts → analytics.ts.
OpenGraph/Twitter/JSON-LD SEO already comprehensive.
Claude-Session: https://claude.ai/code/session_01NP4ehjWW2h98FkE4YjUKuJ
104 lines
5.6 KiB
HTML
104 lines
5.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; connect-src 'self' https: http://localhost:5173 http://127.0.0.1:46123 ws: wss: blob: data:; img-src 'self' data: blob: https:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'wasm-unsafe-eval' https://analytics.hanzo.ai https://www.youtube.com https://static.cloudflareinsights.com https://www.googletagmanager.com https://www.google-analytics.com https://connect.facebook.net https://snap.licdn.com https://static.ads-twitter.com https://s3.tradingview.com https://s.tradingview.com; worker-src 'self' blob:; font-src 'self' data: https:; media-src 'self' data: blob: https:; frame-src 'self' http://127.0.0.1:46123 https://www.youtube.com https://www.youtube-nocookie.com https://www.tradingview-widget.com https://s.tradingview.com https://www.tradingview.com;" />
|
|
<meta name="referrer" content="strict-origin-when-cross-origin" />
|
|
|
|
<!-- Primary Meta Tags -->
|
|
<title>Hanzo World — Real-Time Global Intelligence</title>
|
|
<meta name="title" content="Hanzo World — Real-Time Global Intelligence" />
|
|
<meta name="description" content="Hanzo World — AI-powered real-time global intelligence dashboard: live news, markets, strategic posture, infrastructure and geopolitical data in one view." />
|
|
<meta name="keywords" content="Hanzo, AI intelligence, global intelligence, geopolitical dashboard, world news, market data, real-time monitoring, situation awareness, prediction markets" />
|
|
<meta name="author" content="Hanzo AI" />
|
|
<meta name="theme-color" content="#000000" />
|
|
<meta name="robots" content="index, follow" />
|
|
<link rel="canonical" href="https://world.hanzo.ai/" />
|
|
|
|
<!-- Additional Search Discovery -->
|
|
<meta name="application-name" content="Hanzo World" />
|
|
<meta name="subject" content="AI-Powered Global Intelligence and Situation Awareness" />
|
|
<meta name="classification" content="AI Intelligence Dashboard" />
|
|
<meta name="coverage" content="Worldwide" />
|
|
<meta name="distribution" content="Global" />
|
|
<meta name="rating" content="General" />
|
|
|
|
<!-- Open Graph / Facebook -->
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:url" content="https://world.hanzo.ai/" />
|
|
<meta property="og:title" content="Hanzo World — Real-Time Global Intelligence" />
|
|
<meta property="og:description" content="Hanzo World — AI-powered real-time global intelligence dashboard: live news, markets, strategic posture and geopolitical data." />
|
|
<meta property="og:image" content="https://world.hanzo.ai/favico/og-image.png" />
|
|
<meta property="og:image:width" content="1200" />
|
|
<meta property="og:image:height" content="630" />
|
|
<meta property="og:site_name" content="Hanzo World" />
|
|
<meta property="og:locale" content="en_US" />
|
|
|
|
<!-- Twitter -->
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta name="twitter:url" content="https://world.hanzo.ai/" />
|
|
<meta name="twitter:title" content="Hanzo World — Real-Time Global Intelligence" />
|
|
<meta name="twitter:description" content="Hanzo World — AI-powered real-time global intelligence dashboard." />
|
|
<meta name="twitter:image" content="https://world.hanzo.ai/favico/og-image.png" />
|
|
<meta name="twitter:site" content="@hanzoai" />
|
|
<meta name="twitter:creator" content="@hanzoai" />
|
|
|
|
<!-- JSON-LD Structured Data -->
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "WebApplication",
|
|
"name": "Hanzo World",
|
|
"alternateName": "Hanzo World Intelligence",
|
|
"url": "https://world.hanzo.ai/",
|
|
"description": "Hanzo World — AI-powered real-time global intelligence dashboard with live news, markets, strategic posture, infrastructure and geopolitical data.",
|
|
"applicationCategory": "UtilitiesApplication",
|
|
"operatingSystem": "Web Browser",
|
|
"offers": {
|
|
"@type": "Offer",
|
|
"price": "0",
|
|
"priceCurrency": "USD"
|
|
},
|
|
"author": {
|
|
"@type": "Organization",
|
|
"name": "Hanzo AI"
|
|
},
|
|
"featureList": [
|
|
"AI-powered intelligence synthesis",
|
|
"Real-time news aggregation",
|
|
"Stock market tracking",
|
|
"Military flight monitoring",
|
|
"Ship AIS tracking",
|
|
"Earthquake alerts",
|
|
"Protest tracking",
|
|
"Power outage monitoring",
|
|
"Oil price analytics",
|
|
"Government spending data",
|
|
"Prediction markets",
|
|
"Infrastructure monitoring",
|
|
"Geopolitical intelligence"
|
|
],
|
|
"screenshot": "https://world.hanzo.ai/favico/og-image.png",
|
|
"keywords": "AI, OSINT, intelligence dashboard, geopolitical, real-time monitoring, situation awareness, AI-powered"
|
|
}
|
|
</script>
|
|
|
|
<!-- Favicons -->
|
|
<link rel="icon" type="image/svg+xml" href="/favico/hanzo-favicon.svg" />
|
|
<link rel="icon" type="image/x-icon" href="/favico/favicon.ico" />
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/favico/hanzo-favicon.svg" />
|
|
|
|
|
|
<!-- Theme: apply stored preference before first paint to prevent FOUC -->
|
|
<script>(function(){try{var t=localStorage.getItem('worldmonitor-theme');if(t==='light')document.documentElement.dataset.theme='light';}catch(e){}document.documentElement.classList.add('no-transition');})()</script>
|
|
|
|
<!-- Styles -->
|
|
<link rel="stylesheet" href="/src/styles/main.css" />
|
|
</head>
|
|
<body>
|
|
<div id="app"></div>
|
|
<script type="module" src="/src/main.ts"></script>
|
|
</body>
|
|
</html>
|