mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
Code on hanzo.ai was plain monospace: 285 blocks across 200 pages, one of them hand-inked in four greys. components/code now renders each sample at build with shiki and @hanzo/ui's codeTheme (Dracula dark, GitHub Light light), every colour written as light-dark() so the page's color-scheme picks it, on the theme's own ground. The page ships the coloured spans and no highlighter; e2e/gates/code.spec.ts holds both. A client page that shows code is split into a server page.tsx that owns the sample and a client view.tsx that takes the highlighted node: ProductLanding's code.source, the blockchain pages' codeExamples, the models kit Sample, the guest-key card, realtime, analytics, payments, sdks and the rest. Transcripts, agent prompts and ASCII diagrams are not code and keep their markup. Takes @hanzo/ui 8.27.83 for codeTheme and @hanzo/design 0.5.35 with it, regenerates app/gui.css for the new theme keys, and lowers the raw-colour allowance to 58: the samples' literal inks are gone.
96 lines
4.5 KiB
TypeScript
96 lines
4.5 KiB
TypeScript
'use client'
|
|
|
|
import type { ReactNode } from 'react'
|
|
import {
|
|
Activity,
|
|
Blocks,
|
|
Brain,
|
|
Cloud,
|
|
Code2,
|
|
GitBranch,
|
|
Lock,
|
|
Network,
|
|
Puzzle,
|
|
Rocket,
|
|
ShieldCheck,
|
|
Users,
|
|
} from 'lucide-react'
|
|
import { ProductLanding } from '@/components/product/ProductLanding'
|
|
import { ProductFooter } from '@/components/products/ProductFooter'
|
|
|
|
const IDE = 'https://ide.hanzo.ai'
|
|
const GITHUB = 'https://github.com/hanzoai/ide'
|
|
const CONSOLE = 'https://platform.hanzo.ai'
|
|
|
|
export default function IdePage({ source }: { source: ReactNode }) {
|
|
return (
|
|
<>
|
|
<ProductLanding
|
|
badge="Hanzo IDE ยท Developers"
|
|
badgeIcon={Code2}
|
|
title="An IDE that remembers your codebase"
|
|
lede="The editor you already know, on a Rust engine that is ours. The agent keeps a memory of your project across sessions, reads the call graph before it changes a line, and runs every tool in a sandbox."
|
|
ctas={[
|
|
{ label: 'Open the IDE', href: IDE, icon: Rocket },
|
|
{ label: 'View on GitHub', href: GITHUB },
|
|
]}
|
|
note={{ icon: Cloud, text: 'Open source (Apache 2.0). The VS Code workbench on a Rust engine. Open VSX extensions run as they are.' }}
|
|
what={{
|
|
eyebrow: 'What is Hanzo IDE',
|
|
title: 'The workbench you know, on an engine that is ours',
|
|
sub: 'The editor surface, the extension model and the keybindings are the ones you use today. Everything under them is Rust: the agent loop, the memory, the indexing, the sandbox.',
|
|
pillars: [
|
|
{
|
|
icon: Brain,
|
|
title: 'It remembers',
|
|
body: 'Engram gives the agent a memory that lasts past the conversation: what happened, what is true about the project, and how things are done here. Memories are consolidated, decay when unused, and come back when they matter.',
|
|
},
|
|
{
|
|
icon: Network,
|
|
title: 'It understands structure',
|
|
body: 'Tree-sitter indexing gives the agent the call graph, the type hierarchy and the impact radius of a change, so it reads the code that matters instead of every file.',
|
|
},
|
|
{
|
|
icon: ShieldCheck,
|
|
title: 'It is safe by default',
|
|
body: 'Tool calls run in a sandbox. Secrets live in the keychain, sensitive fields are encrypted at rest, and every action lands in an audit trail. All of it is in the core, none of it is a plugin.',
|
|
},
|
|
],
|
|
}}
|
|
code={{
|
|
head: { eyebrow: 'Get started', title: 'Open it in the browser, or build it on your machine' },
|
|
lang: 'bash',
|
|
source,
|
|
ctas: [
|
|
{ label: 'Open the IDE', href: IDE, icon: Rocket },
|
|
{ label: 'View on GitHub', href: GITHUB },
|
|
],
|
|
}}
|
|
features={{
|
|
eyebrow: 'Capabilities',
|
|
title: 'What the window carries',
|
|
items: [
|
|
{ icon: Brain, title: 'Three tiers of memory', body: 'A sensory buffer for the turn, working memory for the session, and a long-term graph of episodic, semantic and procedural memory that survives a restart.' },
|
|
{ icon: Blocks, title: 'Recall that ranks', body: 'Full-text and vector search run together across every store, fused and reranked, and every answer arrives with a quality score.' },
|
|
{ icon: Users, title: 'Agent profiles', body: 'Name what an agent may touch, which model it runs on, and how far it may go on its own. Switch profiles per task.' },
|
|
{ icon: Activity, title: 'An activity feed', body: 'Every tool call, every decision and every approval the agent made, in real time, in one column.' },
|
|
{ icon: Puzzle, title: 'Open VSX extensions', body: 'The extensions you rely on install from Open VSX and run natively. Language servers, themes, keymaps.' },
|
|
{ icon: Lock, title: 'Ten layers of security', body: 'PII detection, field-level encryption, sandbox enforcement, keychain integration and audit trails, built into the engine.' },
|
|
],
|
|
}}
|
|
finalCta={{
|
|
icon: GitBranch,
|
|
title: 'Open the IDE. It already knows the way around.',
|
|
sub: 'Your project, its call graph, and what the agent learned last week, in one window.',
|
|
buttons: [
|
|
{ label: 'Open the IDE', href: IDE, icon: Rocket },
|
|
{ label: 'GitHub', href: GITHUB },
|
|
{ label: 'Hanzo Cloud', href: CONSOLE },
|
|
],
|
|
}}
|
|
/>
|
|
<ProductFooter slug="ide" name="IDE" />
|
|
</>
|
|
)
|
|
}
|