Files

39 lines
2.0 KiB
TypeScript

import type { Metadata } from 'next'
import { ogImages, getOgImageUrl, getTwitterImages } from '@/lib/constants/og'
import { goImport } from '@/lib/go-modules'
// NO PRICES HERE. This description outlived two repricings still advertising
// Pro $20, Plus $100 and Max $200 — a ladder with a tier we retired — because
// metadata is the one copy nobody re-reads and it cannot read the catalog: it
// is static export, resolved at build with no place to await a fetch. The cards
// state the numbers, live. This states the shape, which does not move.
// This path is a product page AND the import path of a Go module. The tag is
// invisible to a reader and is the whole of what the go tool reads; it joins
// this page's metadata rather than replacing it. Defined once in lib/go-modules.
const IMAGE_URL = getOgImageUrl('/pricing')
export const metadata: Metadata = {
other: goImport('pricing'),
title: 'Pricing — Every model. One API. Your price. — Hanzo AI',
description: 'Every model. One API. Your price. Build with frontier AI, coding agents, and intelligent routing. Start free, scale on demand, and keep control of every dollar.',
openGraph: {
title: 'Pricing — Every model. One API. Your price. — Hanzo AI',
description: 'Every model. One API. Your price. Build with frontier AI, coding agents, and intelligent routing. Start free, scale on demand, and keep control of every dollar.',
url: 'https://hanzo.ai/pricing',
siteName: 'Hanzo AI',
type: 'website',
images: ogImages('Hanzo AI Pricing', IMAGE_URL),
},
twitter: {
card: 'summary_large_image',
title: 'Pricing — Every model. One API. Your price. — Hanzo AI',
description: 'Every model. One API. Your price. Build with frontier AI, coding agents, and intelligent routing. Start free, scale on demand, and keep control of every dollar.',
images: getTwitterImages(IMAGE_URL),
},
}
export default function Layout({ children }: { children: React.ReactNode }) {
return <>{children}</>
}