Installing an SDK and following its integration guide should lead developers toward a compatible implementation.
But what happens when the installation instructions and the code example appear to target different generations of the SDK?
Consider a common integration scenario: building a streaming AI chat interface using a provider's API and a React SDK.
A developer follows the provider's guide:
- Installs the recommended SDK packages.
- Creates a React chat interface.
- Imports the chat hook using the documented import path.
- Implements message handling using the example provided.
The difficulty appears when the package installation and the example are compared against the current SDK API.
In newer versions of the Vercel AI SDK, React hooks are imported from "@ai-sdk/react", rather than the older "ai/react" export.
The newer API also introduces a transport-based architecture and changes how chat input and message content are handled.
This distinction matters.
A developer following an older example alongside an unversioned installation command may need to reconcile the SDK versions or adapt the implementation.
That introduces additional work that isn't necessarily obvious from the initial integration instructions.
The implementation responsibility
The provider makes its API available and supplies an integration example.
However, the developer still needs to establish:
- Which SDK generation the example targets.
- Whether the installed packages support the demonstrated imports.
- Whether the chat hook uses the expected API.
- Whether message rendering follows the installed SDK's message structure.
These responsibilities don't disappear simply because an integration example is provided.
The broader lesson
An integration guide is not just a collection of working-looking code snippets.
Its installation instructions, dependencies, imports and implementation examples need to describe a compatible implementation path.
When they don't clearly align, developers inherit the responsibility of reconciling those differences.
That is an important part of understanding the actual developer experience of a product.
Top comments (0)