Skip to content

Compatibility Matrix

SDK VersionSchema VersionAPI VersionStatus
0.8.x0.1.xv1Current
BrowserMinimum VersionNotes
Chrome90+Full support
Firefox90+Full support
Safari15+Full support
Edge90+Full support (Chromium-based)
iOS Safari15+Full support
Chrome Android90+Full support

The SDK requires these browser APIs:

APIUsed ForFallback
fetchPlaybook sync, server-derived context, event delivery (not used in local_only)Required — no fallback
localStorageDecision cache, interaction stateIn-memory fallback
sessionStorageSession stateIn-memory fallback
JSON.parse/stringifyData serializationRequired — no fallback
PromiseAsync operationsRequired — no fallback
DependencyMinimum VersionRecommended
React18.019.x
React DOM18.019.x

The SDK uses React hooks (useState, useEffect, useContext, useRef). React 17 and below are not supported.

PackageRuntimeMinimum Version
@revturbine/sdk (web)Browser—
Server SDK (Node.js)Node.js22.13
ToolSupportNotes
Vite✅Recommended
Next.js✅App Router and Pages Router
webpack✅Version 5+
Parcel✅Version 2+
esbuild✅Used internally for bundling
Featurereactsnippetiframe
RevTurbineProvider✅——
React hooks✅——
Drop-in slot components✅——
Headless controllers✅✅—
Custom slot types✅——
Theming✅✅✅
Event tracking✅✅✅
localStorage persistence✅✅✅

Decisions are evaluated inside your app in every mode. The modes differ in where the Playbook comes from and where telemetry goes.

revturbine_serverlocal_onlycustom_endpoints
Decision evaluation (entitlements, placements, caps)In your appIn your appIn your app
Playbook sourceRevTurbine control plane, cached in the SDK, re-checked about once a minuteBundled with your appYour endpoints
Server-derived context (plan, trial, payment state)✅ via client sessionSupplied by your appYour endpoints
Usage and eventsSent to RevTurbine ingestKept locallyYour endpoints
Playbook changesLive, without a deployRedeployYour endpoints
Cap enforcement✅ Client✅ Client✅ Client
TypeScript VersionSupport
5.0+✅ Full support
4.9⚠️ May work, not tested
4.8 and below❌ Not supported

The SDK ships with .d.ts type declarations. All public APIs are fully typed.

Bundle size depends on the entry point, bundler, and imported components. The SDK is tree-shakeable, so measure the exact pinned release in your production build; this page does not publish estimates that can drift from the package.