mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
The product pages from /s3 to /zap, /university and its course data, /trust, /security, /sdks, /support, /tasks, /startups, /sms-opt-in, the buying specialist, Zen, Kai's guide, Studio, the settings pages, and the shared sales, solutions, zap and ui pieces. Client code draws with t(), server components with <T>, copy held as data is marked with phrase() and drawn through t() where it lands. A link or a figure inside a sentence is a value, so a translator reorders the whole sentence. Rebased on main: every page main moved onto Fold or Steps keeps main's layout, with its words wrapped (label, title, lede, points). Steps now draws a step's body through t, as it already drew the title. Settings keeps main's usage panel, refresh, rewards wallet and sign-in wallet rows, each label wrapped. Left English: the skills page's install line (a command and two URLs), and the solution eyebrow and sibling heading built from a kind label. Claude-Session: https://claude.ai/code/session_015XYKLjZtDTJEnMo4eK3AFH
53 lines
2.4 KiB
TypeScript
53 lines
2.4 KiB
TypeScript
'use client'
|
|
|
|
import { Box, XStack, YStack } from '@hanzo/ui'
|
|
import { Grid } from '@hanzo/ui/grid'
|
|
import { Action, Display, Leaf, Lede, Line } from '@hanzo/ui/marketing'
|
|
import { Band, Head } from '@/components/marketing/band'
|
|
import Rack from '@/components/enterprise/Rack'
|
|
import { phrase } from '@hanzo/i18n'
|
|
import { useI18n } from '@hanzo/i18n/react'
|
|
|
|
const POINTS = [
|
|
[phrase('One name'), phrase('You call Zen 6 Max. You never choose among the models behind it.')],
|
|
[phrase('The right specialist, per request'), phrase('Enso reads each request and runs it on the specialist built for that kind of work, transparently.')],
|
|
[phrase('Long context'), phrase('A long context, for large codebases and long documents.')],
|
|
[phrase('Tools and code'), phrase('Tool calls and code, built in.')],
|
|
] as const
|
|
|
|
export default function MaxView() {
|
|
const { t } = useI18n()
|
|
return (
|
|
<Box minH="100vh" $platform-web={{ color: 'var(--foreground)' }}>
|
|
<Band rule={false} pad="$14" measure={1000}>
|
|
<YStack gap={24} items="center" $platform-web={{ textAlign: 'center' }}>
|
|
<Display render="h1" fontSize="3rem" $lg={{ fontSize: '5rem' }}>Zen 6 Max</Display>
|
|
<Lede maxW={720}>
|
|
{t('{n} trillion parameters across a routed fusion. Each request runs on the specialist Enso picks, so it behaves as one model.', { n: '3.7' })}
|
|
</Lede>
|
|
<XStack gap={16} flexWrap="wrap" justify="center">
|
|
<Action href="/contact-sales" fill>{t('Talk to sales')}</Action>
|
|
<Action href="/enterprise">{t('Run it on your own GPUs')}</Action>
|
|
</XStack>
|
|
</YStack>
|
|
</Band>
|
|
|
|
<Band pad="$10" measure={1152}>
|
|
<Grid columns={{ min: 240, max: 4 }} gap={16}>
|
|
{POINTS.map(([title, body]) => (
|
|
<Leaf key={title} p={24} borderColor="var(--border)">
|
|
<Line render="h3" display="block" mb={8} fontSize="$4" lineHeight="1.4" fontWeight="600" color="var(--foreground)">{t(title)}</Line>
|
|
<Line render="p" display="block" fontSize="$2" lineHeight="1.5" color="var(--muted-foreground)">{t(body)}</Line>
|
|
</Leaf>
|
|
))}
|
|
</Grid>
|
|
</Band>
|
|
|
|
<Band id="deploy" pad="$10" measure={1100}>
|
|
<Head eyebrow={phrase('Enterprise deployment')} title={t('On your own premises')} lede={t('What a rack for Zen 6 Max is made of.')} />
|
|
<Rack ask />
|
|
</Band>
|
|
</Box>
|
|
)
|
|
}
|