From 92d2a88e58db487b0ada7919ed48bf4ff8ca2d41 Mon Sep 17 00:00:00 2001
From: Brian Love
Date: Tue, 12 May 2026 17:22:02 -0700
Subject: [PATCH] =?UTF-8?q?refactor(website):=20editorial=20sweep=20?=
=?UTF-8?q?=E2=80=94=20drop=20zoneless=20claims,=20honest=20LTS=20commitme?=
=?UTF-8?q?nt=20(Group=20A)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Two factual changes flagged in PR #270 for review before final ship:
1. Drop "zoneless" mentions sitewide.
- HomeFAQ: remove "Is it zoneless-compatible?" question; remove
"zoneless support" from the "How is this different…" answer.
- Promises: nothing here mentioned zoneless directly.
- ProofStrip: replace "Built for Angular 20+ / Zoneless ready"
with "Built for / Angular 20+".
- /angular page: drop "zoneless-safe signals" from the hero
subhead, "zoneless-safe handle" from the Providers feature-block
body, the "Zoneless ready" Pill from the trust row, and "+ zoneless"
from the "OnPush + zoneless tested" bullet.
2. Soften the Angular LTS commitment to what we can actually hold.
- Promises #3 ("No abandoned majors"): was "We follow Angular's LTS.
When Angular ships, we ship." → now "We support Angular's current
and previous LTS versions."
- HomeFAQ Q "Is this production-ready today?": was "...We track
Angular's release cadence and ship against current and one
previous major." → now "...We support Angular's current and
previous LTS versions."
Other drafts flagged in the PR (ProofStrip "LangChain Awesome",
solutions-data speculative metrics) were already honest in the
shipped code — no changes needed.
All 35 website e2e tests pass.
Co-Authored-By: Claude Opus 4.7
---
apps/website/src/app/angular/page.tsx | 7 +++----
apps/website/src/components/landing/HomeFAQ.tsx | 8 ++------
apps/website/src/components/landing/Promises.tsx | 2 +-
apps/website/src/components/landing/ProofStrip.tsx | 2 +-
4 files changed, 7 insertions(+), 12 deletions(-)
diff --git a/apps/website/src/app/angular/page.tsx b/apps/website/src/app/angular/page.tsx
index 518facb45..eee32c43b 100644
--- a/apps/website/src/app/angular/page.tsx
+++ b/apps/website/src/app/angular/page.tsx
@@ -48,7 +48,7 @@ export default async function AngularPage() {
maxWidth: 640,
}}
>
- Ship LangGraph agents inside your Angular 20+ app. Thread state, interrupts, branch/history, and tool progress — all surfaced as zoneless-safe signals.
+ Ship LangGraph agents inside your Angular 20+ app. Thread state, interrupts, branch/history, and tool progress — all surfaced as signals.
@@ -57,7 +57,6 @@ export default async function AngularPage() {
MITAngular 20+
- Zoneless readyLangGraph + AG-UI
@@ -68,11 +67,11 @@ export default async function AngularPage() {
id="providers"
eyebrow="Providers"
headline="Drop it into app.config.ts. Done."
- body="provideAgent wires LangGraph (or AG-UI) into Angular's DI container. From any component, agent() returns a zoneless-safe handle with signals for messages, status, errors, and interrupts."
+ body="provideAgent wires LangGraph (or AG-UI) into Angular's DI container. From any component, agent() returns a signal-based handle for messages, status, errors, and interrupts."
bullets={[
'provideAgent + provideAgUiAgent — pick your runtime',
'agent() returns a typed signal-based handle',
- 'OnPush + zoneless tested',
+ 'OnPush tested',
'Test transports for deterministic specs',
]}
supportingCards={[
diff --git a/apps/website/src/components/landing/HomeFAQ.tsx b/apps/website/src/components/landing/HomeFAQ.tsx
index 13d22a0d8..8d2eb11e9 100644
--- a/apps/website/src/components/landing/HomeFAQ.tsx
+++ b/apps/website/src/components/landing/HomeFAQ.tsx
@@ -7,16 +7,12 @@ import { FAQ, type FAQItem } from '../ui/FAQ';
const ITEMS: FAQItem[] = [
{
q: 'How is this different from CopilotKit or AG-UI directly?',
- a: 'CopilotKit ports React patterns to Angular. AG-UI is a protocol — you still build the Angular side. Angular Agent Framework is Angular-native: signals, DI, zoneless support, and adapters that hide the protocol so you can swap LangGraph for AG-UI without rewriting your UI.',
+ a: 'CopilotKit ports React patterns to Angular. AG-UI is a protocol — you still build the Angular side. Angular Agent Framework is Angular-native: signals, DI, and adapters that hide the protocol so you can swap LangGraph for AG-UI without rewriting your UI.',
},
{
q: 'Does it work with my existing Angular app?',
a: 'Yes. Drop provideAgent (or provideAgUiAgent) into your app.config.ts. The headless primitives don’t impose any UI; the chat compositions are opt-in.',
},
- {
- q: 'Is it zoneless-compatible?',
- a: 'Yes. All signal flows are zoneless-safe. We test against zoneless apps.',
- },
{
q: 'Can I use this without LangGraph?',
a: 'Yes. Use the @ngaf/ag-ui adapter for any AG-UI compliant backend, or implement the agent contract yourself. The Angular side doesn’t know which runtime is behind it.',
@@ -31,7 +27,7 @@ const ITEMS: FAQItem[] = [
},
{
q: 'Is this production-ready today?',
- a: 'Yes — the Cockpit reference app runs the full stack. We track Angular’s release cadence and ship against current and one previous major.',
+ a: 'Yes — the Cockpit reference app runs the full stack. We support Angular’s current and previous LTS versions.',
},
{
q: 'Where do I report issues?',
diff --git a/apps/website/src/components/landing/Promises.tsx b/apps/website/src/components/landing/Promises.tsx
index a92b9bb03..ecd00ce68 100644
--- a/apps/website/src/components/landing/Promises.tsx
+++ b/apps/website/src/components/landing/Promises.tsx
@@ -7,7 +7,7 @@ import { Card } from '../ui/Card';
const PROMISES = [
{ title: 'No vendor lock-in', body: 'MIT today, MIT tomorrow. Use without us.' },
{ title: 'No paid Angular tier', body: 'The libraries stay open. Pilot-to-Prod is the only paid offering.' },
- { title: 'No abandoned majors', body: 'We follow Angular’s LTS. When Angular ships, we ship.' },
+ { title: 'No abandoned majors', body: 'We support Angular’s current and previous LTS versions.' },
{ title: 'No closed primitives', body: 'Headless primitives stay in the open repo.' },
{ title: 'No required cloud', body: 'Self-host LangGraph + your Angular app. No phone-home.' },
];
diff --git a/apps/website/src/components/landing/ProofStrip.tsx b/apps/website/src/components/landing/ProofStrip.tsx
index 99addf9f3..bddc41726 100644
--- a/apps/website/src/components/landing/ProofStrip.tsx
+++ b/apps/website/src/components/landing/ProofStrip.tsx
@@ -12,7 +12,7 @@ interface Signal {
const SIGNALS: Signal[] = [
{ label: 'MIT licensed', value: 'Open source', href: 'https://github.com/cacheplane/angular-agent-framework/blob/main/LICENSE' },
- { label: 'Built for Angular 20+', value: 'Zoneless ready', href: null },
+ { label: 'Built for', value: 'Angular 20+', href: null },
{ label: 'LangGraph + AG-UI', value: 'Two adapters', href: null },
{ label: 'Reference app', value: 'cockpit.cacheplane.ai', href: 'https://cockpit.cacheplane.ai' },
{ label: 'On npm', value: '@ngaf/chat', href: 'https://www.npmjs.com/package/@ngaf/chat' },