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

87 lines
3.6 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
'use client'
import { ArrowRight, Code, GitFork, Layers, LayoutGrid, Rocket, Search, Sparkles } from 'lucide-react'
import { ProductLanding } from '@/components/product/ProductLanding'
import { ProductFooter } from '@/components/products/ProductFooter'
import { useI18n } from '@hanzo/i18n/react'
/**
* Gallery, through the ONE product kit.
*
* A fourth cluster of the same duplicated shape — computer, desktop, gallery
* and world scored 83–97% identical on their className sets. Hero, a six-card
* grid, a call to action, written out four times. They now pass one typed
* props object to `ProductLanding` and carry zero layout classes of their own.
* See LLM.md, "Tailwind is NOT gone".
*
* EVERY WORD IS THE ONE THAT WAS HERE, with the same one deletion /node and
* /network took: a trailing "Get started with X" card whose two links were the
* docs and GitHub, both of which the hero and the card above it already reach.
* ProductFooter was nested inside it, so it also rendered narrower than on
* every other product page; out here it is the width it is everywhere else.
*/
export default function GalleryPage() {
const { t } = useI18n()
return (
<>
<ProductLanding
badge={"gallery.hanzo.ai"}
badgeIcon={LayoutGrid}
title={"Gallery"}
tagline={t("Curated template showcase for Hanzo products")}
lede={t("Production-ready starters for every Hanzo product. Browse, fork, deploy. From RAG chatbots to multi-agent workflows — wired up to Hanzo Cloud, IAM, and KMS out of the box.")}
ctas={[
{ label: t("Browse the Gallery"), href: "https://gallery.hanzo.ai", icon: ArrowRight },
{ label: t("Documentation"), href: "https://docs.hanzo.ai/docs/studio" },
]}
what={{
title: t("Start from a Working App"),
sub: t("Templates that build, deploy, and scale on day one."),
pillars: [
{
icon: Sparkles,
title: t("RAG Chatbots"),
body: t("Vector + Chat + Zen, prewired. Plug your docs in, ship a branded assistant in an afternoon."),
},
{
icon: Layers,
title: t("Agent Workflows"),
body: t("Multi-step agents using the Hanzo Agent SDK. Email triage, research bots, research-to-PR pipelines."),
},
{
icon: Rocket,
title: t("Deploy in One Click"),
body: t("Every template ships with a Hanzo Cloud deploy button. CI, secrets, and scaling preconfigured."),
},
{
icon: Code,
title: t("Open Source"),
body: t("All templates Apache-2.0 in the hanzo-apps/gallery monorepo. Read the code, fork the project."),
},
{
icon: Search,
title: t("Searchable"),
body: t("Filter by stack, product, or use case. Live previews. Embedded code playgrounds."),
},
{
icon: GitFork,
title: t("Submit Yours"),
body: t("Build a template the community will love? Open a PR — we showcase the best with a paid bounty."),
},
],
}}
finalCta={{
title: t("Skip the Boilerplate"),
sub: t("Ship your idea, not your scaffolding."),
buttons: [
{ label: t("Browse the Gallery"), href: "https://gallery.hanzo.ai", icon: ArrowRight },
{ label: t("View on GitHub"), href: "https://github.com/hanzo-apps/gallery" },
],
}}
/>
<ProductFooter slug={"gallery"} name={"Gallery"} />
</>
)
}