mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
Every import, the catalog pin and the docs name @hanzo/app and github.com/hanzoai/app. lib/rooms.ts is lib/app.ts and components/rooms.tsx is components/app.tsx.
49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
import type { Metadata } from 'next'
|
|
import { SiteHeader, SiteFooter } from '@/components/home/shell'
|
|
import { AccountProvider } from '@hanzo/app/lib/account'
|
|
import { ogImages, twitterImages } from '@/lib/constants/og'
|
|
import { Box } from '@/components/ui'
|
|
import Closing from '@/components/marketing/Closing'
|
|
|
|
const SITE_TITLE = 'Hanzo — chat, or build with dev'
|
|
const SITE_DESCRIPTION = 'The whole cloud in one binary. Build with autonomous agents, frontier models, and sovereign infrastructure. Open source.'
|
|
|
|
export const metadata: Metadata = {
|
|
title: SITE_TITLE,
|
|
description: SITE_DESCRIPTION,
|
|
openGraph: {
|
|
title: SITE_TITLE,
|
|
description: SITE_DESCRIPTION,
|
|
url: 'https://hanzo.ai',
|
|
siteName: 'Hanzo AI',
|
|
type: 'website',
|
|
images: ogImages(SITE_TITLE),
|
|
},
|
|
twitter: {
|
|
card: 'summary_large_image',
|
|
title: SITE_TITLE,
|
|
description: SITE_DESCRIPTION,
|
|
images: twitterImages,
|
|
},
|
|
}
|
|
|
|
export default function MarketingLayout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode
|
|
}) {
|
|
return (
|
|
<AccountProvider>
|
|
{/* No `backgroundColor` — see HomeLanding. The ground is html's, and a
|
|
wrapper repainting it would hide the backdrop on every marketing route
|
|
at once. A frame has no `color` prop, so the ink rides `$platform-web`. */}
|
|
<Box minH="100vh" $platform-web={{ color: 'var(--foreground)' }}>
|
|
<SiteHeader />
|
|
<main id="main">{children}</main>
|
|
<Closing />
|
|
<SiteFooter />
|
|
</Box>
|
|
</AccountProvider>
|
|
)
|
|
}
|