diff --git a/apps/website/src/components/landing/chat-landing/ChatLandingComparison.tsx b/apps/website/src/components/landing/chat-landing/ChatLandingComparison.tsx index 01b6e21d7..8af4abc86 100644 --- a/apps/website/src/components/landing/chat-landing/ChatLandingComparison.tsx +++ b/apps/website/src/components/landing/chat-landing/ChatLandingComparison.tsx @@ -9,8 +9,8 @@ const ROWS = [ { capability: 'Input handling', theirs: 'Sprint 2', ours: 'Included' }, { capability: 'Accessibility (WCAG)', theirs: 'Sprint 2-3', ours: 'Included' }, { capability: 'Theming / design system', theirs: 'Sprint 3', ours: 'Included (CSS custom properties)' }, - { capability: 'Generative UI (json-render)', theirs: 'Sprint 4+', ours: 'Included (via @cacheplane/render)' }, - { capability: 'Google A2UI spec', theirs: 'Sprint 5+', ours: 'Included' }, + { capability: 'Generative UI (json-render)', theirs: 'Sprint 4+', ours: 'Included — Vercel json-render spec' }, + { capability: 'Google A2UI spec', theirs: 'Sprint 5+', ours: '18 components, v0.9 validation, extensible handlers' }, { capability: 'Debug tooling', theirs: 'Often never', ours: 'Included' }, { capability: 'Time to production', theirs: '4-6 weeks', ours: 'Days' }, ]; diff --git a/apps/website/src/components/landing/chat-landing/ChatLandingFeaturesGrid.tsx b/apps/website/src/components/landing/chat-landing/ChatLandingFeaturesGrid.tsx index a9c207c59..ab4930bc1 100644 --- a/apps/website/src/components/landing/chat-landing/ChatLandingFeaturesGrid.tsx +++ b/apps/website/src/components/landing/chat-landing/ChatLandingFeaturesGrid.tsx @@ -6,7 +6,7 @@ import { tokens } from '@cacheplane/design-tokens'; const FEATURES = [ { title: 'Messages', desc: 'Streaming message display with token-by-token rendering. Markdown support, auto-scroll, and accessible message list.', iframePath: 'chat/core-capabilities/messages/overview/python' }, { title: 'Input', desc: 'Chat input with send and interrupt controls. Keyboard shortcuts, disabled state during streaming, accessible labels.', iframePath: 'chat/core-capabilities/input/overview/python' }, - { title: 'Generative UI', desc: 'Inline spec rendering in conversation. json-render and Google A2UI specs render as native Angular components within the chat.', iframePath: 'chat/core-capabilities/generative-ui/overview/python' }, + { title: 'Generative UI', desc: 'Inline spec rendering in conversation. Vercel json-render specs and Google A2UI surfaces render as native Angular components — 18 built-in A2UI components, v0.9 CheckRule validation, and consumer-extensible action handlers.', iframePath: 'chat/core-capabilities/generative-ui/overview/python' }, { title: 'Theming', desc: 'CSS custom property theming that integrates with your design system. Swap colors, fonts, spacing without touching component code.', iframePath: 'chat/core-capabilities/theming/overview/python' }, { title: 'Debug', desc: 'Agent state inspector for development. View messages, tool calls, interrupts, and streaming state in real time.', iframePath: 'chat/core-capabilities/debug/overview/python' }, ]; diff --git a/apps/website/src/components/landing/chat-landing/ChatLandingProblemSolution.tsx b/apps/website/src/components/landing/chat-landing/ChatLandingProblemSolution.tsx index 9e596ded2..20a55940d 100644 --- a/apps/website/src/components/landing/chat-landing/ChatLandingProblemSolution.tsx +++ b/apps/website/src/components/landing/chat-landing/ChatLandingProblemSolution.tsx @@ -14,10 +14,10 @@ const PAIN_POINTS = [ const SOLUTIONS = [ 'Pre-built accessible components', - 'json-render spec support via @cacheplane/render', - 'Google A2UI spec support out of the box', - 'Debug tooling included', - 'CSS custom property theming', + 'Vercel json-render spec via @cacheplane/render', + 'Google A2UI spec — 18 built-in components, v0.9 CheckRule validation', + 'Consumer-extensible action handlers for both specs', + 'Debug tooling + CSS custom property theming included', 'Every feature ships together — not incrementally', ]; diff --git a/apps/website/src/components/landing/render/RenderComparison.tsx b/apps/website/src/components/landing/render/RenderComparison.tsx index 7fb69433a..daee9e573 100644 --- a/apps/website/src/components/landing/render/RenderComparison.tsx +++ b/apps/website/src/components/landing/render/RenderComparison.tsx @@ -10,7 +10,8 @@ const ROWS = [ { capability: 'Testing specs', theirs: 'Integration tests only', ours: 'Unit test specs in isolation' }, { capability: 'Frontend/agent coupling', theirs: 'Tight — changes break both', ours: 'Decoupled via spec contract' }, { capability: 'Iteration speed', theirs: 'Days per change', ours: 'Minutes per change' }, - { capability: 'Open standard', theirs: 'Proprietary format', ours: 'Vercel json-render spec' }, + { capability: 'Open standards', theirs: 'Proprietary format', ours: 'Vercel json-render + Google A2UI' }, + { capability: 'A2UI components', theirs: 'Build from scratch', ours: '18 built-in, extensible catalog' }, ]; export function RenderComparison() { diff --git a/apps/website/src/components/landing/render/RenderHero.tsx b/apps/website/src/components/landing/render/RenderHero.tsx index 1099ee557..ec9453cf9 100644 --- a/apps/website/src/components/landing/render/RenderHero.tsx +++ b/apps/website/src/components/landing/render/RenderHero.tsx @@ -3,7 +3,7 @@ import { motion } from 'framer-motion'; import { tokens } from '@cacheplane/design-tokens'; -const BADGES = ['Angular 20+', 'Vercel json-render', 'JSON Patch streaming']; +const BADGES = ['Angular 20+', 'Vercel json-render', 'Google A2UI', 'JSON Patch streaming']; export function RenderHero() { return ( @@ -31,7 +31,7 @@ export function RenderHero() { fontFamily: 'Inter, sans-serif', fontSize: 18, color: tokens.colors.textSecondary, maxWidth: '52ch', margin: '0 auto', lineHeight: 1.6, marginBottom: '2rem', }}> - Built on Vercel's json-render spec — an open standard you already trust. @cacheplane/render brings it to Angular with streaming JSON patches, component registries, and signal-native state. + Built on Vercel's json-render spec and Google's A2UI protocol — open standards you already trust. @cacheplane/render brings both to Angular with streaming JSON patches, component registries, and signal-native state.