Skip to content

Blog: TanStack AI Beta launch#975

Merged
AlemTuzlak merged 10 commits into
mainfrom
blog/tanstack-ai-beta-launch
Jun 11, 2026
Merged

Blog: TanStack AI Beta launch#975
AlemTuzlak merged 10 commits into
mainfrom
blog/tanstack-ai-beta-launch

Conversation

@tombeckenham

@tombeckenham tombeckenham commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the TanStack AI Beta launch blog post (src/blog/tanstack-ai-beta.md), publishing 2026-06-09.

What's in the post

  • TL;DR of the Beta: every modality (text, structured streaming, tools, embeddings, image/audio/video, realtime voice), AG-UI at the core of the protocol, per-model type safety, middleware, host-side MCP, experimental orchestration, and the 147-test cross-provider E2E suite.
  • Code examples, all verified against the latest ts-react-chat / ts-react-media example apps and docs/adapters/fal.md in the AI repo: a server chat endpoint (chat + toServerSentEventsResponse), the React client (useChat + fetchServerSentEvents), a one-line provider swap (OpenAI → Anthropic claude-fable-5), and generateAudio with Gemini Lyria.
  • TypeScript-first framing: the protocol section leads with TypeScript end to end, with the documented transport-agnostic protocol as the portability story. No Python/PHP commitments.
  • Install one-liner CTA at the close.
  • Header image in public/blog-assets/tanstack-ai-beta/.

Notes for reviewers

  • The provider-swap example uses claude-fable-5, which lands in the Anthropic adapter's typed model union separately — that adapter support should ship before or with this post.
  • Links reference existing posts only (alpha announcement, adapter split, middleware, audio, voice, code mode, MCP, orchestration, testing, debug logging) — all verified present in src/blog/.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Updated TanStack AI Beta blog post: reframed Beta as a maturity milestone, expanded announcement text, clarified capabilities (structured streaming, tool calls, summarization, image/video/audio generation, realtime voice chat), kept server + React streaming chat examples, hook/provider guidance, composing-real-systems patterns, TypeScript-first protocol and per-model type safety, improved debugging guidance, and updated tests to 265 deterministic E2E tests across 10 providers; includes install snippet and “Get started” link.

tombeckenham and others added 5 commits June 9, 2026 19:44
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 9, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d5808903-328f-4e27-8444-cd921d3d8f61

📥 Commits

Reviewing files that changed from the base of the PR and between ac979b4 and f41d471.

📒 Files selected for processing (1)
  • src/blog/tanstack-ai-beta.md
✅ Files skipped from review due to trivial changes (1)
  • src/blog/tanstack-ai-beta.md

📝 Walkthrough

Walkthrough

Revises the TanStack AI Beta blog post: updates front matter and Beta framing, expands modality coverage and examples (server SSE + React useChat), preserves per-model typing and composition notes, adds pluggable debug tooling, and updates tested claim to 265 deterministic E2E tests across 10 providers; ends with install snippet and CTA.

Changes

TanStack AI Beta Announcement Blog Post

Layer / File(s) Summary
Post metadata and introduction
src/blog/tanstack-ai-beta.md
YAML front matter updated (title, date, excerpt, library, authors). Hero/intro framing reshaped for the Beta announcement.
What 'Beta' Means
src/blog/tanstack-ai-beta.md
Explains Beta as stable, documented, versioned core APIs/protocol and stronger test confidence.
Every-modality API and examples
src/blog/tanstack-ai-beta.md
"Every Modality, One API" expanded with modality coverage (streaming, tool calls, summarization, images/video, audio, realtime voice), server SSE and React useChat streaming examples, hook-family overview, provider adapter-swap guidance, and a typed generateAudio example.
Per-model type safety
src/blog/tanstack-ai-beta.md
Describes per-model modelOptions typing and type-level gating of tool pairings to prevent incompatible wiring.
Composing real systems
src/blog/tanstack-ai-beta.md
Lists middleware, lazy tool discovery, code mode, host-side MCP, and experimental orchestration features.
TypeScript-first & protocol
src/blog/tanstack-ai-beta.md
Documents the server↔client protocol, AG-UI event format, transport adapters, and client framework readiness.
Debugging and devtools
src/blog/tanstack-ai-beta.md
Pluggable debug logging with category toggles and an isomorphic devtools panel; includes debug flag example.
Tested and install CTA
src/blog/tanstack-ai-beta.md
"Tested Like We Mean It" updated to 265 deterministic E2E tests across 10 providers per PR. Concluding install snippet (pnpm add) and "Get started" link.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • LadyBluenotes
  • AlemTuzlak

Poem

🐰 A Beta hop beneath the moon,
Type-safety tunes and streaming tune,
Audio hums and tools align,
Tests that run — two-six-five in line,
pnpm add — the meadow's fine!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Blog: TanStack AI Beta launch' directly and clearly summarizes the main change: adding a blog post announcing TanStack AI's Beta release, which matches the changeset content exactly.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch blog/tanstack-ai-beta-launch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

- Add server/client chat snippets, provider-swap diff, audio example,
  and install command, all verified against the latest example apps
