mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
Pages from /machines to /risk, the model pages, and the kits they are made of
(page-kit, ProductLanding, LayerPage, Stack, the models kit, band's Head) mark
authored copy where it is written and draw it in the reader's language. A server
page marks a literal phrase('…') or wraps it in <T>; a client page calls t. The
kits translate a string prop through useSay (components/marketing/say), so a
page passes phrase('…') and markup passes as written. An arrow that points
turns over right to left (data-i18n-mirror).
Rebased on main: the fold-based heroes (Fold, PageHero, MachinesHero, the
product and layer pages) keep main's structure and copy, with their label,
title and lede marked phrase. /platform is main's CloudLanding; the deleted
/platform/layers and the old referral components stay deleted.
Claude-Session: https://claude.ai/code/session_015XYKLjZtDTJEnMo4eK3AFH
90 lines
4.3 KiB
TypeScript
90 lines
4.3 KiB
TypeScript
'use client'
|
|
|
|
import { Activity, Coins, Cpu, Globe, Shield, Zap } from 'lucide-react'
|
|
import { ProductLanding } from '@/components/product/ProductLanding'
|
|
import { ProductFooter } from '@/components/products/ProductFooter'
|
|
import { KEYS } from '@/components/home/nav-data'
|
|
import { phrase } from '@hanzo/i18n'
|
|
|
|
/**
|
|
* Network, through the ONE product kit — /node's other half.
|
|
*
|
|
* See app/(marketing)/node/page.tsx for why this pair takes six pillars under
|
|
* one heading where the /ledger trio took 3 + 3: this page has ONE card
|
|
* section, so splitting it would need a second heading nobody wrote.
|
|
*
|
|
* EVERY WORD IS THE ONE THAT WAS HERE. Same deletion as /node, same reason:
|
|
* the trailing "Get started with Network" card offered the docs and GitHub,
|
|
* which the hero and this final card already reach, so the card that survives
|
|
* is the one carrying a destination of its own — "Two ends of the same
|
|
* fabric", which is how a reader gets from buying compute to providing it.
|
|
*/
|
|
|
|
const DOCS = 'https://docs.hanzo.ai/docs/network'
|
|
const GITHUB = 'https://github.com/hanzoai'
|
|
|
|
export default function NetworkPage() {
|
|
return (
|
|
<>
|
|
<ProductLanding
|
|
badge={phrase("Compute Marketplace")}
|
|
badgeIcon={Globe}
|
|
title="Hanzo Network"
|
|
lede={phrase("hanzo.network is the fabric that hanzod nodes form. Put a machine on it and it serves models to whoever the cluster routes there. Ask the fabric for a model and it finds a peer that already has it loaded.")}
|
|
ctas={[
|
|
{ label: phrase('Buy Compute'), href: DOCS },
|
|
{ label: phrase('Run a Node'), href: '/node' },
|
|
]}
|
|
what={{
|
|
eyebrow: phrase('The Fabric'),
|
|
title: phrase('How the Network Works'),
|
|
sub: phrase('Machines join, declare what they can serve, and the cluster routes on what is actually loaded'),
|
|
pillars: [
|
|
{
|
|
icon: Globe,
|
|
title: phrase('Peers, not regions'),
|
|
body: phrase('There is no region menu to choose from. A node discovers its peers over the fabric, and the topology is whatever is connected right now — you can ask it and read the answer.'),
|
|
},
|
|
{
|
|
icon: Coins,
|
|
title: phrase('Metered by the work'),
|
|
body: phrase("A tenth of the block reward funds AI compute, and a provider's share is scaled by the level of the work it did. No subscription, no seat, nothing billed while a machine sits idle."),
|
|
},
|
|
{
|
|
icon: Shield,
|
|
title: phrase('Proof of AI'),
|
|
body: phrase("A node's confidential-compute tier is attested rather than declared, and what it earns is scaled by that attestation and by a trust score. A claim about a machine is worth nothing on its own."),
|
|
},
|
|
{
|
|
icon: Cpu,
|
|
title: phrase('Whatever the peers have loaded'),
|
|
body: phrase('Ask the cluster which models it serves, which node would answer for one, and where a model nobody has loaded should be placed. Routing follows what is really in memory.'),
|
|
},
|
|
{
|
|
icon: Zap,
|
|
title: phrase('One command to join'),
|
|
body: phrase('hanzo fabric join names a network and starts the node on it. If you would rather lend the machine to builds than to inference, hanzo runner offers the same box as a CI runner.'),
|
|
},
|
|
{
|
|
icon: Activity,
|
|
title: phrase('Anchored, not asserted'),
|
|
body: phrase('Work is ordered on the Hanzo L2 and committed to Lux as a Merkle root, under a stake-weighted validator set. What you can check is what settled, not what a status page says.'),
|
|
},
|
|
],
|
|
}}
|
|
finalCta={{
|
|
icon: Globe,
|
|
title: phrase('Two ends of the same fabric'),
|
|
sub: phrase('Take a key and call it, or bring a machine and serve it. Most people who do the second started by doing the first.'),
|
|
buttons: [
|
|
{ label: phrase('Get an API Key'), href: KEYS },
|
|
{ label: phrase('Provide Compute'), href: '/node' },
|
|
{ label: phrase('View on GitHub'), href: GITHUB },
|
|
],
|
|
}}
|
|
/>
|
|
<ProductFooter slug="network" name="Network" />
|
|
</>
|
|
)
|
|
}
|