Welcome
Welcome to the Superwall Web SDK documentation
Beta
The Web SDK is in beta. The API may change between releases. If something does not match these docs, open an issue.
The Superwall Web SDK brings paywalls, placements, and entitlements to the browser. It uses the same campaigns, audience rules, and experiments as the iOS, Android, and Flutter SDKs. Events use the standard addEventListener. State can be read synchronously or subscribed to. Import only the parts you use and bundlers leave the rest out of your app. React 19 bindings are included.
Packages
The SDK ships as ESM-only packages. Most apps need one or two of them.
| Package | What it does | Runs in |
|---|---|---|
@superwall/paywalls-js | Headless core. createSuperwall, placements, entitlements, events. No DOM references at module load. | Node, Bun, edge, workers, SSR, browser |
@superwall/paywalls-js/browser | Browser presenter and storage. Mounts the paywall iframe and persists identity. | Browser-intended; imports safely anywhere |
@superwall/paywalls-react | SuperwallProvider plus hooks. React 19. | Browser |
@superwall/server | Server-side entitlement gating for your own routes. | Node, Bun, edge |
@superwall/verify | Verification of Superwall-signed entitlement tokens against bundled keys. | Node, Bun, edge |
Gate real resources on the server.
Subscription state in the browser can be edited from DevTools. Use @superwall/paywalls-js to decide what UI to show. Use @superwall/server or @superwall/verify to control what your backend returns.
Quick Links
Quickstart
Install, configure, and present your first paywall
React
Provider and hooks for React 19
Server-side gating
Enforce entitlements on your server
Example Apps
Runnable vanilla TypeScript and React examples
Feedback
To report an SDK bug, open an issue on GitHub. To rate these docs, use the buttons at the bottom of any page.
How is this guide?