Files
zooqueenandHanzo Dev e763b034e2 seo: cut homepage description by 1/3 and optimize page descriptions across the site
- Cut root homepage description by 1/3 (170 -> 114 chars) for SERP mobile/desktop truncation threshold
- Updated apex gate test in e2e/gates/apex.spec.ts to match the optimized homepage description
- Shortened and enriched 70+ page and layout descriptions to the optimal 110-145 character sweet spot
- Front-loaded high-intent keywords across agents, foundation models, MCP, benchmarks, and sovereign cloud
- Ensured unique titles for all model variant routes to satisfy title uniqueness gates



Co-authored-by: Hanzo Dev <[email protected]>
2026-10-16 16:09:35 -07:00

51 lines
1.7 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { Metadata } from 'next'
import GenLanding from '@/components/gen/GenLanding'
import { ProductJsonLd } from '@/components/product/ProductJsonLd'
import { at } from '@/lib/product'
// Hanzo Gen, the agentic harness. At the app ROOT beside /dev, /kai and /enso,
// so only the root layout wraps it and it ships the shared site chrome itself.
const TITLE = 'Hanzo Gen — any coding agent, on Hanzo’s rails'
const DESCRIPTION =
'Run your favorite coding agents — Claude Code, Cursor, Codex — with Hanzo tools and models attached. Open source, install in one command.'
export const metadata: Metadata = {
title: TITLE,
description: DESCRIPTION,
alternates: { canonical: 'https://hanzo.ai/gen' },
openGraph: {
title: TITLE,
description: DESCRIPTION,
url: 'https://hanzo.ai/gen',
siteName: 'Hanzo',
type: 'website',
},
twitter: { card: 'summary_large_image', title: TITLE, description: DESCRIPTION },
}
export default function GenRoutePage() {
const product = at('/gen')
return (
<>
{/* Gen is outside the ProductLanding kit, so it declares itself here.
Each feature is a clause of the page's own sentence. */}
{product && (
<ProductJsonLd
product={product}
path="/gen"
description={DESCRIPTION}
features={[
'Runs Claude Code, Codex, Cursor and more',
'The Hanzo MCP toolset attached',
'Model calls on Hanzo’s metered models, or the agent’s own account',
'Sessions linked to your Hanzo account',
'Installs with curl -fsSL https://hanzo.sh | sh -s gen',
]}
/>
)}
<GenLanding />
</>
)
}