Skip to content

Commit 608ef6b

Browse files
jfarcandclaude
andcommitted
docs(website): balance marketing site for real-time core and AI
- Hero: "Real-Time Infrastructure for Java" (was "AI Agent Infrastructure") - Hero description: leads with WebSocket/SSE/gRPC, then mentions AI agents - Stats bar: add "4 transports" stat alongside LLM backends - Section title: "Everything real-time, one framework" (was AI-only) - Reorder cards: Transport Layer first, then Rooms/Broadcaster (new), then AI Streaming & Agents (with @coordinator), Client SDKs, Spring/Quarkus - Consolidate Agent Protocols and LLM Backends into AI card to reduce AI-heaviness Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent acd37c4 commit 608ef6b

2 files changed

Lines changed: 70 additions & 64 deletions

File tree

website/src/components/Atmosphere.astro

Lines changed: 61 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,62 @@
11
---
22
const capabilities = [
3-
{
4-
icon: `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
5-
<path d="M12 2a4 4 0 0 0-4 4v2H6a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2h-2V6a4 4 0 0 0-4-4z"/>
6-
<circle cx="12" cy="15" r="2"/>
7-
<path d="M12 17v2"/>
8-
</svg>`,
9-
title: '@Agent & Skills',
10-
description: 'One annotation wires everything: AI endpoint, commands, tools, skill file, conversation memory, and protocol exposure. Import skills from GitHub — 1,200+ available. Auto-discovers skill files at META-INF/skills/ on the classpath.',
11-
badge: 'New in 4.0',
12-
detail: `<ul>
13-
<li><strong>@Agent annotation</strong> — declares an AI agent with endpoint, commands, tools, and protocol exposure</li>
14-
<li><strong>Skill file auto-discovery</strong> — reads skill definitions from META-INF/skills/ on the classpath</li>
15-
<li><strong>atmosphere import from GitHub</strong> — import skills directly from GitHub repositories</li>
16-
<li><strong>Full-stack vs headless mode</strong> — serve a built-in AI Console UI or run headless for A2A/MCP</li>
17-
<li><strong>@Command slash commands</strong> — register user-facing commands with type-safe parameters</li>
18-
<li><strong>@AiTool portable tools</strong> — tools that work across all LLM backends</li>
19-
<li><strong>Conversation memory</strong> — built-in session-scoped conversation history</li>
20-
<li><strong>Built-in AI Console UI</strong> — development and production chat interface served automatically</li>
21-
</ul>`,
22-
},
233
{
244
icon: `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
255
<path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z"/>
266
<path d="m9 12 2 2 4-4"/>
277
</svg>`,
28-
title: 'Agent Protocols',
29-
description: 'Three open protocols auto-registered based on classpath. Your @Agent is discoverable by any MCP client, any A2A agent, and any AG-UI frontend — zero configuration.',
30-
badge: 'MCP · A2A · AG-UI',
8+
title: 'Transport Layer',
9+
description: 'WebSocket, SSE, long-polling, and gRPC — your code never changes. Atmosphere picks the best transport, handles fallback, reconnection, heartbeats, and message caching automatically.',
10+
badge: 'Since 2008',
3111
detail: `<ul>
32-
<li><strong>MCP</strong> — @McpTool/@McpResource/@McpPrompt for Claude, Copilot, and Cursor</li>
33-
<li><strong>A2A</strong> — @AgentSkill/@AgentSkillHandler via Agent Cards + JSON-RPC</li>
34-
<li><strong>AG-UI</strong> — @AgUiEndpoint/@AgUiAction via SSE (CopilotKit compatible)</li>
35-
<li><strong>Protocol annotations</strong> — work on both @Agent and @ManagedService</li>
36-
<li><strong>Multi-channel</strong> — Slack/Telegram/Discord/WhatsApp/Messenger routing</li>
12+
<li><strong>WebSocket</strong> — full-duplex, binary support, proxy-safe</li>
13+
<li><strong>SSE</strong> — server-sent events with automatic reconnection</li>
14+
<li><strong>Long-polling</strong> — works everywhere, even behind restrictive firewalls</li>
15+
<li><strong>gRPC</strong> — bidirectional streaming alongside HTTP transports</li>
16+
<li><strong>Auto-fallback</strong> — WebSocket → SSE → long-polling, transparent to your code</li>
17+
<li><strong>Heartbeats</strong> — detect dead connections before TCP timeouts</li>
18+
<li><strong>Reconnection</strong> — exponential backoff with jitter, message replay on reconnect</li>
19+
<li><strong>Message cache</strong> — no messages lost during brief disconnections</li>
3720
</ul>`,
3821
},
3922
{
4023
icon: `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
41-
<path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z"/>
42-
<path d="m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z"/>
43-
<path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"/>
44-
<path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"/>
24+
<path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/>
25+
<circle cx="9" cy="7" r="4"/>
26+
<path d="M23 21v-2a4 4 0 0 0-3-3.87"/>
27+
<path d="M16 3.13a4 4 0 0 1 0 7.75"/>
4528
</svg>`,
46-
title: 'LLM Backends',
47-
description: 'Not an LLM library — the infrastructure layer underneath. Pick any backend, swap by changing one Maven dependency. Your agent code never changes.',
29+
title: 'Broadcaster, Rooms & Presence',
30+
description: 'Write to a Broadcaster, deliver to every subscriber. RoomManager with join/leave, presence tracking, message history, and virtual AI members. @ManagedService for zero-boilerplate real-time endpoints.',
4831
detail: `<ul>
49-
<li><strong>Built-in</strong> — Gemini, OpenAI, and Ollama via direct HTTP client</li>
50-
<li><strong>Spring AI</strong> — ChatClient + RAG + VectorStore integration</li>
51-
<li><strong>LangChain4j</strong> — chains, agents, and tool bridging</li>
52-
<li><strong>Google ADK</strong> — multi-agent orchestration</li>
53-
<li><strong>Embabel</strong> — goal-driven agents</li>
54-
<li><strong>Tool portability</strong> — @AiTool works with every backend</li>
32+
<li><strong>Broadcaster</strong> — transport-agnostic pub/sub engine with topic-based routing</li>
33+
<li><strong>@ManagedService</strong> — annotate a class, get a real-time endpoint with lifecycle hooks</li>
34+
<li><strong>RoomManager</strong> — join, leave, presence events, message history</li>
35+
<li><strong>Virtual members</strong> — LLM-powered room participants that respond to messages</li>
36+
<li><strong>BroadcasterCache</strong> — replay missed messages on reconnect</li>
37+
<li><strong>Interceptors</strong> — heartbeat, backpressure, MDC tracing, content tracking</li>
38+
<li><strong>Clustering</strong> — Redis and Kafka broadcasters for multi-node deployments</li>
39+
<li><strong>Durable sessions</strong> — survive restarts with SQLite or Redis backing</li>
5540
</ul>`,
5641
},
5742
{
5843
icon: `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
59-
<path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z"/>
60-
<path d="m9 12 2 2 4-4"/>
44+
<path d="M12 2a4 4 0 0 0-4 4v2H6a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2h-2V6a4 4 0 0 0-4-4z"/>
45+
<circle cx="12" cy="15" r="2"/>
46+
<path d="M12 17v2"/>
6147
</svg>`,
62-
title: 'Transport Layer',
63-
description: 'WebSocket, SSE, long-polling — your code never changes. Atmosphere picks the best transport, handles fallback, reconnection, heartbeats, and message caching automatically.',
48+
title: 'AI Streaming & Agents',
49+
description: '@Agent wires AI endpoint, commands, tools, skill file, conversation memory, and protocol exposure automatically. @Coordinator orchestrates fleets of agents with parallel fan-out and sequential pipelines.',
50+
badge: 'New in 4.0',
6451
detail: `<ul>
65-
<li><strong>WebSocket</strong> — full-duplex, binary support, proxy-safe</li>
66-
<li><strong>SSE</strong> — server-sent events with automatic reconnection</li>
67-
<li><strong>Long-polling</strong> — works everywhere, even behind restrictive firewalls</li>
68-
<li><strong>Auto-fallback</strong> — WebSocket → SSE → long-polling, transparent to your code</li>
69-
<li><strong>Heartbeats</strong> — detect dead connections before TCP timeouts</li>
70-
<li><strong>Reconnection</strong> — exponential backoff with jitter, message replay on reconnect</li>
71-
<li><strong>Message cache</strong> — no messages lost during brief disconnections</li>
52+
<li><strong>@Agent annotation</strong> — declares an AI agent with endpoint, commands, tools, and protocol exposure</li>
53+
<li><strong>@Coordinator + @Fleet</strong> — multi-agent orchestration with parallel fan-out, sequential pipelines, and weighted routing</li>
54+
<li><strong>AgentRuntime SPI</strong> — pluggable AI backends: Spring AI, LangChain4j, Google ADK, Embabel, or built-in</li>
55+
<li><strong>@AiTool portable tools</strong> — tools that work across all LLM backends</li>
56+
<li><strong>Conversation memory</strong> — built-in session-scoped conversation history</li>
57+
<li><strong>MCP, A2A, AG-UI</strong> — three open protocols auto-registered based on classpath</li>
58+
<li><strong>Multi-channel</strong> — Slack, Telegram, Discord, WhatsApp, Messenger routing</li>
59+
<li><strong>Built-in AI Console UI</strong> — development and production chat interface served automatically</li>
7260
</ul>`,
7361
},
7462
{
@@ -86,6 +74,24 @@ const capabilities = [
8674
<li><strong>Auth tokens</strong> — automatic token refresh and session management</li>
8775
<li><strong>React, Vue, Svelte</strong> — native hooks for each framework</li>
8876
<li><strong>React Native</strong> — AppState/NetInfo-aware with EventSource polyfill</li>
77+
</ul>`,
78+
},
79+
{
80+
icon: `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
81+
<path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z"/>
82+
<path d="m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z"/>
83+
<path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"/>
84+
<path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"/>
85+
</svg>`,
86+
title: 'Spring Boot & Quarkus',
87+
description: 'Auto-configured starters for both frameworks. Add one dependency to your existing app — Atmosphere handles the real-time layer without rewiring anything.',
88+
detail: `<ul>
89+
<li><strong>Spring Boot 4.0 starter</strong> — auto-configuration, annotation scanning, observability</li>
90+
<li><strong>Quarkus 3.21 extension</strong> — build-time annotation scanning, native image support</li>
91+
<li><strong>Micrometer metrics</strong> — connection counts, message throughput, AI latency</li>
92+
<li><strong>OpenTelemetry tracing</strong> — span propagation across transports and AI calls</li>
93+
<li><strong>Health checks</strong> — readiness and liveness probes for Kubernetes</li>
94+
<li><strong>Virtual threads</strong> — enabled by default on JDK 21+</li>
8995
</ul>`,
9096
},
9197
];
@@ -95,10 +101,11 @@ const capabilities = [
95101
<div class="atmosphere-container">
96102
<div class="section-header">
97103
<span class="section-label">Atmosphere 4.0</span>
98-
<h2 class="section-title">AI agent infrastructure for Java</h2>
104+
<h2 class="section-title">Everything real-time, one framework</h2>
99105
<p class="section-description">
100-
The agent runtime, protocol exposure, LLM backends, transport layer, and client SDKs
101-
your application needs — so you can focus on what makes your agent different.
106+
Transport layer, rooms, presence, AI streaming, agent protocols, LLM backends, and client SDKs —
107+
from classic pub/sub to multi-agent orchestration, Atmosphere handles the real-time layer
108+
so you can focus on what makes your application different.
102109
</p>
103110
</div>
104111

website/src/components/Hero.astro

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,14 @@
1111
<div class="hero-content">
1212
<h1 class="hero-title">
1313
<span class="title-line title-accent">Async IO</span>
14-
<span class="title-line title-subline">AI Agent Infrastructure for Java.</span>
14+
<span class="title-line title-subline">Real-Time Infrastructure for Java.</span>
1515
</h1>
1616

1717
<p class="hero-description">
18-
We build <strong>Atmosphere</strong> — the open-source runtime that turns any Java class
19-
into an AI agent with streaming delivery over WebSocket, SSE, and gRPC.
20-
Protocol exposure via MCP, A2A, and AG-UI. Multi-channel routing to Slack,
21-
Telegram, and Discord. Skills follow the Agent Skills standard.
22-
In production since 2008.
18+
We build <strong>Atmosphere</strong> — the open-source framework for WebSocket, SSE, and
19+
gRPC on the JVM. From classic pub/sub chat and dashboards to AI-powered agents
20+
with tool calling and multi-protocol exposure. Rooms, presence, clustering,
21+
and durable sessions built in. In production since 2008.
2322
</p>
2423

2524
<div class="hero-actions">
@@ -44,13 +43,13 @@
4443
</div>
4544
<div class="stat-divider"></div>
4645
<div class="stat">
47-
<span class="stat-value">5 LLM backends</span>
48-
<span class="stat-label">Spring AI, LangChain4j, ADK, Embabel, built-in</span>
46+
<span class="stat-value">4 transports</span>
47+
<span class="stat-label">WebSocket, SSE, long-polling, gRPC</span>
4948
</div>
5049
<div class="stat-divider"></div>
5150
<div class="stat">
52-
<span class="stat-value">3 protocols</span>
53-
<span class="stat-label">MCP, A2A, AG-UI</span>
51+
<span class="stat-value">5 LLM backends</span>
52+
<span class="stat-label">Spring AI, LangChain4j, ADK, Embabel, built-in</span>
5453
</div>
5554
<div class="stat-divider"></div>
5655
<div class="stat">

0 commit comments

Comments
 (0)