Files
zeekayandHanzo Dev 0a3ebececd Ship the real Hanzo mark, and stop the chat button sitting on it
The favicon was hand-made. `6c17299` replaced the generated scaffold icon with a
drawn "Hanzo H mark" whose blob is byte-identical to what production still
serves: three layers, fully opaque, polarity inverted, and offset about half a
cell so two of the four corner squares fall off the canvas. At its real 16px
tab size it is a pale smear. Take the mark from `@hanzo/logo` instead — already
a dependency here, already the source of the header logo — and ship the whole
set it publishes: favicon.ico (6 layers, 16→256), favicon.svg, apple-touch-icon.
`<head>` now declares all three; it previously declared one 696px opaque PNG and
nothing else, which also suppressed `app/icon.svg` (deleted — the mark has one
home now).

The header mark was invisible, and the fix on main only moved which theme it was
invisible in. `variant="mono"` does not inherit `currentColor` as Logo.tsx
claimed — it is hardcoded #000000, so main rendered black on the black page.
It is one ink on transparency, exactly like every mark in `partner-logos.ts`, so
it is carried the same way: `hz-ink-black`, none on light and invert(1) on dark.
The inversion lands on #ffffff/#DDDDDD, which is the `white` variant byte for
byte.

The chat launcher was covering the logo. `hz-fixed` sets `position: fixed` and
nothing else, so a fixed element with no offsets stays where it was: top-left,
48px square, directly over the mark, on every page and both themes. Nothing
could catch it — every class on the button had a rule, the missing one was never
written. Added `hz-dock` as that one rule, and sized the panel against the
viewport so it cannot grow past the screen it is docked to. The panel also took
`hz-bg` from `hz-bg-surface`, whose dark value is rgba(38,38,38,.5): right for a
card on the page, wrong for one floating over it.

A fabricated trademark is gone. `lux-network.svg` was hand-coded rects and
polygons spelling "LUX", nothing like the real mark, duplicated under three
filenames. Lux and Zoo Labs are sibling orgs in this estate, not our clients —
their marks and their entries in `clients` are both removed. A Hanzo surface
carries Hanzo branding.

Every share card 404'd: og:image pointed at `/opengraph-image`, a file-convention
route this app does not have, while the real `/og-image.png` sat declared and
unused. og:site_name was carrying the tagline and twitter:title disagreed with
og:title; both now say what they are.

The repo count contradicted itself in one viewport — "727+" in the hero, "2,500+"
in a tile 200px below it, 3.4x apart, and both in `<head>`. Neither survives
measurement: 535 non-archived public repos across the six orgs the site names.
Stated once now, as a floor, with the query that produced it.

"All systems operational" was a hardcoded string on every page with no health
check behind it — it would have said that straight through an outage. It links
to /status as "System status" instead.

Verified in a real browser at 390 and 1280, light and dark: the mark matches an
isolated render of the same SVG (mean abs diff 0.05/255) and dark is its exact
inverse; `elementFromPoint` at the mark's centre returns its own path; the
served .ico is 2b734c3b, six layers. Routes 60/60, no overflow, no console
errors.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-05 16:27:35 -07:00

349 lines
15 KiB
TypeScript