- Reframe protocol section as TypeScript-first, drop Python/PHP mentions

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@tombeckenham tombeckenham marked this pull request as ready for review June 9, 2026 22:55

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/blog/tanstack-ai-beta.md`:
- Around line 1-8: Add the missing headerImage field to the YAML front matter of
this Markdown post so the blog metadata contract in blog.functions.ts can
associate the image; update the front matter block (the top --- section) to
include headerImage: with the correct image path or filename referenced by the
content (the image used on line 10), ensuring the key name is exactly
"headerImage" to match the metadata schema.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 88f602b7-1dd0-496a-ba7b-447d4d76a69d

📥 Commits

Reviewing files that changed from the base of the PR and between da76fe8 and 142e0ac.

⛔ Files ignored due to path filters (1)
  • public/blog-assets/tanstack-ai-beta/header.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • src/blog/tanstack-ai-beta.md

Comment thread src/blog/tanstack-ai-beta.md
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@tombeckenham tombeckenham requested a review from AlemTuzlak June 9, 2026 23:29
Comment thread src/blog/tanstack-ai-beta.md Outdated
- **Built on AG-UI.** AG-UI is at the core of the protocol, not bolted on. TanStack AI speaks AG-UI events end to end, so it drops into the broader agent-UI ecosystem instead of inventing its own dialect.
- **A hardened, published protocol.** The server↔client contract is documented and stable, over any transport.
- **Adapters split by capability.** Smaller, composable adapters instead of one monolith, with per-model type safety that catches incompatible pairings at compile time.
- **First-class middleware.** Logging, filtering, caching, and rate limiting compose cleanly instead of bloating your endpoint.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would reframe this to be you can plug into X,Y,Z and achieve logging...

Comment thread src/blog/tanstack-ai-beta.md Outdated
Comment thread src/blog/tanstack-ai-beta.md Outdated

## Per-Model Type Safety That Actually Matters

Every provider has different options. Every model supports different modalities and different native tools. TanStack AI types `providerOptions` on a per-model basis, so your IDE knows exactly what each model can do.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its modelOptions

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. Had a long day yesterday. Claude helped with this. Going through it properly again now

Comment thread src/blog/tanstack-ai-beta.md Outdated

TanStack AI is TypeScript-first. The toolkit, the per-model type safety, and everything you've seen in this post is built for TypeScript end to end. But the thing that makes it all portable is the protocol: we've documented exactly how the server and client communicate, and in Beta it's stable. Speak it over any transport (HTTP, WebSockets, RPC) through a connection adapter, and our clients work with your backend.

**AG-UI is at its core.** The events flowing across that connection are AG-UI events, not a bespoke format with a compatibility shim on top. Because the standard is built in from the ground up, TanStack AI interoperates with the wider agent-UI ecosystem out of the box. It's the same no-lock-in principle, applied to the wire.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we write out a list of ag-ui compliant agent frameworks here, like maf, agno, etc, and also explain it allows for people to use servers written in kotlin, rust, .net, whatever

tombeckenham and others added 2 commits June 11, 2026 09:19
- Remove embeddings (not supported) from TL;DR and modality list
- Reframe middleware bullet as plugging into the pipeline
- Fix providerOptions -> modelOptions
- List AG-UI-compliant agent frameworks and cross-language servers

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Rewrite middleware copy to match actual lifecycle-hook behavior and
  built-ins (tool caching, content guarding, OTel tracing)
- Fix stale test numbers: 265 E2E tests across 10 providers
- Fix model id in provider-swap example (claude-opus-4-6)
- Expand client framework list (Vue, Svelte, Preact are ready)
- Remove TL;DR (duplicated body sections nearly 1:1)
- Add hook family and capability-split adapters to modality section
- Add debug-mode snippet and devtools panel screenshot
- Link modality bullets to their blog posts and docs pages

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
src/blog/tanstack-ai-beta.md (1)

1-8: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add headerImage to YAML front matter.

The header image is referenced on line 10, but the headerImage field is missing from the YAML front matter. This field should be declared for proper blog metadata association.

📝 Proposed fix
 ---
 title: 'TanStack AI Beta: The Switzerland of AI Tooling Grows Up'
 published: 2026-06-09
 excerpt: Six months ago we shipped the alpha with a promise - a framework-agnostic, provider-agnostic AI toolkit with no lock-in, ever. Today TanStack AI hits Beta with every modality, a hardened protocol, middleware, orchestration, host-side MCP, and 265 E2E tests running across 10 providers on every PR.
 library: ai
+headerImage: /blog-assets/tanstack-ai-beta/header.png
 authors:
   - Tom Beckenham
 ---
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/blog/tanstack-ai-beta.md` around lines 1 - 8, The YAML front matter is
missing the headerImage field referenced later; add a headerImage entry to the
front matter (e.g., headerImage: "/path/to/header-image.jpg" or the correct
asset path) so the blog metadata includes the image; locate the YAML block that
contains title: 'TanStack AI Beta: The Switzerland of AI Tooling Grows Up' and
add the headerImage key alongside title, published, excerpt, library, and
authors.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@src/blog/tanstack-ai-beta.md`:
- Around line 1-8: The YAML front matter is missing the headerImage field
referenced later; add a headerImage entry to the front matter (e.g.,
headerImage: "/path/to/header-image.jpg" or the correct asset path) so the blog
metadata includes the image; locate the YAML block that contains title:
'TanStack AI Beta: The Switzerland of AI Tooling Grows Up' and add the
headerImage key alongside title, published, excerpt, library, and authors.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 500fc12b-1ac1-4c5d-8553-be75c2fd4888

📥 Commits

Reviewing files that changed from the base of the PR and between 3c41709 and ac979b4.

⛔ Files ignored due to path filters (1)
  • public/blog-assets/tanstack-ai-beta/devtools.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • src/blog/tanstack-ai-beta.md

@tombeckenham tombeckenham requested a review from AlemTuzlak June 11, 2026 02:07
@AlemTuzlak AlemTuzlak merged commit 5bd0056 into main Jun 11, 2026
9 checks passed
@AlemTuzlak AlemTuzlak deleted the blog/tanstack-ai-beta-launch branch June 11, 2026 06:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants