Vercel’s Chat SDK shipped version 4.30.0 on June 2, 2026, adding native Telegram draft streaming, WhatsApp typing indicators, and Twilio SMS/MMS helpers to an adapter architecture that now covers 13 chat platforms. The pitch is straightforward: one TypeScript bot handler, every surface. The real question is how far that abstraction holds before you’re back to writing platform-specific code.
What the Chat SDK Actually Is
The Chat SDK is a distinct product from Vercel’s AI SDK, though the two are designed to interlock. Where AI SDK abstracts LLM provider differences (OpenAI, Anthropic, Google, and 25+ others, per comparison coverage at Strapi), the Chat SDK abstracts chat platform differences. Install is npm install chat plus whichever platform adapters you need: @chat-adapter/slack, @chat-adapter/teams, @chat-adapter/discord, and so on. Each adapter is a separate package, so your bundle only pulls in the surfaces you actually target.
The architecture is adapter-based rather than protocol-based. There is no intermediate chat representation that all platforms compile down to. Instead, each adapter translates between a unified handler API and the platform’s native event model. This is a deliberate tradeoff: it means the SDK can expose platform-specific features without waiting for a lowest-common-denominator spec, but it also means the “unified” handler is only as reliable as the thinnest adapter in your stack.
The SDK is MIT-licensed and TypeScript-native, maintained in the vercel/chat monorepo.
The Adapter Surface at chat@4.30.0
As of chat@4.30.0, Vercel-maintained adapters cover Slack, Microsoft Teams, Google Chat, Discord, GitHub, Linear, Telegram, WhatsApp, Twilio, Messenger, and a Web adapter that speaks the AI SDK UI message stream protocol for React, Vue, and Svelte. That is 11 official adapters. Community and vendor-official adapters listed at chat-sdk.dev/adapters push the total past 13.
The June 2 release specifically added three capabilities: native Telegram private-chat draft streaming (the bot shows its “typing” response in real time, a feature Telegram’s Bot API supports natively), WhatsApp typing indicators, and Twilio SMS/MMS helpers for teams that route messages through Twilio’s telephony layer rather than over-the-top chat apps. State management backends shipped in lockstep at 4.30.0: @chat-adapter/state-redis, @chat-adapter/state-pg, and @chat-adapter/state-memory.
Where the Abstraction Holds
The SDK’s unified handler API covers several categories well enough to eliminate boilerplate:
Event handling. Mentions, reactions, button clicks, slash commands, and modal submissions are all routed through the same event shape regardless of platform. A handler that responds to a button click looks structurally identical on Slack, Teams, and Discord. The adapter translates the platform’s event payload into the shared shape.
AI streaming. This is the most technically ambitious feature. The SDK supports AI streaming natively on Slack (using its existing streaming API) and on Telegram (using the new draft-preview mechanism in 4.30.0). For platforms without native streaming, it falls back to a post-then-edit strategy: send the message, then edit it in place as tokens arrive. This fallback works but produces visual churn on platforms where edits trigger notifications or where rate limits apply to edits.
Interactive cards. The SDK renders JSX-based cards that compile to each platform’s native card format: Slack Block Kit, Microsoft Adaptive Cards, and Google Chat Cards. Write JSX once, get platform-native cards everywhere. The abstraction works well for straightforward card layouts (headers, text blocks, action buttons).
Message strategies. Overlapping messages (what happens when the bot tries to send a second response while the first is still streaming) are handled by configurable strategies: burst, queue, debounce, drop, or process. These are adapter-level concerns that the SDK manages centrally.
Where It Leaks
The adapter model has hard edges that the vendor documentation does not address. These are the seams where “one codebase, every platform” stops being true:
Per-platform authentication. Each platform has a fundamentally different auth model. Slack requires OAuth 2.0 with workspace installation scopes. Teams requires Azure Bot Framework registration and Microsoft Entra ID configuration. Telegram uses bot tokens. WhatsApp and Messenger require Meta Business verification. The Chat SDK handles inbound event verification (confirming that a payload actually came from the platform), but the initial OAuth flows, token management, and app registration are outside its scope. Teams that currently hand-roll this per platform will still hand-roll it per platform.
Rate-limit semantics. Slack, Discord, and Telegram each have different rate-limit windows, different headers, and different backoff expectations. The SDK’s message strategies (burst, queue, debounce) operate at the application layer, but the adapter’s mapping to the platform’s actual rate limits is adapter-specific. There is no unified rate-limit abstraction documented in the README or the Vercel KB.
Rich-content edge cases. The JSX card abstraction covers most common card layouts. It does not cover the full surface area of any platform’s card format. Slack Block Kit supports input blocks, date pickers, and overflow menus that have no equivalent in Adaptive Cards. Adaptive Cards support Action.Execute with adaptive responses that have no Slack counterpart. Discord embeds have field-inline layouts that don’t map to either. The SDK handles the overlap; the deltas require dropping down to platform-specific code.
The AI SDK Integration Story
The Chat SDK is designed to slot into the existing Vercel AI SDK ecosystem rather than stand alone. Tutorial examples on the Vercel Knowledge Base show building Slack AI agents with AI SDK’s ToolLoopAgent and Vercel AI Gateway, where the Chat SDK handles platform routing and the AI SDK handles LLM orchestration.
The Web adapter is the architectural bridge. It reuses the AI SDK UI message stream protocol, so the same bot handler that fires for Slack and Teams also fires for browser-based chat. useChat works with React; equivalent hooks exist for Vue and Svelte. For teams already using AI SDK’s streamText or generateText calls, the integration is a thin layer: route the LLM output through the Chat SDK handler, and the adapter renders it per platform.
Per comparison coverage at is4.ai, the AI SDK’s strengths are native edge runtime support, built-in React hooks, and a 67.5 kB gzipped bundle. LangChain JS supports more providers (50+ versus 25+, per Strapi’s comparison table) and ships pre-built agent architectures, but cannot run on edge runtimes due to its Node.js fs dependency. The Chat SDK inherits the edge-runtime compatibility from the AI SDK, which matters for teams deploying to Vercel’s own infrastructure.
Build vs. Buy: What Actually Changes
For teams already in the Vercel ecosystem, the Chat SDK eliminates a specific category of work: the per-platform boilerplate for receiving events, sending messages, and rendering basic cards. Before this SDK, a team targeting Slack and Teams would maintain two entirely separate bot implementations with different event schemas, different card formats, and different streaming strategies. The Chat SDK collapses that to one handler and two adapter installs.
What it does not eliminate: platform app registration, OAuth flow implementation, webhook endpoint configuration, testing against each platform’s sandbox environment, and handling platform-specific features that fall outside the adapter’s coverage. These are the fixed costs of multi-platform chat that no SDK layer can abstract away, because they are governance and infrastructure problems, not code problems.
The build-vs-buy line shifts, but not dramatically. Teams that were going to write their own adapter layer (a surprisingly common pattern in mid-stage startups) should evaluate the Chat SDK’s adapters against their specific requirements before committing. Teams using established alternatives like Botpress or the Microsoft Bot Framework gain less, since those tools already address platform unification, albeit with different tradeoffs in extensibility and runtime model.
Competitive Context: The Unwritten Comparison
No independent head-to-head comparison of Vercel’s Chat SDK against Botpress or the Microsoft Bot Framework exists in any sourced article as of June 2026. The comparison coverage that does exist (Strapi’s guide, is4.ai) focuses on the AI SDK vs LangChain vs OpenAI SDK, which is an LLM-provider comparison, not a chat-platform comparison. These are different products solving different problems, and the conflation is worth noting.
Botpress is a visual bot-builder with a hosted runtime and a plugin marketplace. The Microsoft Bot Framework is a C#/TypeScript SDK with deep Azure integration and a proprietary protocol (Bot Framework Connector). Vercel’s Chat SDK is a lightweight, MIT-licensed adapter layer with no hosted runtime and no proprietary protocol. Whether that lightness is a feature or a limitation depends entirely on whether your team needs a hosted bot runtime or wants to own the infrastructure.
Vercel has the resources to maintain the adapter surface: the company was valued at $9.3 billion after a $300M Series F round in September 2025 and employs roughly 550 people as of 2025. The company’s April 2026 security breach via a compromised third-party AI tool is tangential to the Chat SDK’s architecture but relevant for teams evaluating supply-chain risk for a dependency that sits in the message path.
Frequently Asked Questions
Can the same user continue a conversation across Slack and Telegram?
The state backends (Redis, PostgreSQL, in-memory) are scoped per adapter instance, so a user who messages on Slack and then switches to Telegram appears as two separate sessions. Cross-platform identity merging is not provided by the SDK. Teams that need a single conversation thread across surfaces must build their own identity layer on top of whichever state backend they choose.
What happens when a platform changes its API and the adapter breaks?
All adapters share a single release version in the vercel/chat monorepo, so a patch for @chat-adapter/slack ships as part of the next unified release alongside every other adapter. If Vercel deprioritizes a low-traffic adapter, the monorepo coupling means affected teams either fork that adapter or wait for a community contribution, since individual adapters are not versioned independently.
Can non-developers edit bot behavior built with the Chat SDK?
No. Every bot behavior is expressed in TypeScript through handler functions and event callbacks. Botpress, by contrast, ships a visual flow builder where marketing or operations staff can modify conversation paths without writing code. Teams that need non-technical editors to adjust responses must either build a configuration layer on top of the Chat SDK or choose a tool designed for that workflow.
How does the SDK handle ephemeral messages on platforms that lack them?
The adapter model provides an automatic degradation path: on Slack, ephemeral messages render inline to the requesting user. On platforms without native ephemeral support, the SDK falls back to sending a direct message instead. This is one of the few cross-platform features where the adapter handles the degradation internally rather than requiring platform-specific code.