Files
zeekayandGitHub 949608fd9d i18n: pages and components c–l draw their copy through @hanzo/i18n (#67)
Calculator, captable, careers, cloud, compare, contact and contact-sales,
customers, dashboards, dataroom, datastore, dev, download, enso,
enterprise, extension, family, integrations, investors, kai, learn,
legal and their components say their words through t() in client code,
<T> in server components and phrase() where copy is held as data; one
sentence is one key, figures and links its arguments.

Rebased on main: in every conflict main's file stands (its copy, layout
and styling) and only the wrapping is added back, including copy main
added since.

Claude-Session: https://claude.ai/code/session_015XYKLjZtDTJEnMo4eK3AFH
2026-10-30 01:15:31 -07:00

29 lines
933 B
TypeScript

import type { Metadata } from 'next'
import { phrase } from '@hanzo/i18n'
import { T } from '@hanzo/i18n/react'
import Comparison from '@/components/marketing/Comparison'
import { PageHero } from '@/components/marketing/page-kit'
export const metadata: Metadata = {
title: 'What it costs to run it yourself — Hanzo',
description:
'The open-source stacks people reach for, priced from the compute their own compose files reserve, and the operating work that is not a line item.',
}
export default function Page() {
return (
<>
<PageHero
eyebrow={phrase('Comparison')}
title={phrase('Buy it, or run it')}
lede={
<T>
Everything Hanzo does is open source, so the honest question is not whether you could run it — you could — but what that costs. These are real numbers from real compose files.
</T>
}
/>
<Comparison />
</>
)
}