mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
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
82 lines
3.9 KiB
TypeScript
82 lines
3.9 KiB
TypeScript
'use client'
|
|
|
|
import { ArrowRight, Boxes, Cpu, Gauge, Layers, Server, Shield, Zap } from 'lucide-react'
|
|
import { ProductLanding } from '@/components/product/ProductLanding'
|
|
import { ProductFooter } from '@/components/products/ProductFooter'
|
|
import { useI18n } from '@hanzo/i18n/react'
|
|
|
|
/**
|
|
* Hanzo Engine, through the ONE product kit.
|
|
*
|
|
* The largest cluster left: TWELVE pages — engine, gateway, guard, ingress,
|
|
* jin, metrics, o11y, operator, sentinel, skills, telemetry, visor — at 85%+
|
|
* identical className sets, each a hero, a six-card grid and a call to action
|
|
* written out again. All twelve pass one typed props object to
|
|
* `ProductLanding`. See LLM.md, "Tailwind is NOT gone".
|
|
*
|
|
* EVERY WORD IS THE ONE THAT WAS HERE. ProductFooter came out of the final
|
|
* card's `max-w-3xl` wrapper, where it had been rendering narrower than on
|
|
* every other product page.
|
|
*/
|
|
|
|
export default function HanzoEnginePage() {
|
|
const { t } = useI18n()
|
|
return (
|
|
<>
|
|
<ProductLanding
|
|
badge={"hanzoai/engine"}
|
|
badgeIcon={Cpu}
|
|
title={"Hanzo Engine"}
|
|
tagline={t("The inference engine, in one binary")}
|
|
lede={t("Name a model on Hugging Face and it runs. Engine quantizes it for the hardware it finds, then serves an HTTP API and a web chat from the same process — text, vision, audio, speech, image and embeddings, without a second stack underneath.")}
|
|
ctas={[
|
|
{ label: t("View on GitHub"), href: "https://github.com/hanzoai" },
|
|
]}
|
|
what={{
|
|
title: t("One process, laptop to GPU cluster"),
|
|
sub: t("Chat, an API server, and a benchmark are three commands on the same binary. There is no Python interpreter under any of them."),
|
|
pillars: [
|
|
{
|
|
icon: Zap,
|
|
title: "run, serve, bench",
|
|
body: t("One binary, three verbs. Chat with a model, put it behind an HTTP API, or measure it — the thing you benchmarked is the thing you shipped."),
|
|
},
|
|
{
|
|
icon: Gauge,
|
|
title: t("Built to serve, not just to run"),
|
|
body: t("Paged attention and continuous batching keep the card busy across concurrent requests. A disk-first KV cache carries a session across a restart, so an agent that reuses a long prefix does not pay for it twice."),
|
|
},
|
|
{
|
|
icon: Layers,
|
|
title: t("More than text"),
|
|
body: t("Vision, audio, speech, image and embeddings go through the same modality pipeline as generation, in the same process. A multimodal app is one deployment, not four."),
|
|
},
|
|
{
|
|
icon: Boxes,
|
|
title: t("It quantizes on the way in"),
|
|
body: t("In-situ quantization of any Hugging Face model, plus GGUF from 2 to 8 bits, GPTQ, AWQ, HQQ, FP8 and bitsandbytes. Ask for a level and it takes a published prebuilt when one exists, or makes one when it doesn't."),
|
|
},
|
|
{
|
|
icon: Server,
|
|
title: t("The silicon you have"),
|
|
body: t("CUDA with FlashAttention and multi-GPU tensor parallelism, Metal on Apple Silicon, or plain CPU. Same engine and same commands on each, and a doctor command that reports what it found."),
|
|
},
|
|
{
|
|
icon: Shield,
|
|
title: t("Tools, and a UI to watch them"),
|
|
body: t("It can call MCP servers over a process, HTTP or a WebSocket. The built-in UI at /ui shows reasoning, code execution and plots inline, and edits branch a conversation with its own state. Pass --no-ui and it is a plain API server."),
|
|
},
|
|
],
|
|
}}
|
|
finalCta={{
|
|
title: t("Get started with Hanzo Engine"),
|
|
buttons: [
|
|
{ label: t("View on GitHub"), href: "https://github.com/hanzoai" },
|
|
],
|
|
}}
|
|
/>
|
|
<ProductFooter slug={"engine"} name={"Engine"} />
|
|
</>
|
|
)
|
|
}
|