SolidJS has @ai-sdk/solid with useChat, but its version line lags the React/Svelte/Vue packages. Check before you commit to it.

Setup:

pnpm add ai @ai-sdk/solid zod

Client:

import { useChat } from '@ai-sdk/solid';
import { DefaultChatTransport } from 'ai';

const [chat] = [useChat({ transport: new DefaultChatTransport({ api: '/api/chat' }) })];
// chat().messages, chat().sendMessage, chat().status follow Solid signal conventions

Server: any framework-agnostic endpoint works. A plain Node/Express handler with result.pipeUIMessageStreamToResponse(res), or a Next.js route with createUIMessageStreamResponse, both speak the same UI message stream protocol the Solid client parses.

Checklist:
1. The @ai-sdk/solid package exists on npm but its latest line (1.x) is older than @ai-sdk/react 4.x / @ai-sdk/svelte 5.x. Verify its peer dependency on ai matches your ai major before building.
2. If the versions do not line up, you will see stream parse errors or missing-hook errors that look like your code is wrong. They are dependency drift, not code bugs.
3. Solid components use signals; call the hook once and read chat().messages in your JSX rather than destructuring into stale closures.
4. The server side is identical regardless of client framework. Reuse the same route handler pattern: streamText, await convertToModelMessages, toUIMessageStream.
5. For a new Solid project where @ai-sdk/solid proves stale, the fallback is a hand-rolled fetch reader over the UI message stream. That is more work but removes the version risk.
6. Record the exact @ai-sdk/solid and ai versions that work in your lockfile and README so the next person does not upgrade one without the other.