"use client";
import Link from "next/link";
import { motion } from "framer-motion";
import { HanzoLogo } from "@hanzo/logo/react";
import { cn } from '@hanzo/ui'
import site from "@/site.config";
// The full stack — organized by layer
const stackLayers = [
{
label: "Frontier Models",
items: [
{ name: "ZEN", description: "Frontier AI models — 600M to 1T+ params", link: "/products/zen" },
{ name: "KOAN", description: "Enterprise knowledge and retrieval", link: "/products/koan" },
],
},
{
label: "AI Platform",
items: [
{ name: "HANZO AI", description: "Full-stack AI platform — training, inference, orchestration", link: "/products/hanzo-ai" },
{ name: "HANZO ML", description: "ML operations — experiment tracking, model registry, pipelines", link: "/products/hanzo-ml" },
{ name: "LLM GATEWAY", description: "Unified proxy for 100+ models with auth, billing, observability", link: "/products/hanzo-ai" },
{ name: "MCP", description: "Model Context Protocol — 260+ tools for AI agents", link: "/products/hanzo-ai" },
],
},
{
label: "Agents & Bots",
items: [
{ name: "HANZO DEV", description: "Agentic coding — AI pair programmer with full codebase context", link: "/products/hanzo-dev" },
{ name: "HANZO BOT", description: "Bot platform — deploy, orchestrate, and monitor AI agents at scale", link: "/products/hanzo-bot" },
{ name: "AGENT SDK", description: "Multi-agent framework — planning, tool use, memory, coordination", link: "/products/hanzo-ai" },
],
},
{
label: "Cloud & Infrastructure",
items: [
{ name: "HANZO CLOUD", description: "AI-native PaaS — deploy anything with zero-trust security", link: "/products/hanzo-cloud" },
{ name: "HANZO ENGINE", description: "Cloud GPU inference — 60+ architectures, CUDA/Metal", link: "https://engine.hanzo.ai" },
{ name: "HANZO EDGE", description: "On-device AI — run models locally, in browser, or embedded", link: "https://edge.hanzo.ai" },
{ name: "HANZO NETWORK", description: "Confidential compute — private, decentralized AI workloads", link: "/products/hanzo-network" },
{ name: "IAM", description: "Multi-tenant identity — SSO, OAuth, JWT across all services", link: "/products/hanzo-cloud" },
{ name: "KMS", description: "Secrets management — org-scoped, auditable, zero-trust", link: "/products/hanzo-cloud" },
],
},
{
label: "Developer Experience",
items: [
{ name: "HANZO DX", description: "Developer platform — SDKs, APIs, CLI, documentation", link: "/products/hanzo-dx" },
{ name: "HANZO TEAM", description: "Collaboration — shared workspaces, review, coordination", link: "/products/hanzo-team" },
{ name: "CONSOLE", description: "Unified dashboard — usage, billing, observability, project management", link: "/products/hanzo-ai" },
],
},
];
const stats = [
{ value: "Techstars '17", label: "Backed Company" },
{ value: "130+", label: "Research Papers" },
{ value: site.brand.ossRepos, label: "OSS Projects" },
{ value: "100+", label: "AI Model Weights" },
{ value: "100+", label: "LLM Providers" },
{ value: "260+", label: "MCP Tools" },
];
const capabilities = [
{
title: "Private by Default",
description: "AI that runs without routing data through centralized third parties. Confidential compute, secure enclaves, and privacy-preserving execution for sensitive workloads.",
},
{
title: "Full-Stack Vertical Integration",
description: "Models, training, inference, cloud, identity, secrets, observability, and developer tools — one integrated stack, not a patchwork of vendors.",
},
{
title: "Open Source Infrastructure",
description: "300+ open source repos powering critical AI software supply chains. Public tooling, reference implementations, and sustainable incentive mechanisms.",
},
{
title: "Secure-by-Design Operations",
description: "Audit trails, policy enforcement, human-in-the-loop approvals, incident-ready logging. Built for regulated and mission-critical environments.",
},
];
export default function PageClient() {
return (
<main className="hz-pt-6 hz-pb-6 hz-px-4">
<div className="hz-container-wide">
{/* Logo + Headline */}
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.5 }}
className="hz-mb-7"
>
{/* size is a prop, not a class — HanzoLogo writes width/height inline. */}
<HanzoLogo variant="mono" size={64} className="hz-mb-6" />
<h1 className="hz-t-5xl hz-w-bold hz-mb-5">
Full-Stack Private AI
</h1>
<p className={cn("hz-t-xl hz-mw-lg", "hz-fg")}>
Hanzo is a Techstars-backed AI company building a vertically integrated
stack — from frontier models to confidential compute to developer tools.
We make powerful AI private by default, enabling sensitive workloads in
government, defense, healthcare, and finance without routing data through
centralized third parties.
</p>
</motion.div>
{/* Stats */}
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.5, delay: 0.1 }}
className={cn(
"hz-grid hz-grid-6 hz-gap-5 hz-mb-7 hz-py-6 hz-bordered",
""
)}
>
{stats.map((stat) => (
<div key={stat.label} className="hz-align-center">
<div className="hz-t-2xl hz-w-bold hz-mb-1">{stat.value}</div>
<div className={cn("hz-t-sm", "hz-fg")}>{stat.label}</div>
</div>
))}
</motion.div>
{/* Core Capabilities */}
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.5, delay: 0.15 }}
className="hz-mb-7"
>
<h2 className="hz-t-3xl hz-w-bold hz-mb-6">Why Hanzo</h2>
<div className="hz-grid hz-grid-2 hz-gap-5">
{capabilities.map((cap) => (
<div
key={cap.title}
className={cn(
"hz-p-5 hz-r-lg hz-bordered",
""
)}
>
<h3 className="hz-t-lg hz-w-semibold hz-mb-2">{cap.title}</h3>
<p className={cn("hz-t-sm", "hz-fg")}>
{cap.description}
</p>
</div>
))}
</div>
</motion.div>
{/* The Stack */}
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.5, delay: 0.2 }}
className="hz-mb-7"
>
<h2 className="hz-t-3xl hz-w-bold hz-mb-2">The Stack</h2>
<p className={cn("hz-t-lg hz-mb-6", "hz-fg")}>
Vertically integrated from models to cloud — every layer built to work together.
</p>
{stackLayers.map((layer, layerIndex) => (
<div key={layer.label} className="hz-mb-6">
<div className="hz-row hz-ai-center hz-gap-3 hz-mb-4">
<span className={cn(
"hz-t-xs hz-mono hz-w-medium hz-px-2 hz-py-1 hz-r-md",
"hz-bg-surface hz-fg"
)}>
{String(layerIndex + 1).padStart(2, "0")}
</span>
<h3 className="hz-t-xl hz-w-semibold">{layer.label}</h3>
</div>
<div className="hz-grid hz-grid-2 hz-gap-3 hz-ml-4">
{layer.items.map((item) => (
<Link
key={item.name}
href={item.link}
className={cn(
"hz-btn hz-btn-ghost hz-jc-between hz-transition",
"hz-hoverable"
)}
>
<div>
<div className="hz-w-semibold hz-t-sm">{item.name}</div>
<div className={cn("hz-t-xs", "hz-fg")}>
{item.description}
</div>
</div>
<span className={cn("hz-t-sm", "hz-fg-soft")}>→</span>
</Link>
))}
</div>
</div>
))}
</motion.div>
{/* Platforms */}
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.5, delay: 0.25 }}
className="hz-mb-7"
>
<h2 className="hz-t-3xl hz-w-bold hz-mb-6">Platforms</h2>
<div className="hz-grid hz-grid-3 hz-gap-4">
{[
{ name: "hanzo.ai", description: "AI platform", href: "https://hanzo.ai" },
{ name: "hanzo.industries", description: "Enterprise & defense", href: "https://hanzo.industries" },
{ name: "hanzo.network", description: "Confidential compute", href: "https://hanzo.network" },
{ name: "cloud.hanzo.ai", description: "Cloud PaaS", href: "https://cloud.hanzo.ai" },
{ name: "llm.hanzo.ai", description: "LLM gateway (100+ models)", href: "https://llm.hanzo.ai" },
{ name: "docs.hanzo.ai", description: "API documentation", href: "https://docs.hanzo.ai" },
].map((platform) => (
<a
key={platform.name}
href={platform.href}
target="_blank"
rel="noopener noreferrer"
className={cn(
"hz-px-4 hz-py-4 hz-r-lg hz-bordered hz-transition",
"hz-hoverable"
)}
>
<div className="hz-w-medium hz-mono hz-t-sm">{platform.name}</div>
<div className={cn("hz-t-sm", "hz-fg")}>
{platform.description}
</div>
</a>
))}
</div>
</motion.div>
{/* Open Source */}
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.5, delay: 0.3 }}
className="hz-mb-7"
>
<h2 className="hz-t-3xl hz-w-bold hz-mb-6">Open Source</h2>
<div className="hz-grid hz-grid-2 hz-gap-5">
{[
{
name: "Hanzo AI",
role: "AI infrastructure and developer tools",
detail: "MCP, LLM Gateway, Agent SDK, Cloud PaaS, CLI, SDKs. 300+ repos.",
href: "https://github.com/hanzoai",
},
{
name: "Zen LM",
role: "Frontier model family",
detail: "100+ model weights from 600M to 1T+ params. Text, vision, video, audio, 3D, code, agents.",
href: "https://github.com/zenlm",
},
].map((org) => (
<a
key={org.name}
href={org.href}
target="_blank"
rel="noopener noreferrer"
className={cn(
"hz-p-5 hz-r-lg hz-bordered hz-transition",
"hz-hoverable"
)}
>
<h3 className="hz-t-xl hz-w-semibold hz-mb-1">{org.name}</h3>
<p className={cn("hz-t-sm hz-w-medium hz-mb-2", "hz-fg")}>
{org.role}
</p>
<p className={cn("hz-t-sm", "hz-fg")}>
{org.detail}
</p>
</a>
))}
</div>
</motion.div>
{/* OSS Revenue Sharing */}
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.5, delay: 0.35 }}
className={cn(
"hz-mb-7 hz-p-6 hz-r-lg hz-bordered",
"hz-bg-surface"
)}
>
<div className="hz-col-row hz-gap-5">
<div className="hz-grow">
<h3 className="hz-t-xl hz-w-semibold hz-mb-2">OSS Revenue Sharing</h3>
<p className={cn("hz-t-sm hz-leading-relaxed", "hz-fg")}>
We dedicate 25% of all compute costs to open source contributors
— distributed transparently based on verified SBOMs. Connect your
GitHub and wallet to earn.
</p>
</div>
<div className="hz-col-row hz-gap-3 hz-none">
<Link
href="/open-source"
className={cn(
"hz-px-4 hz-py-2 hz-r-lg hz-bordered hz-t-sm hz-w-medium hz-align-center hz-transition",
"hz-hoverable"
)}
>
Learn More
</Link>
<a
href="https://hanzo.ai/oss/connect"
target="_blank"
rel="noopener noreferrer"
className={cn(
"hz-px-4 hz-py-2 hz-r-lg hz-t-sm hz-w-medium hz-align-center hz-transition",
"hz-bg-inverse hz-fg-inverse hz-hoverable"
)}
>
Connect & Earn
</a>
</div>
</div>
</motion.div>
{/* Mission */}
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.5, delay: 0.4 }}
className={cn(
"hz-p-6 hz-r-lg hz-bordered",
"hz-bg-surface"
)}
>
<h2 className="hz-t-3xl hz-w-bold hz-mb-4">Mission</h2>
<p className={cn("hz-t-lg", "hz-fg")}>
Make powerful AI private by default. We build full-stack AI infrastructure
that converts compute into operational advantage — enabling sensitive workloads
in healthcare, finance, defense, and government without requiring organizations
to route data through centralized third parties. We publish our research openly,
treat open source as critical infrastructure, and ship production systems that
teams depend on.
</p>
</motion.div>
</div>
</main>
);
}