From f5f97355d5b7f88ab38ad9085537bf2face0473c Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Tue, 11 Aug 2026 15:04:16 -0500 Subject: [PATCH 01/15] docs(web): add the Web SDK section New Web SDK docs covering install, configure, placements, identity, feature gating, subscription state, the React provider and hooks, server-side entitlement gating, purchases, and events. Registers the section in the SDKs nav after Unity. Written against Superwall-Web HEAD (0.2.4). npm is still at 0.2.1, so this documents unreleased behavior by design and should not merge until the packages are published. Every page carries a beta warning per the standup ask. Co-Authored-By: Claude Opus 5 --- content/docs/meta.json | 1 + content/docs/web/guides/events.mdx | 85 +++++++++++ content/docs/web/guides/purchases.mdx | 92 ++++++++++++ .../docs/web/guides/server-side-gating.mdx | 117 +++++++++++++++ content/docs/web/index.mdx | 59 ++++++++ content/docs/web/meta.json | 22 +++ content/docs/web/quickstart/configure.mdx | 102 +++++++++++++ .../docs/web/quickstart/feature-gating.mdx | 89 ++++++++++++ content/docs/web/quickstart/install.mdx | 71 +++++++++ .../web/quickstart/present-first-paywall.mdx | 102 +++++++++++++ .../tracking-subscription-state.mdx | 105 ++++++++++++++ .../docs/web/quickstart/user-management.mdx | 87 +++++++++++ content/docs/web/react/hooks.mdx | 135 ++++++++++++++++++ content/docs/web/react/provider.mdx | 86 +++++++++++ 14 files changed, 1153 insertions(+) create mode 100644 content/docs/web/guides/events.mdx create mode 100644 content/docs/web/guides/purchases.mdx create mode 100644 content/docs/web/guides/server-side-gating.mdx create mode 100644 content/docs/web/index.mdx create mode 100644 content/docs/web/meta.json create mode 100644 content/docs/web/quickstart/configure.mdx create mode 100644 content/docs/web/quickstart/feature-gating.mdx create mode 100644 content/docs/web/quickstart/install.mdx create mode 100644 content/docs/web/quickstart/present-first-paywall.mdx create mode 100644 content/docs/web/quickstart/tracking-subscription-state.mdx create mode 100644 content/docs/web/quickstart/user-management.mdx create mode 100644 content/docs/web/react/hooks.mdx create mode 100644 content/docs/web/react/provider.mdx diff --git a/content/docs/meta.json b/content/docs/meta.json index 26920f61..c5419580 100644 --- a/content/docs/meta.json +++ b/content/docs/meta.json @@ -18,6 +18,7 @@ "expo", "flutter", "unity", + "web", "react-native", "community" ] diff --git a/content/docs/web/guides/events.mdx b/content/docs/web/guides/events.mdx new file mode 100644 index 00000000..fe14582b --- /dev/null +++ b/content/docs/web/guides/events.mdx @@ -0,0 +1,85 @@ +--- +title: "Events" +description: "Listen to SDK lifecycle events and register a global delegate." +--- + + + +**Beta** + +The Web SDK is in beta and its API may change between releases. + + + +## Listening + +`sw.events` is a native `EventTarget` with typed overloads, so everything you know about `addEventListener` applies — including `AbortSignal` for cleanup. + +```ts +const ac = new AbortController(); + +sw.events.addEventListener( + "subscriptionStatus_didChange", + (event) => console.log(event.detail), + { signal: ac.signal }, +); + +// Removes every listener registered with this signal. +ac.abort(); +``` + +Handlers receive a typed `CustomEvent`, so the payload is on `event.detail`. + + + In React, prefer [`useSuperwallEvent`](/web/react/hooks), which ties the subscription to the + component lifecycle for you. + + +## What is emitted + +The event map covers the same lifecycle the mobile SDKs report. Grouped roughly: + +| Area | Events | +| --- | --- | +| Session | `first_seen`, `app_open`, `app_close`, `app_launch`, `app_install`, `session_start`, `reset` | +| Configuration | `config_refresh`, `config_fail`, `config_attributes` | +| Identity and attributes | `identity_alias`, `user_attributes`, `device_attributes`, `integration_attributes` | +| Subscription | `subscriptionStatus_didChange`, `customerInfo_didChange` | +| Placements | `trigger_fire`, `paywallPresentationRequest`, `confirm_all_assignments` | +| Paywall lifecycle | `paywall_open`, `paywall_close`, `paywall_page_view`, `paywall_decline` | +| Paywall loading | `paywallPreload_start`, `paywallPreload_complete`, `paywallResponseLoad_start`, `paywallResponseLoad_complete`, `paywallResponseLoad_notFound`, `paywallResponseLoad_fail` | +| Webview | `paywallWebviewLoad_start`, `paywallWebviewLoad_complete`, `paywallWebviewLoad_fail` | +| Other | `deepLink_open` | + +Some events are local-only and never reach Superwall's servers. Those live in `LocalSuperwallEventMap`, and `AllSuperwallEvents` is the union of both. + +## Global delegate + +Where events tell you what happened, the delegate lets you answer questions the SDK asks. Register one at creation, or swap it later. + +```ts +const sw = createSuperwall({ + apiKey: "pk_web_…", + delegate: { + onCustomPaywallAction: ({ name }) => { + if (name === "contact_support") openIntercom(); + }, + }, +}); + +sw.setDelegate(otherDelegate); +sw.setDelegate(null); +``` + +Custom paywall actions you define in the paywall editor arrive here. Per-call handlers passed to `register` fire alongside the delegate rather than replacing it — the delegate is the fallback for anything a call-scoped handler does not handle. + +## Forwarding to your analytics + +A single listener is usually enough to mirror everything into your own pipeline. + +```ts +const forward = (type: string) => + sw.events.addEventListener(type, (e) => analytics.track(type, e.detail)); + +["paywall_open", "paywall_close", "subscriptionStatus_didChange"].forEach(forward); +``` diff --git a/content/docs/web/guides/purchases.mdx b/content/docs/web/guides/purchases.mdx new file mode 100644 index 00000000..ffe2bae6 --- /dev/null +++ b/content/docs/web/guides/purchases.mdx @@ -0,0 +1,92 @@ +--- +title: "Purchases" +description: "How checkout works, and how to take it over." +--- + + + +**Beta** + +The Web SDK is in beta and its API may change between releases. + + + +## The default: Superwall handles it + +Create an instance without a `purchaseController` and the SDK runs the standard checkout itself — Stripe checkout from the paywall, `?code=` redemption on return, and polling for the resulting entitlements. + +```ts +const sw = createSuperwall({ apiKey: "pk_web_…" }); +``` + +This is the path most apps want. Products come from the paywall you configured in the dashboard, and subscription status updates on its own once the purchase settles. + +## Reading the catalog + +```ts +const products = await sw.purchases.getProducts(); +``` + +Products come from the parsed config. Expect an empty array before configuration lands, or when the config carries no products. + +## Restoring + +```ts +await sw.purchases.restore(); +``` + +## Discount codes + +When a paywall is on screen, `sw.activePaywall` exposes controls for Stripe promotion codes. + +```ts +const active = sw.activePaywall.value; + +if (active) { + const outcome = await active.redeemDiscount("LAUNCH20"); + if (!outcome.valid) console.log("rejected:", outcome.reason); +} +``` + +Redeeming validates the code against the checkout backend, re-prices the paywall's Stripe products, and forwards the code to every Stripe web checkout session created afterwards — including rebuilding sessions that were already prefetched. + +```ts +await active.clearDiscount(); +``` + +A few behaviors worth knowing: + +- It resolves after roughly ten seconds with `{ valid: false, reason: "timeout" }` if the paywall never replies, which is what happens when it has no Stripe products loaded. +- Issuing a second `redeemDiscount` while one is in flight supersedes the first, which settles as `{ valid: false, reason: "superseded" }` rather than hanging. +- Passing an empty code rejects with a `DiscountError` — use `clearDiscount()` instead. + + + This is the programmatic equivalent of the **Redeem Discount** tap action in the paywall editor. + See [Discount codes](/web-checkout/web-checkout-discount-codes) for setting the code up in Stripe. + + +## Running your own checkout + +If you bill through your own system, keep the SDK's paywalls and placements but tell it the outcome yourself. + +```ts +sw.purchases.setSubscriptionStatus({ + status: "ACTIVE", + entitlements: [{ identifier: "pro" }], +}); +``` + +The SDK treats what you push as truth for client-side state. It is still not a security boundary — see [Server-side gating](/web/guides/server-side-gating). + +## Taking over the controller + +For full control of the transaction, pass a `purchaseController` at creation. It replaces the built-in automatic controller entirely, including `?code=` redemption and entitlements polling, so you own those too. + +```ts +const sw = createSuperwall({ + apiKey: "pk_web_…", + purchaseController: myPurchaseController, +}); +``` + +There is no runtime setter — the controller is wired once, at `createSuperwall`. diff --git a/content/docs/web/guides/server-side-gating.mdx b/content/docs/web/guides/server-side-gating.mdx new file mode 100644 index 00000000..5010d7ce --- /dev/null +++ b/content/docs/web/guides/server-side-gating.mdx @@ -0,0 +1,117 @@ +--- +title: "Server-side gating" +description: "Enforce entitlements on your backend, where users cannot tamper with them." +--- + + + +**Beta** + +The Web SDK is in beta and its API may change between releases. + + + +## Why this page exists + +The browser SDK keeps subscription state locally so your UI can react instantly. That state is readable and writable from DevTools. Anyone can flip themselves to `ACTIVE` and see whatever your client-side checks unlock. + +For UI, that is fine — the worst case is someone sees a button. For anything that costs you money or exposes real data, the check has to happen somewhere the user does not control. + +Two packages do that, and they differ in whether the check needs a network call. + +| Package | How it checks | Use when | +| --- | --- | --- | +| `@superwall/server` | Calls Superwall's `/entitlements` endpoint, with caching | You want the simplest correct thing | +| `@superwall/verify` | Verifies a signed token offline, no network | You want per-request checks with no round trip | + +## `@superwall/server` + +Create an instance, tell it how to find the current user, and gate routes with `requires`. + +```ts +import { Superwall } from "@superwall/server"; + +const sw = Superwall({ + apiKey: process.env.SUPERWALL_API_KEY!, + userId: (req) => req.session?.userId ?? null, +}); + +app.get("/api/export", sw.requires("pro"), exportHandler); +``` + +The middleware is Connect-style, so it works with Express and anything that speaks the same shape. + +### Describing what is required + +```ts +sw.requires("pro"); // one entitlement +sw.requires(["pro", "team"]); // all of them +sw.requires({ all: ["pro", "team"] }); // the same, explicitly +sw.requires({ any: ["pro", "team"] }); // at least one +``` + +### Options + +| Option | Purpose | +| --- | --- | +| `apiKey` | Your Superwall API key. Keep it in the environment, not in source. | +| `userId` | How to pull the user out of a request. Overridable per `requires` call. | +| `cache` | Cache adapter and TTL for entitlement lookups. | +| `environment` | Network environment. Defaults to `"release"`. | +| `timeoutMs` | Timeout for calls to Superwall. Defaults to `5000`. | +| `onRequest` | Called after every check. Useful for tracing. | + +### Checking without middleware + +```ts +if (await sw.userHas("pro", userId)) { + // … +} +``` + +## `@superwall/verify` + +The client holds a Superwall-signed token describing its entitlements. Send it to your backend and verify the signature — a valid one proves Superwall issued exactly those entitlements, so you can decide without calling Superwall at all. + +Read the token in the browser: + +```ts +sw.entitlementsToken.value; // reactive +sw.purchases.getEntitlementsToken(); // snapshot +``` + +Verify it on the server: + +```ts +import { verifyEntitlements } from "@superwall/verify"; + +const result = await verifyEntitlements(tokenFromClient, { + publicApiKey: process.env.SUPERWALL_PUBLIC_API_KEY!, +}); + +if (!result.entitlements.some((e) => e.identifier === "pro")) { + return res.status(402).end(); +} +``` + +There are convenience helpers for the common shapes: + +```ts +import { userHasEntitlement, userHasAnyEntitlement } from "@superwall/verify"; +``` + +### Errors + +Verification failures are typed, so you can tell "this token expired" from "this token is forged": + +`InvalidSignatureError`, `ExpiredError`, `AudienceMismatchError`, `MalformedTokenError`, `KeyUnavailableError`. + +## The rule + + + +Cryptography does not move the trust boundary. A signed token proves what Superwall issued, but only if **your server** is the one checking it. A verification that runs in the browser can simply be skipped by the browser. + + + +Use the client SDK to decide what to render. Use these packages to decide what to hand over. diff --git a/content/docs/web/index.mdx b/content/docs/web/index.mdx new file mode 100644 index 00000000..00eaba37 --- /dev/null +++ b/content/docs/web/index.mdx @@ -0,0 +1,59 @@ +--- +title: "Welcome" +description: "Welcome to the Superwall Web SDK documentation" +--- + + + +**Beta** + +The Web SDK is in beta. The API may change between releases, and these docs describe behavior that is still settling. If you hit something that does not match what you see, please [open an issue](https://github.com/superwall/Superwall-Web/issues). + + + +The Superwall Web SDK brings paywalls, placements, and entitlements to the browser. It is wire-compatible with the iOS, Android, and Flutter SDKs — the same campaigns, audience rules, and experiments drive it — but the developer-facing API is built for the web: factory-created instances, reactive signals, a native `EventTarget`, tree-shakeable named exports, and React 19 bindings. + +## Packages + +The SDK ships as a small set of 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 only | +| `@superwall/paywalls-react` | `SuperwallProvider` plus hooks. React 19. | Browser | +| `@superwall/server` | Server-side entitlement gating for your own routes. | Node, Bun, edge | +| `@superwall/verify` | Offline verification of Superwall-signed entitlement tokens. | Node, Bun, edge | + + + +**Gate real resources on the server.** + +Anything the browser knows, the browser can lie about — subscription state in the client is editable from DevTools. Use `@superwall/paywalls-js` to decide what UI to show, and [`@superwall/server` or `@superwall/verify`](/web/guides/server-side-gating) to decide what your backend actually hands over. See [Server-side gating](/web/guides/server-side-gating). + + + +## Quick Links + + + + Install, configure, and present your first paywall + + + Provider and hooks for React 19 + + + Enforce entitlements where they cannot be tampered with + + + Runnable vanilla TypeScript and React examples + + + +## Feedback + +The Web SDK is actively developed and we want to hear what is missing. If you have feedback on these docs, leave a rating and message at the bottom of the page. For SDK bugs, [open an issue on GitHub](https://github.com/superwall/Superwall-Web/issues). diff --git a/content/docs/web/meta.json b/content/docs/web/meta.json new file mode 100644 index 00000000..9589f022 --- /dev/null +++ b/content/docs/web/meta.json @@ -0,0 +1,22 @@ +{ + "title": "Web SDK", + "root": true, + "pages": [ + "index", + "---Quickstart---", + "quickstart/install", + "quickstart/configure", + "quickstart/present-first-paywall", + "quickstart/user-management", + "quickstart/feature-gating", + "quickstart/tracking-subscription-state", + "---React---", + "react/provider", + "react/hooks", + "---Guides---", + "guides/server-side-gating", + "guides/purchases", + "guides/events", + "[Example Apps](https://github.com/superwall/Superwall-Web/tree/main/example)" + ] +} diff --git a/content/docs/web/quickstart/configure.mdx b/content/docs/web/quickstart/configure.mdx new file mode 100644 index 00000000..b8644151 --- /dev/null +++ b/content/docs/web/quickstart/configure.mdx @@ -0,0 +1,102 @@ +--- +title: "Configure" +description: "Create a Superwall instance and understand what happens before it is ready." +--- + + + +**Beta** + +The Web SDK is in beta and its API may change between releases. + + + +## Create an instance + +`createSuperwall` returns an instance **synchronously** and starts configuring in the background. + +```ts +import { createSuperwall } from "@superwall/paywalls-js"; + +const sw = createSuperwall({ apiKey: "pk_web_…" }); +``` + +Do this once, as early as your app boots. Keep the returned instance around — or use the [tree-shakeable named exports](#tree-shakeable-exports) and let the SDK hold it for you. + +## You usually do not need to await + +Every method that needs configuration awaits it internally, so you can call `register`, `identify`, and the rest immediately after creating the instance. Reactive reads like `sw.user.id.value` and `sw.subscriptionStatus.value` return right away from persisted storage. + +```ts +const sw = createSuperwall({ apiKey: "pk_web_…" }); + +// No await needed — this queues behind configuration on its own. +await sw.user.identify("user_42"); +``` + +`sw.ready` exists for the cases where you *do* want to wait — gating a first render, or knowing that initial config has landed: + +```ts +await sw.ready; +``` + + + If configuration ultimately fails, `sw.ready` rejects with the configuration error, every queued + operation rejects with that same error, and `sw.configurationStatus` becomes `"failed"`. + + +## Options + +```ts +const sw = createSuperwall({ + apiKey: "pk_web_…", + options: { + /* SuperwallOptions — logging, networking, paywall behavior */ + }, + delegate: myDelegate, + storage: myStorageAdapter, + purchaseController: myPurchaseController, + identity: { + appUserId: "user_123", + aliasId: "$SuperwallAlias:…", + vendorId: "…", + vendorIdProvider: async () => "…", + }, +}); +``` + +| Option | Purpose | +| --- | --- | +| `apiKey` | Your `pk_web_…` publishable key. Required. | +| `options` | Tuning for logging, networking, and paywall behavior. | +| `delegate` | Global callbacks for SDK-wide events. See [Events](/web/guides/events). | +| `storage` | Custom storage adapter. Defaults to `localStorage` plus cookies in the browser. | +| `purchaseController` | Take over checkout. Omit to use the built-in Stripe flow. See [Purchases](/web/guides/purchases). | +| `identity` | Pre-seed identity, which is useful on the server or during SSR hydration. | +| `surveyPresenter` | Renderer for post-paywall surveys. Omit and the SDK skips survey presentation. | + + + `identity.vendorIdProvider` is where a fingerprinting library plugs in, if you use one. The SDK + does not bundle fingerprinting. + + +## Tree-shakeable exports + +If you would rather not thread the instance through your app, import the namespaces directly. The first `createSuperwall` call registers the default instance, and these bind to it. + +```ts +import { createSuperwall, user, register, events } from "@superwall/paywalls-js"; + +createSuperwall({ apiKey: "pk_web_…" }); + +await user.identify("user_42"); +const result = await register({ placement: "checkout" }); +``` + +Importing only `user` lets bundlers drop the rest as dead code. + +## Multiple instances + +Creating more than one instance is supported and useful for tests, Storybook, and multi-tenant edge workers. The **default** instance is the first one created in the process, and it is the one the named exports target. + +Next, [present your first paywall](/web/quickstart/present-first-paywall). diff --git a/content/docs/web/quickstart/feature-gating.mdx b/content/docs/web/quickstart/feature-gating.mdx new file mode 100644 index 00000000..d486a22f --- /dev/null +++ b/content/docs/web/quickstart/feature-gating.mdx @@ -0,0 +1,89 @@ +--- +title: "Feature gating" +description: "Run code only when a user is entitled to it." +--- + + + +**Beta** + +The Web SDK is in beta and its API may change between releases. + + + +## The feature callback + +Wrap the thing you are gating in `feature` and let the SDK decide whether it runs. + +```ts +await sw.register({ + placement: "export_report", + feature: () => downloadReport(), +}); +``` + +The callback runs when: + +- the user is **already entitled**, so no paywall is shown at all +- the user **purchased** on the paywall you just showed +- the paywall was **non-gated** and the user dismissed it without buying + +It does not run when a gated paywall is dismissed without a purchase. + + + Gated versus non-gated is a property of the paywall, set in the dashboard — not something you pass + from code. The same `register` call behaves differently depending on how the paywall is configured, + which is the point: you can loosen a gate without shipping a release. + + +## Branching yourself + +If you would rather decide in your own code, read the result instead. + +```ts +const result = await sw.register({ placement: "export_report" }); + +switch (result.type) { + case "presented": + if (result.result.type === "purchased") unlock(); + break; + case "skipped": + console.log("no paywall shown:", result.reason); + break; + case "error": + console.error(result.error); + break; +} +``` + +## Checking entitlements directly + +For UI that reflects entitlement state without triggering a placement — a lock icon, a disabled button — read the entitlements namespace. + +```ts +sw.entitlements.active.value; // Entitlement[] +sw.entitlements.inactive.value; +sw.entitlements.all.value; + +sw.entitlements.byProductIds(["pro_monthly"]); +``` + +These are reactive, so you can subscribe and re-render when they change: + +```ts +const unsubscribe = sw.entitlements.active.subscribe((active) => { + render({ isPro: active.some((e) => e.identifier === "pro") }); +}); +``` + +## This is UI, not enforcement + + + +Everything on this page decides **what the browser shows**. None of it is a security boundary — a user can edit local subscription state from DevTools and flip any of these checks. + +Gate anything that actually costs you money or exposes real data on your server, with [`@superwall/server` or `@superwall/verify`](/web/guides/server-side-gating). + + + +Next, [track subscription state](/web/quickstart/tracking-subscription-state). diff --git a/content/docs/web/quickstart/install.mdx b/content/docs/web/quickstart/install.mdx new file mode 100644 index 00000000..1c625d2a --- /dev/null +++ b/content/docs/web/quickstart/install.mdx @@ -0,0 +1,71 @@ +--- +title: "Install the SDK" +description: "Add the Superwall Web SDK to your browser or React app." +--- + + + +**Beta** + +The Web SDK is in beta and its API may change between releases. + + + +## Install + +Install the headless core. Add the React package too if you are using React. + + + +```bash bun +bun add @superwall/paywalls-js + +# React apps +bun add @superwall/paywalls-react react +``` + +```bash npm +npm install @superwall/paywalls-js + +# React apps +npm install @superwall/paywalls-react react +``` + +```bash pnpm +pnpm add @superwall/paywalls-js + +# React apps +pnpm add @superwall/paywalls-react react +``` + + + +`@superwall/paywalls-react` re-exports everything public from `@superwall/paywalls-js`, so React apps can import from the React package alone and skip the second dependency if they prefer. + +## Requirements + +- **ESM only.** The packages ship as ES modules with an `exports` map. There is no CommonJS build, so `require()` will not resolve them. +- **React 19** for `@superwall/paywalls-react`. The hooks rely on `use()` and `useSyncExternalStore`. +- **A modern browser** for the default presenter, which mounts the paywall in an iframe. + +## Server and edge runtimes + +`@superwall/paywalls-js` holds no DOM references at module load, so it imports cleanly in Node, Bun, edge functions, workers, and during SSR. The browser-only pieces live behind a subpath: + +```ts +import { createSuperwall } from "@superwall/paywalls-js"; // anywhere +import { createBrowserStorage } from "@superwall/paywalls-js/browser"; // browser only +``` + +Importing the `/browser` subpath on the server will fail. Keep it inside code that only runs client-side. + +## Get your API key + +You need a **web** public API key, which looks like `pk_web_…`. Find it in the Superwall dashboard under your app's keys. It is safe to ship in client code — it is a publishable key. + + + A web key is not interchangeable with your iOS or Android key. Make sure you are copying the one + for the web platform. + + +Next, [configure the SDK](/web/quickstart/configure). diff --git a/content/docs/web/quickstart/present-first-paywall.mdx b/content/docs/web/quickstart/present-first-paywall.mdx new file mode 100644 index 00000000..c967c9fa --- /dev/null +++ b/content/docs/web/quickstart/present-first-paywall.mdx @@ -0,0 +1,102 @@ +--- +title: "Present your first paywall" +description: "Register a placement and show a paywall in the browser." +--- + + + +**Beta** + +The Web SDK is in beta and its API may change between releases. + + + +## Register a placement + +`register` is the primary entry point, and it mirrors `Superwall.shared.register(...)` on iOS and Android. You give it a placement name; the SDK evaluates your campaign's audience rules and shows a paywall if the user matches one. + +```ts +const result = await sw.register({ placement: "checkout" }); +``` + +The placement must exist in a campaign in your Superwall dashboard. If nothing matches, nothing is shown — that is a normal outcome, not an error. + +## What you get back + +```ts +type RegisterPlacementResult = + | { type: "presented"; info: PaywallInfo; result: PaywallResult } + | { type: "skipped"; reason: PaywallSkippedReason } + | { type: "error"; error: Error }; +``` + +Skipped reasons and errors surface in the return value rather than throwing, so a placement that does not match is something you branch on, not something you catch. + +```ts +const result = await sw.register({ placement: "checkout" }); + +if (result.type === "presented" && result.result.type === "purchased") { + console.log("Bought:", result.result.productId); +} +``` + +## Run code when the user is entitled + +Pass a `feature` callback and the SDK runs it for you when the user should get access — because they are already entitled, because they just purchased, or because the paywall was non-gated and dismissed without a purchase. + +```ts +await sw.register({ + placement: "checkout", + feature: () => unlockExportButton(), +}); +``` + +This is the pattern to reach for most of the time. See [Feature gating](/web/quickstart/feature-gating) for how it behaves in each case. + +## Per-call callbacks + +`handler` gives you lifecycle callbacks scoped to this one call. + +```ts +await sw.register({ + placement: "checkout", + handler: { + onPresent: (info) => console.log("opened", info.identifier), + onDismiss: (info, result) => console.log("dismissed", result), + onSkip: (reason) => console.log("skipped", reason), + onError: (error) => console.error(error), + }, +}); +``` + +## Passing parameters + +`params` are the values your campaign's audience rules filter on. + +```ts +await sw.register({ + placement: "checkout", + params: { plan: "team", seats: 12 }, +}); +``` + +## Preloading + +Paywalls load in an iframe, so warming them up ahead of time makes presentation feel instant. + +```ts +await sw.placements.preloadAll(); +await sw.placements.preloadFor(["checkout", "onboarding"]); +``` + +## One paywall at a time + +Only one paywall can be on screen at once. Calling `register` while another is presented fails with `PaywallAlreadyPresentedError`. To close the current one yourself: + +```ts +sw.dismiss(); +``` + +`sw.isPaywallPresented` is a reactive read of whether one is currently up, and `sw.activePaywall` carries the presented paywall's info. + +Next, [identify your users](/web/quickstart/user-management). diff --git a/content/docs/web/quickstart/tracking-subscription-state.mdx b/content/docs/web/quickstart/tracking-subscription-state.mdx new file mode 100644 index 00000000..6d532ed6 --- /dev/null +++ b/content/docs/web/quickstart/tracking-subscription-state.mdx @@ -0,0 +1,105 @@ +--- +title: "Tracking subscription state" +description: "Read and react to a user's subscription status and entitlements." +--- + + + +**Beta** + +The Web SDK is in beta and its API may change between releases. + + + +## Subscription status + +`sw.subscriptionStatus` is a reactive value with three shapes: + +```ts +type SubscriptionStatus = + | { status: "UNKNOWN" } + | { status: "INACTIVE" } + | { status: "ACTIVE"; entitlements: Entitlement[] }; +``` + +```ts +const status = sw.subscriptionStatus.value; + +if (status.status === "ACTIVE") { + console.log("entitled to:", status.entitlements.map((e) => e.identifier)); +} +``` + +`UNKNOWN` means the SDK has not resolved status yet — treat it as "do not know," not as "not subscribed," so a paying user does not see a flash of upsell on load. + +## Reacting to changes + +Subscribe to the signal, or listen for the event. + +```ts +const unsubscribe = sw.subscriptionStatus.subscribe((status) => { + render(status); +}); +``` + +```ts +const ac = new AbortController(); + +sw.events.addEventListener( + "subscriptionStatus_didChange", + () => render(sw.subscriptionStatus.value), + { signal: ac.signal }, +); + +// later +ac.abort(); +``` + + + Subscribing fires the callback synchronously once with the current value before it returns, so you + do not need a separate initial read to prime your UI. + + +## Customer info + +`sw.customerInfo` carries the fuller picture of the customer, or `null` before it resolves. There is a snapshot method too: + +```ts +sw.customerInfo.value; +await sw.purchases.getCustomerInfo(); +``` + +## Restoring + +```ts +await sw.purchases.restore(); +``` + +## Setting status yourself + +If you run your own checkout instead of Superwall's, push the resulting status in: + +```ts +sw.purchases.setSubscriptionStatus({ + status: "ACTIVE", + entitlements: [{ identifier: "pro" }], +}); +``` + +See [Purchases](/web/guides/purchases) for the full picture on custom checkout. + +## Entitlements tokens + +For server-side checks, the SDK exposes a Superwall-signed token describing the user's entitlements. + +```ts +sw.entitlementsToken.value; // reactive, null until issued +sw.purchases.getEntitlementsToken(); // snapshot +``` + +Forward it to your backend and verify it offline with `@superwall/verify`. This is the fast path for [server-side gating](/web/guides/server-side-gating) — a valid signature proves Superwall issued those exact entitlements, with no round trip per request. + + + The token is best-effort and will be `null` when the backend is not issuing one. It refreshes + roughly hourly to track its expiry. + diff --git a/content/docs/web/quickstart/user-management.mdx b/content/docs/web/quickstart/user-management.mdx new file mode 100644 index 00000000..ea78d53d --- /dev/null +++ b/content/docs/web/quickstart/user-management.mdx @@ -0,0 +1,87 @@ +--- +title: "User management" +description: "Identify users, set attributes, and sign them out." +--- + + + +**Beta** + +The Web SDK is in beta and its API may change between releases. + + + +## Identify a user + +Call `identify` once you know who the user is, typically right after sign-in. + +```ts +await sw.user.identify("user_42"); +``` + +Before that, the SDK tracks an anonymous **alias ID** it generates and persists itself, so placements and experiments work for logged-out visitors too. + +## Reading identity + +Identity is exposed as reactive values. Read `.value` for a snapshot, or `.subscribe()` to react to changes. + +```ts +sw.user.id.value; // "" until identify() +sw.user.aliasId.value; // the anonymous ID +sw.user.effectiveId.value; // id || aliasId +sw.user.isLoggedIn.value; // boolean +``` + + + `sw.user.id` is an empty string until you call `identify`. Use `effectiveId` when you want "whoever + this is, logged in or not" — it falls back to the alias. + + +## Sign out + +```ts +await sw.user.signOut(); +``` + +This clears the identified user and returns the SDK to its anonymous alias. + +## User attributes + +Attributes are values you attach to the user, and your campaign's audience rules can filter on them. + +```ts +sw.user.setAttributes({ + plan: "team", + seats: 12, + signedUpAt: "2026-08-11", +}); +``` + +`setAttributes` merges — it does not replace the whole set. Read the current values with `sw.user.attributes.value`. + +## Integration attributes + +Integration attributes carry third-party identifiers so Superwall can line its data up with your analytics tools. + +```ts +sw.user.setIntegrationAttribute("amplitudeUserId", "abc123"); + +sw.user.setIntegrationAttributes({ + amplitudeUserId: "abc123", + mixpanelDistinctId: "xyz789", +}); +``` + +Pass `null` for a value to clear it. + +## Resetting + +`reset` clears local state — identity, attributes, and cached assignments — then resyncs. + +```ts +await sw.reset(); +``` + +Reach for `signOut` when a user logs out and `reset` when you want a clean slate, such as between tests. + +Next, [gate your features](/web/quickstart/feature-gating). diff --git a/content/docs/web/react/hooks.mdx b/content/docs/web/react/hooks.mdx new file mode 100644 index 00000000..65783525 --- /dev/null +++ b/content/docs/web/react/hooks.mdx @@ -0,0 +1,135 @@ +--- +title: "Hooks" +description: "React hooks for identity, placements, events, and reactive SDK state." +--- + + + +**Beta** + +The Web SDK is in beta and its API may change between releases. + + + +All hooks must be used under a [`SuperwallProvider`](/web/react/provider). + +## `useUser` + +Identity, attributes, and subscription state in one object. It re-renders when any of them change. + +```tsx +import { useUser } from "@superwall/paywalls-react"; + +function Account() { + const { + id, + aliasId, + effectiveId, + isLoggedIn, + attributes, + subscriptionStatus, + entitlements, + identify, + signOut, + setAttributes, + } = useUser(); + + return ( + <> +

{isLoggedIn ? id : "anonymous"}

+ + + + ); +} +``` + +`entitlements` is a convenience derived from `subscriptionStatus` — the active ones. + +## `usePlacement` + +Returns a `register` function plus the state of the latest placement **from this hook's calls**. The state is local to the component, not global SDK state, so two components using it do not interfere. + +```tsx +import { usePlacement } from "@superwall/paywalls-react"; + +function UpgradeButton() { + const { register, state } = usePlacement({ + onPresent: (info) => console.log("opened", info.identifier), + onDismiss: (_info, result) => console.log("dismissed", result), + onSkip: (reason) => console.log("skipped", reason), + onError: (error) => console.error(error), + }); + + return ( + <> + +

paywall: {state.type}

+ + ); +} +``` + +The handler you pass fires alongside the global delegate rather than replacing it. + +## `useSuperwall` + +The instance itself, for anything the other hooks do not cover. + +```tsx +const sw = useSuperwall(); +await sw.placements.preloadFor(["checkout"]); +``` + +## `useSignal` + +Subscribes to any `Readable` the SDK exposes and re-renders on change. + +```tsx +import { useSignal, useSuperwall } from "@superwall/paywalls-react"; + +function PaywallBadge() { + const sw = useSuperwall(); + const isPresented = useSignal(sw.isPaywallPresented); + return isPresented ? Paywall open : null; +} +``` + +## `useSuperwallEvent` + +Subscribes to a typed SDK event for the lifetime of the component. + +```tsx +useSuperwallEvent("subscriptionStatus_didChange", () => { + refetchAccount(); +}); +``` + +Cleanup is handled on unmount. See [Events](/web/guides/events) for what is emitted. + +## `useDelegate` + +Registers a global delegate from inside React. + +```tsx +useDelegate({ + onCustomPaywallAction: ({ name }) => { + if (name === "contact_support") openIntercom(); + }, +}); +``` + +## `useCustomPaywall` + +For rendering your own paywall UI instead of the default iframe, while the SDK still runs the full trigger pipeline and fires the same lifecycle events. You supply the UI and drive `buy`, `restore`, and `close` through the controller it hands you. + +```tsx +const { state, controller } = useCustomPaywall({ placement: "checkout" }); +``` + +There is also a `SuperwallPaywall` component and a `SuperwallCustomPaywall` equivalent for the declarative version of the same idea. + + + Custom paywall rendering is the least settled part of the beta surface. Check the + [example apps](https://github.com/superwall/Superwall-Web/tree/main/example) before building on it. + diff --git a/content/docs/web/react/provider.mdx b/content/docs/web/react/provider.mdx new file mode 100644 index 00000000..dda6c840 --- /dev/null +++ b/content/docs/web/react/provider.mdx @@ -0,0 +1,86 @@ +--- +title: "Provider" +description: "Wire the Superwall Web SDK into a React 19 app." +--- + + + +**Beta** + +The Web SDK is in beta and its API may change between releases. + + + +## Wrap your app + +`SuperwallProvider` creates and holds the instance. It takes the same options as `createSuperwall`, plus `children`. + +```tsx +import { SuperwallProvider } from "@superwall/paywalls-react"; + +function App() { + return ( + + + + ); +} +``` + +Everything below it can reach the instance through the hooks. + + + Instances are cached by `apiKey`. Mounting two providers with the same key reuses one instance + rather than configuring twice — which is what you want in tests and Storybook. + + +## Configuration is read once + +The provider reads its options on mount, keyed by `apiKey`. Changing other props afterwards does not reconfigure the SDK. Changing the `apiKey` swaps to a different instance. + +Pass configuration statically: + +```tsx + + + +``` + +If identity is not known at mount, leave it out and call `identify` from [`useUser`](/web/react/hooks) once you have it. + +## Gating render on configuration + +You do not need a Suspense boundary — every method awaits configuration internally. Add one only when you want a fallback while initial config lands. + +```tsx +import { use, Suspense } from "react"; +import { useSuperwall } from "@superwall/paywalls-react"; + +function ConfigGate({ children }: { children: React.ReactNode }) { + const sw = useSuperwall(); + use(sw.ready); + return <>{children}; +} + +function App() { + return ( + + }> + + + + + + ); +} +``` + +## Server rendering + +`@superwall/paywalls-react` is safe to import during SSR — the browser-only pieces sit behind the `/browser` subpath of the core package. Paywall presentation itself is a client-side concern, so it happens after hydration. + +Next, [the hooks](/web/react/hooks). From 06653670bab167ba5bbd1a47c5c8eb8ac5571858 Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Tue, 11 Aug 2026 15:26:57 -0500 Subject: [PATCH 02/15] chore: add launch config for the docs preview server Lets the preview tooling start `bun run dev` on port 3000 without a manual setup step. Dev-only; no effect on the built site. Co-Authored-By: Claude Opus 5 --- .claude/launch.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .claude/launch.json diff --git a/.claude/launch.json b/.claude/launch.json new file mode 100644 index 00000000..f5383e5e --- /dev/null +++ b/.claude/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.0.1", + "configurations": [ + { + "name": "docs", + "runtimeExecutable": "bun", + "runtimeArgs": ["run", "dev"], + "port": 3000 + } + ] +} From 479aa6033a69868dc8da4b7e674fb941e8e610e3 Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Wed, 12 Aug 2026 14:23:22 -0500 Subject: [PATCH 03/15] docs(web): correct claims after auditing against SDK source MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three clean-context reviewers audited all 13 pages against Superwall-Web 0.2.4; every finding was independently re-verified before applying. Corrections of note: - feature() also runs on skipped placements (placementNotFound, noAudienceMatch, holdout), so a typo'd placement name grants the feature. The page implied the opposite. - Entitlement's field is `id`, not `identifier`. @superwall/verify defines a separate type of the same name that does use `identifier`; the two were conflated in four places. - userHas takes (userId, spec). The reversed form typechecks and denies every entitled user. - verifyEntitlements throws by design; the sample now catches VerifyError. - useCustomPaywall returns { register, paywall }; SuperwallCustomPaywall does not exist. Replaced with SuperwallPaywall, which does. - onCustomPaywallAction takes a bare string and is never invoked by the SDK; custom actions arrive as the custom_placement event. - register does not await configuration — await sw.ready first. A failed config fetch resolves ready and only shows in configurationStatus. - preloadAll/preloadFor, customerInfo, refreshCustomerInfo, and entitlements.inactive/all are unimplemented in the beta and now say so. Also documents the userId extractor as the trust boundary, allowAnonymous, the 60s cache TTL, and register's overrides/paywall/presenter arguments. Co-Authored-By: Claude Opus 5 --- content/docs/web/guides/events.mdx | 42 ++++++++--- content/docs/web/guides/purchases.mdx | 14 ++-- .../docs/web/guides/server-side-gating.mdx | 72 ++++++++++++++----- content/docs/web/index.mdx | 4 +- content/docs/web/quickstart/configure.mdx | 30 +++++--- .../docs/web/quickstart/feature-gating.mdx | 22 ++++-- content/docs/web/quickstart/install.mdx | 13 ++-- .../web/quickstart/present-first-paywall.mdx | 23 ++++-- .../tracking-subscription-state.mdx | 30 +++++--- content/docs/web/react/hooks.mdx | 63 ++++++++++++++-- content/docs/web/react/provider.mdx | 33 ++++++--- 11 files changed, 262 insertions(+), 84 deletions(-) diff --git a/content/docs/web/guides/events.mdx b/content/docs/web/guides/events.mdx index fe14582b..2e4bf5b7 100644 --- a/content/docs/web/guides/events.mdx +++ b/content/docs/web/guides/events.mdx @@ -47,9 +47,14 @@ The event map covers the same lifecycle the mobile SDKs report. Grouped roughly: | Subscription | `subscriptionStatus_didChange`, `customerInfo_didChange` | | Placements | `trigger_fire`, `paywallPresentationRequest`, `confirm_all_assignments` | | Paywall lifecycle | `paywall_open`, `paywall_close`, `paywall_page_view`, `paywall_decline` | -| Paywall loading | `paywallPreload_start`, `paywallPreload_complete`, `paywallResponseLoad_start`, `paywallResponseLoad_complete`, `paywallResponseLoad_notFound`, `paywallResponseLoad_fail` | -| Webview | `paywallWebviewLoad_start`, `paywallWebviewLoad_complete`, `paywallWebviewLoad_fail` | -| Other | `deepLink_open` | +| Transactions | `transaction_start`, `transaction_complete`, `transaction_fail`, `transaction_abandon`, `transaction_timeout`, `transaction_restore`, `subscription_start`, `freeTrial_start`, `nonRecurringProduct_purchase` | +| Restore | `restore_start`, `restore_complete`, `restore_fail` | +| Discounts | `discount_redeem_complete`, `discount_redeem_fail` | +| Paywall loading | `paywallPreload_start`, `paywallPreload_complete`, `paywallResponseLoad_start`, `paywallResponseLoad_complete`, `paywallResponseLoad_notFound`, `paywallResponseLoad_fail`, `paywallProductsLoad_start`, `paywallProductsLoad_complete`, `paywallProductsLoad_fail` | +| Webview | `paywallWebviewLoad_start`, `paywallWebviewLoad_complete`, `paywallWebviewLoad_fail`, `paywallWebviewLoad_timeout` | +| Surveys | `survey_response`, `survey_close` | +| Custom | `custom_placement` | +| Other | `deepLink_open`, `page_view`, `enrichment_start`, `enrichment_complete`, `enrichment_fail` | Some events are local-only and never reach Superwall's servers. Those live in `LocalSuperwallEventMap`, and `AllSuperwallEvents` is the union of both. @@ -61,8 +66,8 @@ Where events tell you what happened, the delegate lets you answer questions the const sw = createSuperwall({ apiKey: "pk_web_…", delegate: { - onCustomPaywallAction: ({ name }) => { - if (name === "contact_support") openIntercom(); + onSubscriptionStatusChange: (from, to) => { + console.log("subscription", from.status, "→", to.status); }, }, }); @@ -71,14 +76,35 @@ sw.setDelegate(otherDelegate); sw.setDelegate(null); ``` -Custom paywall actions you define in the paywall editor arrive here. Per-call handlers passed to `register` fire alongside the delegate rather than replacing it — the delegate is the fallback for anything a call-scoped handler does not handle. +The delegate covers around a dozen callbacks — subscription and customer changes, the paywall present and dismiss pairs, URL and deep-link interception, link redemption, and `onLog`. + +Per-call handlers passed to `register` fire alongside the delegate. The two are separate surfaces covering different callbacks — `onSkip` exists only on a per-call handler, and the delegate's methods cannot be supplied per call. Neither overrides the other, and there is no fallback between them. + + + `onCustomPaywallAction` appears on the delegate type but is never invoked by the SDK in the beta. + Custom actions you define in the paywall editor arrive as the `custom_placement` event, whose + detail carries `placementName`, `paywall_info`, and `params`. + ## Forwarding to your analytics -A single listener is usually enough to mirror everything into your own pipeline. +The delegate has a catch-all built for this. It receives every wire-bound event, fully typed, with no list to maintain. + +```ts +const sw = createSuperwall({ + apiKey: "pk_web_…", + delegate: { + onEvent: (name, detail) => analytics.track(name, detail), + }, +}); +``` + +If you would rather subscribe to a specific set, type the names so `detail` narrows: ```ts -const forward = (type: string) => +import type { AllSuperwallEvents } from "@superwall/paywalls-js"; + +const forward = (type: keyof AllSuperwallEvents) => sw.events.addEventListener(type, (e) => analytics.track(type, e.detail)); ["paywall_open", "paywall_close", "subscriptionStatus_didChange"].forEach(forward); diff --git a/content/docs/web/guides/purchases.mdx b/content/docs/web/guides/purchases.mdx index ffe2bae6..3c63b551 100644 --- a/content/docs/web/guides/purchases.mdx +++ b/content/docs/web/guides/purchases.mdx @@ -51,14 +51,18 @@ if (active) { Redeeming validates the code against the checkout backend, re-prices the paywall's Stripe products, and forwards the code to every Stripe web checkout session created afterwards — including rebuilding sessions that were already prefetched. ```ts -await active.clearDiscount(); +active.clearDiscount(); ``` +`clearDiscount` is fire-and-forget and returns `void` — the paywall sends no acknowledgement, so there is nothing to await. + A few behaviors worth knowing: - It resolves after roughly ten seconds with `{ valid: false, reason: "timeout" }` if the paywall never replies, which is what happens when it has no Stripe products loaded. -- Issuing a second `redeemDiscount` while one is in flight supersedes the first, which settles as `{ valid: false, reason: "superseded" }` rather than hanging. -- Passing an empty code rejects with a `DiscountError` — use `clearDiscount()` instead. +- Issuing a second `redeemDiscount` while one is in flight supersedes the first, which settles as `{ valid: false, reason: "superseded" }` rather than hanging. `clearDiscount()` settles an in-flight redemption the same way. +- It rejects with a `DiscountError` for an empty or whitespace-only code, when no paywall is presented — including when you are holding an `activePaywall` handle from a paywall that has since been dismissed — and when the presenter has no message channel. +- A discount does not survive dismissal. Re-apply it after each presentation. +- `reason` is an open union. Known values include `code_not_found`, `code_invalid`, `no_valid_products`, `no_applicable_products`, `error`, `timeout`, `superseded`, and `paywall_dismissed`, but do not write an exhaustive `switch` over it. This is the programmatic equivalent of the **Redeem Discount** tap action in the paywall editor. @@ -72,7 +76,9 @@ If you bill through your own system, keep the SDK's paywalls and placements but ```ts sw.purchases.setSubscriptionStatus({ status: "ACTIVE", - entitlements: [{ identifier: "pro" }], + entitlements: [ + { id: "pro", type: "SERVICE_LEVEL", isActive: true, productIds: [] }, + ], }); ``` diff --git a/content/docs/web/guides/server-side-gating.mdx b/content/docs/web/guides/server-side-gating.mdx index 5010d7ce..5b24ce18 100644 --- a/content/docs/web/guides/server-side-gating.mdx +++ b/content/docs/web/guides/server-side-gating.mdx @@ -22,7 +22,7 @@ Two packages do that, and they differ in whether the check needs a network call. | Package | How it checks | Use when | | --- | --- | --- | | `@superwall/server` | Calls Superwall's `/entitlements` endpoint, with caching | You want the simplest correct thing | -| `@superwall/verify` | Verifies a signed token offline, no network | You want per-request checks with no round trip | +| `@superwall/verify` | Verifies a signed token against bundled keys, no network on the steady-state path | You want per-request checks with no round trip | ## `@superwall/server` @@ -31,7 +31,7 @@ Create an instance, tell it how to find the current user, and gate routes with ` ```ts import { Superwall } from "@superwall/server"; -const sw = Superwall({ +const sw = Superwall({ apiKey: process.env.SUPERWALL_API_KEY!, userId: (req) => req.session?.userId ?? null, }); @@ -39,7 +39,13 @@ const sw = Superwall({ app.get("/api/export", sw.requires("pro"), exportHandler); ``` -The middleware is Connect-style, so it works with Express and anything that speaks the same shape. +The middleware is Connect-style, so it works with Express and anything that speaks the same shape. Pass your request type as the generic parameter, or `req` infers as `unknown`. + + + +**The `userId` extractor is the trust boundary.** Read it from an authenticated session, as above. Reading it from the request body, a query string, or an unverified header lets any caller claim to be any user, which defeats the entire gate. + + ### Describing what is required @@ -56,19 +62,36 @@ sw.requires({ any: ["pro", "team"] }); // at least one | --- | --- | | `apiKey` | Your Superwall API key. Keep it in the environment, not in source. | | `userId` | How to pull the user out of a request. Overridable per `requires` call. | -| `cache` | Cache adapter and TTL for entitlement lookups. | +| `cache` | Cache adapter and TTL for entitlement lookups. Defaults to 60 seconds, in-memory, single-process. | | `environment` | Network environment. Defaults to `"release"`. | | `timeoutMs` | Timeout for calls to Superwall. Defaults to `5000`. | -| `onRequest` | Called after every check. Useful for tracing. | +| `onRequest` | Called after a completed check. Useful for tracing. | + +`requires` also takes `allowAnonymous`, which defaults to `false` — a request with no resolvable user is rejected. Setting it to `true` waves those requests straight through. + +### What a rejection looks like + +By default a blocked request gets `403` with `{ error: "entitlement_required", entitlement }`. Pass `onUnauthorized` to `requires` to customize it; it receives the missing entitlements and a `reason` of `"no_user_id"` or `"not_entitled"`. + +If Superwall cannot be reached, the middleware calls `next(err)` rather than rejecting with a 403 — so it surfaces through your framework's error handler, typically as a 500. It fails closed either way. + +### Cache staleness + +Entitlement lookups are cached for 60 seconds by default, so a revocation can take that long to take effect. Call `sw.invalidate(userId)` or `sw.invalidateAll()` when you need it immediately. The default cache is in-memory and single-process — supply a Redis or KV adapter for multi-instance deployments. ### Checking without middleware ```ts -if (await sw.userHas("pro", userId)) { +if (await sw.userHas(userId, "pro")) { // … } ``` + + The user ID comes **first**. Both parameters are strings, so reversing them still typechecks — it + just looks up a user named `"pro"`, finds nothing, and denies everyone. + + ## `@superwall/verify` The client holds a Superwall-signed token describing its entitlements. Send it to your backend and verify the signature — a valid one proves Superwall issued exactly those entitlements, so you can decide without calling Superwall at all. @@ -80,21 +103,32 @@ sw.entitlementsToken.value; // reactive sw.purchases.getEntitlementsToken(); // snapshot ``` -Verify it on the server: +Verify it on the server. **`verifyEntitlements` throws on any failure** — it never returns a partial result — so the call belongs in a `try/catch`: ```ts -import { verifyEntitlements } from "@superwall/verify"; - -const result = await verifyEntitlements(tokenFromClient, { - publicApiKey: process.env.SUPERWALL_PUBLIC_API_KEY!, -}); - -if (!result.entitlements.some((e) => e.identifier === "pro")) { - return res.status(402).end(); +import { verifyEntitlements, VerifyError } from "@superwall/verify"; + +try { + const result = await verifyEntitlements(tokenFromClient, { + publicApiKey: process.env.SUPERWALL_PUBLIC_API_KEY!, + }); + + if (!result.entitlements.some((e) => e.identifier === "pro")) { + return res.status(402).end(); + } +} catch (err) { + if (err instanceof VerifyError) return res.status(401).end(); + throw err; } ``` -There are convenience helpers for the common shapes: + + The token's entitlements use `identifier`, not `id`. This is a different type from the client + SDK's `Entitlement`, which uses `id` — see [Tracking subscription + state](/web/quickstart/tracking-subscription-state). + + +There are convenience helpers for the common shapes, both taking the token first: ```ts import { userHasEntitlement, userHasAnyEntitlement } from "@superwall/verify"; @@ -102,9 +136,11 @@ import { userHasEntitlement, userHasAnyEntitlement } from "@superwall/verify"; ### Errors -Verification failures are typed, so you can tell "this token expired" from "this token is forged": +Verification failures are typed, so you can tell "this token expired" from "this token is forged". Catch `VerifyError` for any of them, or narrow to `InvalidSignatureError`, `ExpiredError`, `AudienceMismatchError`, `MalformedTokenError`, or `KeyUnavailableError`. + +### Expiry -`InvalidSignatureError`, `ExpiredError`, `AudienceMismatchError`, `MalformedTokenError`, `KeyUnavailableError`. +Verification checks the token's own expiry, but does not filter out individual entitlements whose `expiresAt` has passed. If you rely on per-entitlement expiry, check `e.expiresAt` yourself. ## The rule diff --git a/content/docs/web/index.mdx b/content/docs/web/index.mdx index 00eaba37..3fd9d817 100644 --- a/content/docs/web/index.mdx +++ b/content/docs/web/index.mdx @@ -20,10 +20,10 @@ The SDK ships as a small set of ESM-only packages. Most apps need one or two of | 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 only | +| `@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` | Offline verification of Superwall-signed entitlement tokens. | Node, Bun, edge | +| `@superwall/verify` | Verification of Superwall-signed entitlement tokens against bundled keys. | Node, Bun, edge | diff --git a/content/docs/web/quickstart/configure.mdx b/content/docs/web/quickstart/configure.mdx index b8644151..3d9e8ff9 100644 --- a/content/docs/web/quickstart/configure.mdx +++ b/content/docs/web/quickstart/configure.mdx @@ -23,27 +23,39 @@ const sw = createSuperwall({ apiKey: "pk_web_…" }); Do this once, as early as your app boots. Keep the returned instance around — or use the [tree-shakeable named exports](#tree-shakeable-exports) and let the SDK hold it for you. -## You usually do not need to await +## Wait for `ready` before presenting -Every method that needs configuration awaits it internally, so you can call `register`, `identify`, and the rest immediately after creating the instance. Reactive reads like `sw.user.id.value` and `sw.subscriptionStatus.value` return right away from persisted storage. +`register` waits for identity to hydrate, but it does **not** wait for configuration to arrive. Called before config lands, it returns `{ type: "error" }` carrying a `PaywallNotAvailableError` instead of showing a paywall. ```ts const sw = createSuperwall({ apiKey: "pk_web_…" }); -// No await needed — this queues behind configuration on its own. -await sw.user.identify("user_42"); +await sw.ready; + +const result = await sw.register({ placement: "checkout" }); ``` -`sw.ready` exists for the cases where you *do* want to wait — gating a first render, or knowing that initial config has landed: +Reads never block. `sw.user.id.value` and `sw.subscriptionStatus.value` return synchronously at any time — but before configuration lands they return defaults (`""` and `{ status: "UNKNOWN" }`), not persisted values. The persisted state replaces them a moment later. + + + This is why `UNKNOWN` matters. A returning subscriber reads `UNKNOWN` for the first tick, so + branching on "not ACTIVE" immediately after `createSuperwall` shows them an upsell they have + already paid for. + + + + +**Check `configurationStatus`, not `ready`, to detect failure.** A failed config fetch is swallowed internally: `sw.ready` still resolves, and `sw.configurationStatus` becomes `"failed"`. The two disagree by design. ```ts await sw.ready; + +if (sw.configurationStatus.value === "failed") { + // Superwall could not configure. Paywalls will not present. +} ``` - - If configuration ultimately fails, `sw.ready` rejects with the configuration error, every queued - operation rejects with that same error, and `sw.configurationStatus` becomes `"failed"`. - + ## Options diff --git a/content/docs/web/quickstart/feature-gating.mdx b/content/docs/web/quickstart/feature-gating.mdx index d486a22f..96fb419d 100644 --- a/content/docs/web/quickstart/feature-gating.mdx +++ b/content/docs/web/quickstart/feature-gating.mdx @@ -25,11 +25,20 @@ await sw.register({ The callback runs when: - the user is **already entitled**, so no paywall is shown at all -- the user **purchased** on the paywall you just showed +- the user **purchased** or **restored** on the paywall you just showed - the paywall was **non-gated** and the user dismissed it without buying +- the placement was **skipped** — including when the placement was not found, the user matched no audience, or they landed in a holdout It does not run when a gated paywall is dismissed without a purchase. + + +**A skipped placement still runs your feature.** If the placement name does not exist in any campaign, or the user matches no audience rule, the SDK runs `feature` and returns `{ type: "skipped" }`. A typo in a placement name therefore grants the feature rather than withholding it. + +This matches the iOS and Android SDKs: a misconfigured campaign should not lock existing users out of your app. But it means `feature` alone is not a way to decide whether someone has paid. For that, check entitlements — and enforce on [your server](/web/guides/server-side-gating). + + + Gated versus non-gated is a property of the paywall, set in the dashboard — not something you pass from code. The same `register` call behaves differently depending on how the paywall is configured, @@ -62,9 +71,6 @@ For UI that reflects entitlement state without triggering a placement — a lock ```ts sw.entitlements.active.value; // Entitlement[] -sw.entitlements.inactive.value; -sw.entitlements.all.value; - sw.entitlements.byProductIds(["pro_monthly"]); ``` @@ -72,10 +78,16 @@ These are reactive, so you can subscribe and re-render when they change: ```ts const unsubscribe = sw.entitlements.active.subscribe((active) => { - render({ isPro: active.some((e) => e.identifier === "pro") }); + render({ isPro: active.some((e) => e.id === "pro") }); }); ``` + + `sw.entitlements` also exposes `inactive` and `all`, but neither is populated in the beta. + `inactive` is always an empty array — inactive entitlements are not tracked client-side yet — and + `all` is identical to `active`. Use `active`. + + ## This is UI, not enforcement diff --git a/content/docs/web/quickstart/install.mdx b/content/docs/web/quickstart/install.mdx index 1c625d2a..62f71d78 100644 --- a/content/docs/web/quickstart/install.mdx +++ b/content/docs/web/quickstart/install.mdx @@ -44,8 +44,8 @@ pnpm add @superwall/paywalls-react react ## Requirements -- **ESM only.** The packages ship as ES modules with an `exports` map. There is no CommonJS build, so `require()` will not resolve them. -- **React 19** for `@superwall/paywalls-react`. The hooks rely on `use()` and `useSyncExternalStore`. +- **ESM only.** The packages ship as ES modules with an `exports` map. There is no CommonJS build. +- **React 19** for `@superwall/paywalls-react`, declared as a peer dependency. - **A modern browser** for the default presenter, which mounts the paywall in an iframe. ## Server and edge runtimes @@ -54,18 +54,17 @@ pnpm add @superwall/paywalls-react react ```ts import { createSuperwall } from "@superwall/paywalls-js"; // anywhere -import { createBrowserStorage } from "@superwall/paywalls-js/browser"; // browser only +import { createBrowserStorage } from "@superwall/paywalls-js/browser"; // browser-intended ``` -Importing the `/browser` subpath on the server will fail. Keep it inside code that only runs client-side. +The `/browser` subpath imports cleanly on the server — nothing on it touches the DOM at module load, and its factories degrade gracefully. Only actually mounting a paywall needs a real DOM. ## Get your API key -You need a **web** public API key, which looks like `pk_web_…`. Find it in the Superwall dashboard under your app's keys. It is safe to ship in client code — it is a publishable key. +You need your app's public API key, a `pk_…` value from the Superwall dashboard. It is safe to ship in client code — it is a publishable key. - A web key is not interchangeable with your iOS or Android key. Make sure you are copying the one - for the web platform. + Use the key for the web platform, not your iOS or Android key. Next, [configure the SDK](/web/quickstart/configure). diff --git a/content/docs/web/quickstart/present-first-paywall.mdx b/content/docs/web/quickstart/present-first-paywall.mdx index c967c9fa..ef35924e 100644 --- a/content/docs/web/quickstart/present-first-paywall.mdx +++ b/content/docs/web/quickstart/present-first-paywall.mdx @@ -80,14 +80,27 @@ await sw.register({ }); ``` +## Overriding presentation + +Three more optional arguments change how the paywall is shown for a single call: + +| Argument | Effect | +| --- | --- | +| `overrides` | Per-call presentation tweaks applied before the iframe mounts. Currently `presentationStyle`. | +| `paywall` | Render your own UI instead of the default iframe, while the SDK still runs the full pipeline and fires the same events. | +| `presenter` | Replace the presenter entirely for this call. Highest precedence. | + +Precedence is `presenter` > `paywall` > the default browser presenter. In React, [`useCustomPaywall`](/web/react/hooks) wraps the `paywall` path. + ## Preloading -Paywalls load in an iframe, so warming them up ahead of time makes presentation feel instant. +Paywalls load in an iframe, and the SDK warms them for you: during configuration it preloads up to six paywalls that have a URL, two at a time. You do not need to do anything. -```ts -await sw.placements.preloadAll(); -await sw.placements.preloadFor(["checkout", "onboarding"]); -``` + + `sw.placements.preloadAll()` and `preloadFor()` exist on the API but are **not implemented in the + beta** — both are empty functions that resolve immediately and preload nothing. Do not rely on + them. + ## One paywall at a time diff --git a/content/docs/web/quickstart/tracking-subscription-state.mdx b/content/docs/web/quickstart/tracking-subscription-state.mdx index 6d532ed6..3e413913 100644 --- a/content/docs/web/quickstart/tracking-subscription-state.mdx +++ b/content/docs/web/quickstart/tracking-subscription-state.mdx @@ -26,7 +26,7 @@ type SubscriptionStatus = const status = sw.subscriptionStatus.value; if (status.status === "ACTIVE") { - console.log("entitled to:", status.entitlements.map((e) => e.identifier)); + console.log("entitled to:", status.entitlements.map((e) => e.id)); } ``` @@ -62,12 +62,11 @@ ac.abort(); ## Customer info -`sw.customerInfo` carries the fuller picture of the customer, or `null` before it resolves. There is a snapshot method too: - -```ts -sw.customerInfo.value; -await sw.purchases.getCustomerInfo(); -``` + + `sw.customerInfo` and `sw.purchases.getCustomerInfo()` are on the public API but are **never + populated in the beta** — both are permanently `null`. `sw.purchases.refreshCustomerInfo()` always + rejects. Read entitlement state from `subscriptionStatus` and `sw.entitlements.active` instead. + ## Restoring @@ -82,10 +81,20 @@ If you run your own checkout instead of Superwall's, push the resulting status i ```ts sw.purchases.setSubscriptionStatus({ status: "ACTIVE", - entitlements: [{ identifier: "pro" }], + entitlements: [ + { id: "pro", type: "SERVICE_LEVEL", isActive: true, productIds: [] }, + ], }); ``` + + An `Entitlement` needs all four of `id`, `type`, `isActive`, and `productIds`. Note that + `@superwall/verify` defines a **different** type also called `Entitlement`, whose field is + `identifier` rather than `id` — they are not interchangeable. + + +Setting a status equivalent to the current one is a no-op: no event fires and the delegate is not called. + See [Purchases](/web/guides/purchases) for the full picture on custom checkout. ## Entitlements tokens @@ -100,6 +109,7 @@ sw.purchases.getEntitlementsToken(); // snapshot Forward it to your backend and verify it offline with `@superwall/verify`. This is the fast path for [server-side gating](/web/guides/server-side-gating) — a valid signature proves Superwall issued those exact entitlements, with no round trip per request. - The token is best-effort and will be `null` when the backend is not issuing one. It refreshes - roughly hourly to track its expiry. + The token is best-effort and will be `null` when the backend is not issuing one. It refreshes on + roughly a ten-minute poll while the tab is in the foreground, and eagerly after checkout, after a + restore, on `identify` with a different user, and on reset. diff --git a/content/docs/web/react/hooks.mdx b/content/docs/web/react/hooks.mdx index 65783525..5a69f15f 100644 --- a/content/docs/web/react/hooks.mdx +++ b/content/docs/web/react/hooks.mdx @@ -32,6 +32,8 @@ function Account() { identify, signOut, setAttributes, + // also available: integrationAttributes, customerInfo, + // setIntegrationAttribute, setIntegrationAttributes } = useUser(); return ( @@ -72,13 +74,19 @@ function UpgradeButton() { The handler you pass fires alongside the global delegate rather than replacing it. + + The `state` is per-hook, so two components never see each other's outcomes. The SDK still allows + only one paywall on screen at a time, though — if another component already has one up, your + `register` resolves as `{ type: "error" }` with a `PaywallAlreadyPresentedError`. + + ## `useSuperwall` The instance itself, for anything the other hooks do not cover. ```tsx const sw = useSuperwall(); -await sw.placements.preloadFor(["checkout"]); +const products = await sw.purchases.getProducts(); ``` ## `useSignal` @@ -113,21 +121,64 @@ Registers a global delegate from inside React. ```tsx useDelegate({ - onCustomPaywallAction: ({ name }) => { - if (name === "contact_support") openIntercom(); + onSubscriptionStatusChange: (from, to) => { + console.log("subscription", from.status, "→", to.status); }, }); ``` + + Only one delegate is active at a time. `useDelegate` overrides a `delegate` passed to + `SuperwallProvider`, and when the last `useDelegate` unmounts it clears the delegate entirely — + including the provider's. Use one or the other, not both. + + +For custom actions defined in the paywall editor, listen for the `custom_placement` event rather than using the delegate: + +```tsx +useSuperwallEvent("custom_placement", (e) => { + if (e.detail.placementName === "contact_support") openIntercom(); +}); +``` + ## `useCustomPaywall` -For rendering your own paywall UI instead of the default iframe, while the SDK still runs the full trigger pipeline and fires the same lifecycle events. You supply the UI and drive `buy`, `restore`, and `close` through the controller it hands you. +For rendering your own paywall UI instead of the default iframe, while the SDK still runs the full trigger pipeline and fires the same lifecycle events. + +The hook does not present anything on its own — call `register()` yourself. `paywall` is `null` until a paywall actually presents, and carries both the state snapshot and the controller. + +```tsx +const { register, paywall } = useCustomPaywall({ placement: "checkout" }); + +return ( + <> + + {paywall && ( + void paywall.controller.buy(product)} + onRestore={() => void paywall.controller.restore()} + onClose={() => paywall.controller.close()} + /> + )} + +); +``` + +`controller.buy` takes the `Product` the user chose. `paywall.state` also carries `restoration` and `paywallInfo`. + +## `SuperwallPaywall` + +A declarative gate that renders the SDK's **default** paywall — not your own UI. It calls `register` on mount, shows `loading` until the paywall presents, and renders `children` once the feature unlocks. ```tsx -const { state, controller } = useCustomPaywall({ placement: "checkout" }); +}> + + ``` -There is also a `SuperwallPaywall` component and a `SuperwallCustomPaywall` equivalent for the declarative version of the same idea. +Pass `inline` to mount the paywall iframe in place instead of as a full-viewport overlay. Custom paywall rendering is the least settled part of the beta surface. Check the diff --git a/content/docs/web/react/provider.mdx b/content/docs/web/react/provider.mdx index dda6c840..00b8d7b8 100644 --- a/content/docs/web/react/provider.mdx +++ b/content/docs/web/react/provider.mdx @@ -30,13 +30,15 @@ function App() { Everything below it can reach the instance through the hooks. - Instances are cached by `apiKey`. Mounting two providers with the same key reuses one instance - rather than configuring twice — which is what you want in tests and Storybook. + Instances are cached by `apiKey` in a module-level registry, so mounting two providers with the + same key reuses one instance rather than configuring twice, and the instance survives Fast Refresh. + The registry is never evicted — swapping `apiKey` leaves the old instance configured and running + for the page's lifetime. ## Configuration is read once -The provider reads its options on mount, keyed by `apiKey`. Changing other props afterwards does not reconfigure the SDK. Changing the `apiKey` swaps to a different instance. +The provider reads its options on the **first** mount for a given `apiKey`. A later provider with the same key and different options silently reuses the original instance's configuration. Changing other props afterwards does not reconfigure the SDK; changing `apiKey` swaps to a different instance. Pass configuration statically: @@ -54,7 +56,7 @@ If identity is not known at mount, leave it out and call `identify` from [`useUs ## Gating render on configuration -You do not need a Suspense boundary — every method awaits configuration internally. Add one only when you want a fallback while initial config lands. +Registering a placement before configuration lands fails, so gate the parts of your UI that present paywalls. One way is a Suspense boundary over `sw.ready`: ```tsx import { use, Suspense } from "react"; @@ -69,18 +71,29 @@ function ConfigGate({ children }: { children: React.ReactNode }) { function App() { return ( - }> - - - - + }> + }> + + + + + ); } ``` + + `sw.ready` can reject, and `use()` rethrows — without an error boundary the subtree unmounts. Note + also that a failed **config fetch** does not reject `ready`; check + `sw.configurationStatus.value === "failed"` for that. Do not gate with `use(sw.ready)` during + server rendering. + + ## Server rendering -`@superwall/paywalls-react` is safe to import during SSR — the browser-only pieces sit behind the `/browser` subpath of the core package. Paywall presentation itself is a client-side concern, so it happens after hydration. +`@superwall/paywalls-react` is safe to import during SSR. Its entry does pull in the core package's `/browser` module, but nothing on that path touches the DOM at module load — every access is inside a function and guarded. Paywall presentation is a client-side concern and happens after hydration. + +The React package also re-exports the entire public surface of `@superwall/paywalls-js`, so you never need to import both. Next, [the hooks](/web/react/hooks). From 2f5115b3c511ffc0b1679a995577991eef478614 Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Thu, 13 Aug 2026 12:19:16 -0500 Subject: [PATCH 04/15] docs(web): retarget at SDK 0.2.5 Ian shipped fixes for most of what the audit surfaced, so several of the beta caveats added in the last commit are no longer true. Re-verified against Superwall-Web 0.2.5 (edaf79a), which is now published to npm. Now working, caveats removed: - customerInfo / getCustomerInfo / refreshCustomerInfo are implemented - entitlements.inactive and .all are populated for real - onCustomPaywallAction is wired to the legacy custom action Still true, kept: - register does not await configuration; the README was corrected to match the code rather than the other way around - the entitlements token refreshes on a ten-minute poll Changed: - preloadAll / preloadFor are being removed from the API, not implemented - @superwall/verify's helpers now check per-entitlement expiresAt, so the gating guide recommends them over iterating the array Co-Authored-By: Claude Opus 5 --- content/docs/web/guides/events.mdx | 6 +++--- content/docs/web/guides/server-side-gating.mdx | 12 +++++++++++- content/docs/web/quickstart/feature-gating.mdx | 9 +++------ .../docs/web/quickstart/present-first-paywall.mdx | 5 ++--- .../web/quickstart/tracking-subscription-state.mdx | 12 +++++++----- content/docs/web/react/hooks.mdx | 2 +- 6 files changed, 27 insertions(+), 19 deletions(-) diff --git a/content/docs/web/guides/events.mdx b/content/docs/web/guides/events.mdx index 2e4bf5b7..453a46e8 100644 --- a/content/docs/web/guides/events.mdx +++ b/content/docs/web/guides/events.mdx @@ -81,9 +81,9 @@ The delegate covers around a dozen callbacks — subscription and customer chang Per-call handlers passed to `register` fire alongside the delegate. The two are separate surfaces covering different callbacks — `onSkip` exists only on a per-call handler, and the delegate's methods cannot be supplied per call. Neither overrides the other, and there is no fallback between them. - `onCustomPaywallAction` appears on the delegate type but is never invoked by the SDK in the beta. - Custom actions you define in the paywall editor arrive as the `custom_placement` event, whose - detail carries `placementName`, `paywall_info`, and `params`. + Custom actions reach you two ways. `onCustomPaywallAction(name)` on the delegate receives the + legacy `custom` action from the paywall. Actions defined as custom placements arrive as the + `custom_placement` event, whose detail carries `placementName`, `paywall_info`, and `params`. ## Forwarding to your analytics diff --git a/content/docs/web/guides/server-side-gating.mdx b/content/docs/web/guides/server-side-gating.mdx index 5b24ce18..eeeed44c 100644 --- a/content/docs/web/guides/server-side-gating.mdx +++ b/content/docs/web/guides/server-side-gating.mdx @@ -140,7 +140,17 @@ Verification failures are typed, so you can tell "this token expired" from "this ### Expiry -Verification checks the token's own expiry, but does not filter out individual entitlements whose `expiresAt` has passed. If you rely on per-entitlement expiry, check `e.expiresAt` yourself. +A token carries its own expiry, and each entitlement inside it carries an `expiresAt` of its own — an entitlement can lapse while the token wrapping it is still valid. + +The convenience helpers account for this, so prefer them over iterating the array yourself: + +```ts +if (!(await userHasEntitlement(tokenFromClient, "pro", { publicApiKey }))) { + return res.status(402).end(); +} +``` + +If you do read `result.entitlements` directly, check `expiresAt` — it is epoch milliseconds, and `null` means lifetime. ## The rule diff --git a/content/docs/web/quickstart/feature-gating.mdx b/content/docs/web/quickstart/feature-gating.mdx index 96fb419d..a6167fd0 100644 --- a/content/docs/web/quickstart/feature-gating.mdx +++ b/content/docs/web/quickstart/feature-gating.mdx @@ -71,6 +71,9 @@ For UI that reflects entitlement state without triggering a placement — a lock ```ts sw.entitlements.active.value; // Entitlement[] +sw.entitlements.inactive.value; +sw.entitlements.all.value; + sw.entitlements.byProductIds(["pro_monthly"]); ``` @@ -82,12 +85,6 @@ const unsubscribe = sw.entitlements.active.subscribe((active) => { }); ``` - - `sw.entitlements` also exposes `inactive` and `all`, but neither is populated in the beta. - `inactive` is always an empty array — inactive entitlements are not tracked client-side yet — and - `all` is identical to `active`. Use `active`. - - ## This is UI, not enforcement diff --git a/content/docs/web/quickstart/present-first-paywall.mdx b/content/docs/web/quickstart/present-first-paywall.mdx index ef35924e..f7c72c41 100644 --- a/content/docs/web/quickstart/present-first-paywall.mdx +++ b/content/docs/web/quickstart/present-first-paywall.mdx @@ -97,9 +97,8 @@ Precedence is `presenter` > `paywall` > the default browser presenter. In React, Paywalls load in an iframe, and the SDK warms them for you: during configuration it preloads up to six paywalls that have a URL, two at a time. You do not need to do anything. - `sw.placements.preloadAll()` and `preloadFor()` exist on the API but are **not implemented in the - beta** — both are empty functions that resolve immediately and preload nothing. Do not rely on - them. + `sw.placements.preloadAll()` and `preloadFor()` currently do nothing and are being removed from + the API. Do not build on them. ## One paywall at a time diff --git a/content/docs/web/quickstart/tracking-subscription-state.mdx b/content/docs/web/quickstart/tracking-subscription-state.mdx index 3e413913..5cd5dd82 100644 --- a/content/docs/web/quickstart/tracking-subscription-state.mdx +++ b/content/docs/web/quickstart/tracking-subscription-state.mdx @@ -62,11 +62,13 @@ ac.abort(); ## Customer info - - `sw.customerInfo` and `sw.purchases.getCustomerInfo()` are on the public API but are **never - populated in the beta** — both are permanently `null`. `sw.purchases.refreshCustomerInfo()` always - rejects. Read entitlement state from `subscriptionStatus` and `sw.entitlements.active` instead. - +`sw.customerInfo` carries the fuller picture of the customer, or `null` until the first entitlements read lands. There is a snapshot method too, and a way to force a refresh: + +```ts +sw.customerInfo.value; +await sw.purchases.getCustomerInfo(); +await sw.purchases.refreshCustomerInfo(); +``` ## Restoring diff --git a/content/docs/web/react/hooks.mdx b/content/docs/web/react/hooks.mdx index 5a69f15f..5f07eb5d 100644 --- a/content/docs/web/react/hooks.mdx +++ b/content/docs/web/react/hooks.mdx @@ -133,7 +133,7 @@ useDelegate({ including the provider's. Use one or the other, not both. -For custom actions defined in the paywall editor, listen for the `custom_placement` event rather than using the delegate: +Custom placements defined in the paywall editor arrive as an event rather than through the delegate: ```tsx useSuperwallEvent("custom_placement", (e) => { From 8d6a9ab77db053de6cd4ad573240902bc2d1f1fc Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Thu, 13 Aug 2026 12:25:24 -0500 Subject: [PATCH 05/15] docs(web): document new surface added in 0.2.5 0.2.5 did not only fix bugs, it added public API the pages did not cover. - identify() now honors IdentityOptions. Documents restorePaywallAssignments, which re-runs experiment assignment for the identified user so they do not get a paywall chosen from their anonymous identity's stale assignments. - Adds the new customPaywallAction event to the event table. - browser/auto is implemented now (it was an empty module); documents it as the opt-in for bundlers that cannot ship dynamic chunks. Co-Authored-By: Claude Opus 5 --- content/docs/web/guides/events.mdx | 2 +- content/docs/web/quickstart/install.mdx | 6 ++++++ content/docs/web/quickstart/user-management.mdx | 12 ++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/content/docs/web/guides/events.mdx b/content/docs/web/guides/events.mdx index 453a46e8..01178fcc 100644 --- a/content/docs/web/guides/events.mdx +++ b/content/docs/web/guides/events.mdx @@ -53,7 +53,7 @@ The event map covers the same lifecycle the mobile SDKs report. Grouped roughly: | Paywall loading | `paywallPreload_start`, `paywallPreload_complete`, `paywallResponseLoad_start`, `paywallResponseLoad_complete`, `paywallResponseLoad_notFound`, `paywallResponseLoad_fail`, `paywallProductsLoad_start`, `paywallProductsLoad_complete`, `paywallProductsLoad_fail` | | Webview | `paywallWebviewLoad_start`, `paywallWebviewLoad_complete`, `paywallWebviewLoad_fail`, `paywallWebviewLoad_timeout` | | Surveys | `survey_response`, `survey_close` | -| Custom | `custom_placement` | +| Custom | `custom_placement`, `customPaywallAction` | | Other | `deepLink_open`, `page_view`, `enrichment_start`, `enrichment_complete`, `enrichment_fail` | Some events are local-only and never reach Superwall's servers. Those live in `LocalSuperwallEventMap`, and `AllSuperwallEvents` is the union of both. diff --git a/content/docs/web/quickstart/install.mdx b/content/docs/web/quickstart/install.mdx index 62f71d78..5c5ea203 100644 --- a/content/docs/web/quickstart/install.mdx +++ b/content/docs/web/quickstart/install.mdx @@ -59,6 +59,12 @@ import { createBrowserStorage } from "@superwall/paywalls-js/browser"; // browse The `/browser` subpath imports cleanly on the server — nothing on it touches the DOM at module load, and its factories degrade gracefully. Only actually mounting a paywall needs a real DOM. + + The SDK lazy-loads the presenter on first `register()`. If your bundler cannot ship dynamic + chunks, or you want to avoid the chunk-load cost on the first presentation, import + `@superwall/paywalls-js/browser/auto` once for its side effect to pull the presenter in up front. + + ## Get your API key You need your app's public API key, a `pk_…` value from the Superwall dashboard. It is safe to ship in client code — it is a publishable key. diff --git a/content/docs/web/quickstart/user-management.mdx b/content/docs/web/quickstart/user-management.mdx index ea78d53d..b7e87368 100644 --- a/content/docs/web/quickstart/user-management.mdx +++ b/content/docs/web/quickstart/user-management.mdx @@ -21,6 +21,18 @@ await sw.user.identify("user_42"); Before that, the SDK tracks an anonymous **alias ID** it generates and persists itself, so placements and experiments work for logged-out visitors too. +## Restoring paywall assignments + +A user who browsed logged-out already has experiment assignments tied to their anonymous identity. Once they sign in, those assignments may not be the ones their real account should see. + +Pass `restorePaywallAssignments` to re-fetch config and re-run assignment for the identified user before `identify` resolves: + +```ts +await sw.user.identify("user_42", { restorePaywallAssignments: true }); +``` + +`register` calls block until the restore finishes, so the user never gets a paywall picked from their anonymous identity's stale assignments. It is best-effort — if the fetch fails, the cached assignments stay in place. + ## Reading identity Identity is exposed as reactive values. Read `.value` for a snapshot, or `.subscribe()` to react to changes. From c51d7875fa44acf1f79133d4ff15e767c2053c06 Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Thu, 13 Aug 2026 13:01:20 -0500 Subject: [PATCH 06/15] docs(web): add a nav icon for the Web SDK section Uses the pixel-grid Globe icon. Web SDK was the only section rendering without a mark in the top nav. Co-Authored-By: Claude Opus 5 --- content/docs/web/meta.json | 1 + 1 file changed, 1 insertion(+) diff --git a/content/docs/web/meta.json b/content/docs/web/meta.json index 9589f022..64da908d 100644 --- a/content/docs/web/meta.json +++ b/content/docs/web/meta.json @@ -1,5 +1,6 @@ { "title": "Web SDK", + "icon": "Globe", "root": true, "pages": [ "index", From 16143219b55fc3a78c513ad381dc4a5ea6d1829a Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Thu, 13 Aug 2026 13:26:19 -0500 Subject: [PATCH 07/15] docs(dashboard): document sharing a Superwall AI conversation Adds the share blurb to the Chats section with a screenshot of the share control. Image resized to 2000px wide per repo convention. Co-Authored-By: Claude Opus 5 --- content/docs/dashboard/superwall-ai.mdx | 4 ++++ content/docs/images/ai_dash_share.jpg | Bin 0 -> 236585 bytes 2 files changed, 4 insertions(+) create mode 100644 content/docs/images/ai_dash_share.jpg diff --git a/content/docs/dashboard/superwall-ai.mdx b/content/docs/dashboard/superwall-ai.mdx index 03dd46b7..35afd94c 100644 --- a/content/docs/dashboard/superwall-ai.mdx +++ b/content/docs/dashboard/superwall-ai.mdx @@ -49,6 +49,10 @@ The composer's model picker switches the underlying AI model: Sonnet is the defa Conversations persist: reopen the panel and your last chat is right where you left it. The list icon in the top bar shows your chat history, and the pencil starts a fresh chat. Chats are private to you and stored per browser: teammates never see them, and a different browser or device starts with a fresh history. +You can also share conversations with colleagues. Click the share icon to generate a public link: + +![The Superwall AI panel with the share icon in the top bar, generating a public link to the conversation.](/images/ai_dash_share.jpg) + ## On the docs site and superwall.com The same assistant is available outside the dashboard: the floating bubble in the bottom-right of the [docs](https://superwall.com/docs) and superwall.com, and the **Ask AI** button in the docs search dialog, which hands your search straight to it. Outside the dashboard it answers Superwall questions from the docs and SDK source; connect from the dashboard when you want it working with your account and analytics data. diff --git a/content/docs/images/ai_dash_share.jpg b/content/docs/images/ai_dash_share.jpg new file mode 100644 index 0000000000000000000000000000000000000000..46d1b4750c188c90b3ab9b5edbb7c523e7366aa5 GIT binary patch literal 236585 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Ǿ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 z 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 z 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 Date: Thu, 13 Aug 2026 13:47:47 -0500 Subject: [PATCH 08/15] docs(web-checkout): disambiguate Redeem Discount, link the Web SDK API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Salvages the two pieces of the parked SW-5608 branch that the merged discount-codes page (#254) did not cover: the Redeem Discount vs Redeem Purchase note, and a pointer to the Web SDK's programmatic redeemDiscount(). The rest of that branch is superseded — its WEBAPP-only claims predate the STRIPE gate fix. Co-Authored-By: Claude Opus 5 --- content/docs/web-checkout/web-checkout-discount-codes.mdx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/docs/web-checkout/web-checkout-discount-codes.mdx b/content/docs/web-checkout/web-checkout-discount-codes.mdx index cfd09499..e7f739c4 100644 --- a/content/docs/web-checkout/web-checkout-discount-codes.mdx +++ b/content/docs/web-checkout/web-checkout-discount-codes.mdx @@ -10,6 +10,10 @@ This works entirely on your paywall — there is no separate discount widget to Discount codes are a Stripe web checkout feature. The customer redeems a promotion code you have already created in your Stripe dashboard — Superwall does not create or manage the coupon itself. + + Don't confuse **Redeem Discount** with **Redeem Purchase**, a separate tap action in the same + Purchases group that routes a customer after a completed purchase. This page covers Redeem + Discount. ## Before you start @@ -72,3 +76,5 @@ A common pattern is to show the original price with a strikethrough alongside `d ## Where discount codes apply A redeemed code carries through Superwall's web checkout flows — redirect, embedded, and elements checkout all apply it at the Stripe checkout session. The one exception is deferred **Apple Pay** checkout, which does not apply a redeemed discount code. + +If you are building with the [Web SDK](/web), you can also redeem and clear codes from your own code via `activePaywall.redeemDiscount()` — see [Purchases](/web/guides/purchases#discount-codes). From 47c2330537d2a37efd90bef1d96354de328164d0 Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Thu, 13 Aug 2026 13:54:31 -0500 Subject: [PATCH 09/15] docs(web-checkout): add placeholders for the two discount-code screenshots SVG placeholders carrying the final filenames, placed at the steps the real captures belong to. Swapped for JPEGs when the screenshots arrive; the SVGs are deleted at that point per the docs workflow. Co-Authored-By: Claude Opus 5 --- .../images/stripe_discount_paywall_input.svg | 23 +++++++++++++++++++ .../images/stripe_discount_tap_behavior.svg | 23 +++++++++++++++++++ .../web-checkout-discount-codes.mdx | 4 ++++ 3 files changed, 50 insertions(+) create mode 100644 content/docs/images/stripe_discount_paywall_input.svg create mode 100644 content/docs/images/stripe_discount_tap_behavior.svg diff --git a/content/docs/images/stripe_discount_paywall_input.svg b/content/docs/images/stripe_discount_paywall_input.svg new file mode 100644 index 00000000..77307533 --- /dev/null +++ b/content/docs/images/stripe_discount_paywall_input.svg @@ -0,0 +1,23 @@ + + + + + + PLACEHOLDER — screenshot needed + + + stripe_discount_paywall_input.jpg + + + A paywall in the editor with a text Input (placeholder like "Promo code") + + + bound to state.discountCode, next to an Apply button. + + + Capture from a Stripe web checkout app. Until the gate fix is promoted, + + + the Redeem Discount action is only visible on the dev environment. + + diff --git a/content/docs/images/stripe_discount_tap_behavior.svg b/content/docs/images/stripe_discount_tap_behavior.svg new file mode 100644 index 00000000..c735fe0f --- /dev/null +++ b/content/docs/images/stripe_discount_tap_behavior.svg @@ -0,0 +1,23 @@ + + + + + + PLACEHOLDER — screenshot needed + + + stripe_discount_tap_behavior.jpg + + + The editor with the button selected and Tap Behavior open, showing the + + + Redeem Discount action with its code set to {{ state.discountCode }}. + + + Capture from a Stripe web checkout app. Until the gate fix is promoted, + + + the Redeem Discount action is only visible on the dev environment. + + diff --git a/content/docs/web-checkout/web-checkout-discount-codes.mdx b/content/docs/web-checkout/web-checkout-discount-codes.mdx index e7f739c4..c8c63ee4 100644 --- a/content/docs/web-checkout/web-checkout-discount-codes.mdx +++ b/content/docs/web-checkout/web-checkout-discount-codes.mdx @@ -36,6 +36,8 @@ You will add a text input for the customer to type into, then a button that rede Add an [Input element](/dashboard/dashboard-creating-paywalls/paywall-editor-input-component) where the customer will type their code, and give it a helpful placeholder such as "Promo code". Bind the input to a state variable — for example, `state.discountCode` — so the value the customer types is available to the redeem action. + + ![A paywall in the editor with a promo code input bound to state.discountCode and an Apply button](/images/stripe_discount_paywall_input.svg) Add a button (or reuse an existing one) next to the input. This is the element the customer taps to apply their code. @@ -47,6 +49,8 @@ You will add a text input for the customer to type into, then a button that rede Set the action's **code** to reference the input's state variable using Liquid, for example `{{ state.discountCode }}`. This redeems whatever the customer typed. To offer a single fixed promotion instead of customer-entered codes, you can skip the input and set the code to a hardcoded literal such as `LAUNCH20`. Tapping the button then always applies that one code. + + ![The paywall editor with the button's Tap Behavior open, showing the Redeem Discount action with its code set to the state variable](/images/stripe_discount_tap_behavior.svg) [Publish](/dashboard/dashboard-creating-paywalls/paywall-editor-publishing) the paywall, then enter a real promotion code to confirm the price updates and the discount carries through to checkout. See [Testing purchases](/web-checkout/web-checkout-testing-purchases) for how to run test checkouts safely. From 754a594305ccc4a0aafb6106c12bbc50ebcf8e60 Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Thu, 13 Aug 2026 14:20:33 -0500 Subject: [PATCH 10/15] docs(web): remove em dashes and expositional prose Style pass over the Web SDK section and the discount-codes page. Every em dash replaced with a period, comma, or colon. Rhetorical framing cut in favor of plain statements of behavior. No factual content changed. Co-Authored-By: Claude Opus 5 --- .../images/stripe_discount_paywall_input.svg | 2 +- .../images/stripe_discount_tap_behavior.svg | 2 +- .../web-checkout-discount-codes.mdx | 16 +++---- content/docs/web/guides/events.mdx | 28 ++++++------- content/docs/web/guides/purchases.mdx | 28 ++++++------- .../docs/web/guides/server-side-gating.mdx | 42 ++++++++----------- content/docs/web/index.mdx | 12 +++--- content/docs/web/quickstart/configure.mdx | 37 ++++++++-------- .../docs/web/quickstart/feature-gating.mdx | 30 ++++++------- content/docs/web/quickstart/install.mdx | 4 +- .../web/quickstart/present-first-paywall.mdx | 16 +++---- .../tracking-subscription-state.mdx | 6 +-- .../docs/web/quickstart/user-management.mdx | 10 ++--- content/docs/web/react/hooks.mdx | 20 ++++----- content/docs/web/react/provider.mdx | 23 +++++----- 15 files changed, 131 insertions(+), 145 deletions(-) diff --git a/content/docs/images/stripe_discount_paywall_input.svg b/content/docs/images/stripe_discount_paywall_input.svg index 77307533..266218f8 100644 --- a/content/docs/images/stripe_discount_paywall_input.svg +++ b/content/docs/images/stripe_discount_paywall_input.svg @@ -3,7 +3,7 @@ - PLACEHOLDER — screenshot needed + PLACEHOLDER: screenshot needed stripe_discount_paywall_input.jpg diff --git a/content/docs/images/stripe_discount_tap_behavior.svg b/content/docs/images/stripe_discount_tap_behavior.svg index c735fe0f..04c1e790 100644 --- a/content/docs/images/stripe_discount_tap_behavior.svg +++ b/content/docs/images/stripe_discount_tap_behavior.svg @@ -3,7 +3,7 @@ - PLACEHOLDER — screenshot needed + PLACEHOLDER: screenshot needed stripe_discount_tap_behavior.jpg diff --git a/content/docs/web-checkout/web-checkout-discount-codes.mdx b/content/docs/web-checkout/web-checkout-discount-codes.mdx index c8c63ee4..01d94236 100644 --- a/content/docs/web-checkout/web-checkout-discount-codes.mdx +++ b/content/docs/web-checkout/web-checkout-discount-codes.mdx @@ -5,11 +5,11 @@ description: "Let customers enter a Stripe promotion code on your web paywall, u Discount codes let a customer type a promotion code into your web paywall, have it validated against Stripe, and see the price update before they check out. The code is then carried through to the Stripe checkout session, so the discount is applied to the purchase they complete. -This works entirely on your paywall — there is no separate discount widget to configure. You add a normal text **Input** for the customer to type into, then a button whose tap behavior runs the **Redeem Discount** action. When the customer taps it, Superwall resolves the code against your Stripe promotion codes, re-prices the products on the paywall, and applies the code at checkout. +This works entirely on your paywall. There is no separate discount widget to configure. You add a normal text **Input** for the customer to type into, then a button whose tap behavior runs the **Redeem Discount** action. When the customer taps it, Superwall resolves the code against your Stripe promotion codes, re-prices the products on the paywall, and applies the code at checkout. Discount codes are a Stripe web checkout feature. The customer redeems a promotion code you have - already created in your Stripe dashboard — Superwall does not create or manage the coupon itself. + already created in your Stripe dashboard. Superwall does not create or manage the coupon itself. Don't confuse **Redeem Discount** with **Redeem Purchase**, a separate tap action in the same Purchases group that routes a customer after a completed purchase. This page covers Redeem @@ -35,7 +35,7 @@ You will add a text input for the customer to type into, then a button that rede - Add an [Input element](/dashboard/dashboard-creating-paywalls/paywall-editor-input-component) where the customer will type their code, and give it a helpful placeholder such as "Promo code". Bind the input to a state variable — for example, `state.discountCode` — so the value the customer types is available to the redeem action. + Add an [Input element](/dashboard/dashboard-creating-paywalls/paywall-editor-input-component) where the customer will type their code, and give it a helpful placeholder such as "Promo code". Bind the input to a state variable, for example `state.discountCode`, so the value the customer types is available to the redeem action. ![A paywall in the editor with a promo code input bound to state.discountCode and an Apply button](/images/stripe_discount_paywall_input.svg) @@ -71,14 +71,14 @@ If the code is not valid, the products stay at their original price. After a code applies, discount display variables become available so your paywall can react to the discount and show the new price. You can insert these from the variable picker in a text element or wherever you use [dynamic values](/dashboard/dashboard-creating-paywalls/paywall-editor-dynamic-values), for example: -- `hasDiscount` — whether a discount is currently applied. Use it to show or hide a "discount applied" message, a strikethrough of the original price, or a badge. -- `discountCode` — the code that was applied. -- `discountedPrice` — the price after the discount. +- `hasDiscount`: whether a discount is currently applied. Use it to show or hide a "discount applied" message, a strikethrough of the original price, or a badge. +- `discountCode`: the code that was applied. +- `discountedPrice`: the price after the discount. A common pattern is to show the original price with a strikethrough alongside `discountedPrice` once `hasDiscount` is true, so the savings are obvious before the customer checks out. ## Where discount codes apply -A redeemed code carries through Superwall's web checkout flows — redirect, embedded, and elements checkout all apply it at the Stripe checkout session. The one exception is deferred **Apple Pay** checkout, which does not apply a redeemed discount code. +A redeemed code carries through Superwall's web checkout flows: redirect, embedded, and elements checkout all apply it at the Stripe checkout session. The one exception is deferred **Apple Pay** checkout, which does not apply a redeemed discount code. -If you are building with the [Web SDK](/web), you can also redeem and clear codes from your own code via `activePaywall.redeemDiscount()` — see [Purchases](/web/guides/purchases#discount-codes). +If you are building with the [Web SDK](/web), you can also redeem and clear codes from your own code via `activePaywall.redeemDiscount()`. See [Purchases](/web/guides/purchases#discount-codes). diff --git a/content/docs/web/guides/events.mdx b/content/docs/web/guides/events.mdx index 01178fcc..d4e971a0 100644 --- a/content/docs/web/guides/events.mdx +++ b/content/docs/web/guides/events.mdx @@ -13,7 +13,7 @@ The Web SDK is in beta and its API may change between releases. ## Listening -`sw.events` is a native `EventTarget` with typed overloads, so everything you know about `addEventListener` applies — including `AbortSignal` for cleanup. +`sw.events` is a native `EventTarget` with typed overloads, including `AbortSignal` for cleanup. ```ts const ac = new AbortController(); @@ -28,16 +28,16 @@ sw.events.addEventListener( ac.abort(); ``` -Handlers receive a typed `CustomEvent`, so the payload is on `event.detail`. +Handlers receive a typed `CustomEvent`. The payload is on `event.detail`. - In React, prefer [`useSuperwallEvent`](/web/react/hooks), which ties the subscription to the - component lifecycle for you. + In React, use [`useSuperwallEvent`](/web/react/hooks), which ties the subscription to the + component lifecycle. ## What is emitted -The event map covers the same lifecycle the mobile SDKs report. Grouped roughly: +The event map covers the same lifecycle the mobile SDKs report: | Area | Events | | --- | --- | @@ -56,18 +56,18 @@ The event map covers the same lifecycle the mobile SDKs report. Grouped roughly: | Custom | `custom_placement`, `customPaywallAction` | | Other | `deepLink_open`, `page_view`, `enrichment_start`, `enrichment_complete`, `enrichment_fail` | -Some events are local-only and never reach Superwall's servers. Those live in `LocalSuperwallEventMap`, and `AllSuperwallEvents` is the union of both. +Some events are local-only and never reach Superwall's servers. Those live in `LocalSuperwallEventMap`. `AllSuperwallEvents` is the union of both. ## Global delegate -Where events tell you what happened, the delegate lets you answer questions the SDK asks. Register one at creation, or swap it later. +The delegate receives global callbacks from the SDK. Register one at creation, or swap it later. ```ts const sw = createSuperwall({ - apiKey: "pk_web_…", + apiKey: "pk_…", delegate: { onSubscriptionStatusChange: (from, to) => { - console.log("subscription", from.status, "→", to.status); + console.log("subscription", from.status, "->", to.status); }, }, }); @@ -76,9 +76,9 @@ sw.setDelegate(otherDelegate); sw.setDelegate(null); ``` -The delegate covers around a dozen callbacks — subscription and customer changes, the paywall present and dismiss pairs, URL and deep-link interception, link redemption, and `onLog`. +The delegate covers around a dozen callbacks: subscription and customer changes, the paywall present and dismiss pairs, URL and deep-link interception, link redemption, and `onLog`. -Per-call handlers passed to `register` fire alongside the delegate. The two are separate surfaces covering different callbacks — `onSkip` exists only on a per-call handler, and the delegate's methods cannot be supplied per call. Neither overrides the other, and there is no fallback between them. +Per-call handlers passed to `register` fire alongside the delegate. The two are separate surfaces covering different callbacks. `onSkip` exists only on a per-call handler, and the delegate's methods cannot be supplied per call. Neither overrides the other, and there is no fallback between them. Custom actions reach you two ways. `onCustomPaywallAction(name)` on the delegate receives the @@ -88,18 +88,18 @@ Per-call handlers passed to `register` fire alongside the delegate. The two are ## Forwarding to your analytics -The delegate has a catch-all built for this. It receives every wire-bound event, fully typed, with no list to maintain. +The delegate has a catch-all for this. It receives every wire-bound event, fully typed. ```ts const sw = createSuperwall({ - apiKey: "pk_web_…", + apiKey: "pk_…", delegate: { onEvent: (name, detail) => analytics.track(name, detail), }, }); ``` -If you would rather subscribe to a specific set, type the names so `detail` narrows: +To subscribe to a specific set instead, type the names so `detail` narrows: ```ts import type { AllSuperwallEvents } from "@superwall/paywalls-js"; diff --git a/content/docs/web/guides/purchases.mdx b/content/docs/web/guides/purchases.mdx index 3c63b551..56b1589e 100644 --- a/content/docs/web/guides/purchases.mdx +++ b/content/docs/web/guides/purchases.mdx @@ -13,13 +13,13 @@ The Web SDK is in beta and its API may change between releases. ## The default: Superwall handles it -Create an instance without a `purchaseController` and the SDK runs the standard checkout itself — Stripe checkout from the paywall, `?code=` redemption on return, and polling for the resulting entitlements. +Create an instance without a `purchaseController` and the SDK runs the standard checkout itself: Stripe checkout from the paywall, `?code=` redemption on return, and polling for the resulting entitlements. ```ts -const sw = createSuperwall({ apiKey: "pk_web_…" }); +const sw = createSuperwall({ apiKey: "pk_…" }); ``` -This is the path most apps want. Products come from the paywall you configured in the dashboard, and subscription status updates on its own once the purchase settles. +Products come from the paywall you configured in the dashboard. Subscription status updates on its own once the purchase settles. ## Reading the catalog @@ -48,21 +48,21 @@ if (active) { } ``` -Redeeming validates the code against the checkout backend, re-prices the paywall's Stripe products, and forwards the code to every Stripe web checkout session created afterwards — including rebuilding sessions that were already prefetched. +Redeeming validates the code against the checkout backend, re-prices the paywall's Stripe products, and forwards the code to every Stripe web checkout session created afterwards, including rebuilding sessions that were already prefetched. ```ts active.clearDiscount(); ``` -`clearDiscount` is fire-and-forget and returns `void` — the paywall sends no acknowledgement, so there is nothing to await. +`clearDiscount` is fire-and-forget and returns `void`. The paywall sends no acknowledgement, so there is nothing to await. -A few behaviors worth knowing: +Behavior to know: -- It resolves after roughly ten seconds with `{ valid: false, reason: "timeout" }` if the paywall never replies, which is what happens when it has no Stripe products loaded. -- Issuing a second `redeemDiscount` while one is in flight supersedes the first, which settles as `{ valid: false, reason: "superseded" }` rather than hanging. `clearDiscount()` settles an in-flight redemption the same way. -- It rejects with a `DiscountError` for an empty or whitespace-only code, when no paywall is presented — including when you are holding an `activePaywall` handle from a paywall that has since been dismissed — and when the presenter has no message channel. +- `redeemDiscount` resolves after roughly ten seconds with `{ valid: false, reason: "timeout" }` if the paywall never replies, which happens when it has no Stripe products loaded. +- A second `redeemDiscount` while one is in flight supersedes the first, which settles as `{ valid: false, reason: "superseded" }`. `clearDiscount()` settles an in-flight redemption the same way. +- It rejects with a `DiscountError` for an empty or whitespace-only code, when no paywall is presented (including a stale `activePaywall` handle from a paywall that has since been dismissed), and when the presenter has no message channel. - A discount does not survive dismissal. Re-apply it after each presentation. -- `reason` is an open union. Known values include `code_not_found`, `code_invalid`, `no_valid_products`, `no_applicable_products`, `error`, `timeout`, `superseded`, and `paywall_dismissed`, but do not write an exhaustive `switch` over it. +- `reason` is an open union. Known values include `code_not_found`, `code_invalid`, `no_valid_products`, `no_applicable_products`, `error`, `timeout`, `superseded`, and `paywall_dismissed`. Do not write an exhaustive `switch` over it. This is the programmatic equivalent of the **Redeem Discount** tap action in the paywall editor. @@ -71,7 +71,7 @@ A few behaviors worth knowing: ## Running your own checkout -If you bill through your own system, keep the SDK's paywalls and placements but tell it the outcome yourself. +To bill through your own system while keeping the SDK's paywalls and placements, push the outcome in yourself: ```ts sw.purchases.setSubscriptionStatus({ @@ -82,7 +82,7 @@ sw.purchases.setSubscriptionStatus({ }); ``` -The SDK treats what you push as truth for client-side state. It is still not a security boundary — see [Server-side gating](/web/guides/server-side-gating). +The SDK treats what you push as truth for client-side state. It is still not a security boundary. See [Server-side gating](/web/guides/server-side-gating). ## Taking over the controller @@ -90,9 +90,9 @@ For full control of the transaction, pass a `purchaseController` at creation. It ```ts const sw = createSuperwall({ - apiKey: "pk_web_…", + apiKey: "pk_…", purchaseController: myPurchaseController, }); ``` -There is no runtime setter — the controller is wired once, at `createSuperwall`. +There is no runtime setter. The controller is wired once, at `createSuperwall`. diff --git a/content/docs/web/guides/server-side-gating.mdx b/content/docs/web/guides/server-side-gating.mdx index eeeed44c..f1934f03 100644 --- a/content/docs/web/guides/server-side-gating.mdx +++ b/content/docs/web/guides/server-side-gating.mdx @@ -11,13 +11,11 @@ The Web SDK is in beta and its API may change between releases. -## Why this page exists +## Why gate on the server -The browser SDK keeps subscription state locally so your UI can react instantly. That state is readable and writable from DevTools. Anyone can flip themselves to `ACTIVE` and see whatever your client-side checks unlock. +The browser SDK keeps subscription state locally so your UI can react instantly. That state is readable and writable from DevTools. Client-side checks control what the browser shows; they do not control access. Anything that costs money or exposes real data must be checked on the server. -For UI, that is fine — the worst case is someone sees a button. For anything that costs you money or exposes real data, the check has to happen somewhere the user does not control. - -Two packages do that, and they differ in whether the check needs a network call. +Two packages do that. They differ in whether the check needs a network call. | Package | How it checks | Use when | | --- | --- | --- | @@ -39,11 +37,11 @@ const sw = Superwall({ app.get("/api/export", sw.requires("pro"), exportHandler); ``` -The middleware is Connect-style, so it works with Express and anything that speaks the same shape. Pass your request type as the generic parameter, or `req` infers as `unknown`. +The middleware is Connect-style and works with Express and anything with the same shape. Pass your request type as the generic parameter, or `req` infers as `unknown`. -**The `userId` extractor is the trust boundary.** Read it from an authenticated session, as above. Reading it from the request body, a query string, or an unverified header lets any caller claim to be any user, which defeats the entire gate. +**The `userId` extractor is the trust boundary.** Read it from an authenticated session. Reading it from the request body, a query string, or an unverified header lets any caller claim to be any user. @@ -67,17 +65,17 @@ sw.requires({ any: ["pro", "team"] }); // at least one | `timeoutMs` | Timeout for calls to Superwall. Defaults to `5000`. | | `onRequest` | Called after a completed check. Useful for tracing. | -`requires` also takes `allowAnonymous`, which defaults to `false` — a request with no resolvable user is rejected. Setting it to `true` waves those requests straight through. +`requires` also takes `allowAnonymous`, which defaults to `false`. A request with no resolvable user is rejected. Setting it to `true` passes those requests through. ### What a rejection looks like -By default a blocked request gets `403` with `{ error: "entitlement_required", entitlement }`. Pass `onUnauthorized` to `requires` to customize it; it receives the missing entitlements and a `reason` of `"no_user_id"` or `"not_entitled"`. +By default a blocked request gets `403` with `{ error: "entitlement_required", entitlement }`. Pass `onUnauthorized` to `requires` to customize it. It receives the missing entitlements and a `reason` of `"no_user_id"` or `"not_entitled"`. -If Superwall cannot be reached, the middleware calls `next(err)` rather than rejecting with a 403 — so it surfaces through your framework's error handler, typically as a 500. It fails closed either way. +If Superwall cannot be reached, the middleware calls `next(err)` rather than rejecting with a 403, so it surfaces through your framework's error handler, typically as a 500. It fails closed either way. ### Cache staleness -Entitlement lookups are cached for 60 seconds by default, so a revocation can take that long to take effect. Call `sw.invalidate(userId)` or `sw.invalidateAll()` when you need it immediately. The default cache is in-memory and single-process — supply a Redis or KV adapter for multi-instance deployments. +Entitlement lookups are cached for 60 seconds by default, so a revocation can take that long to take effect. Call `sw.invalidate(userId)` or `sw.invalidateAll()` when you need it immediately. The default cache is in-memory and single-process. Supply a Redis or KV adapter for multi-instance deployments. ### Checking without middleware @@ -88,13 +86,13 @@ if (await sw.userHas(userId, "pro")) { ``` - The user ID comes **first**. Both parameters are strings, so reversing them still typechecks — it - just looks up a user named `"pro"`, finds nothing, and denies everyone. + The user ID comes first. Both parameters are strings, so reversing them still typechecks. It + looks up a user named `"pro"`, finds nothing, and denies everyone. ## `@superwall/verify` -The client holds a Superwall-signed token describing its entitlements. Send it to your backend and verify the signature — a valid one proves Superwall issued exactly those entitlements, so you can decide without calling Superwall at all. +The client holds a Superwall-signed token describing its entitlements. Send it to your backend and verify the signature. A valid signature proves Superwall issued exactly those entitlements, with no call to Superwall needed. Read the token in the browser: @@ -103,7 +101,7 @@ sw.entitlementsToken.value; // reactive sw.purchases.getEntitlementsToken(); // snapshot ``` -Verify it on the server. **`verifyEntitlements` throws on any failure** — it never returns a partial result — so the call belongs in a `try/catch`: +Verify it on the server. `verifyEntitlements` throws on any failure and never returns a partial result, so the call belongs in a `try/catch`: ```ts import { verifyEntitlements, VerifyError } from "@superwall/verify"; @@ -124,7 +122,7 @@ try { The token's entitlements use `identifier`, not `id`. This is a different type from the client - SDK's `Entitlement`, which uses `id` — see [Tracking subscription + SDK's `Entitlement`, which uses `id`. See [Tracking subscription state](/web/quickstart/tracking-subscription-state). @@ -136,11 +134,11 @@ import { userHasEntitlement, userHasAnyEntitlement } from "@superwall/verify"; ### Errors -Verification failures are typed, so you can tell "this token expired" from "this token is forged". Catch `VerifyError` for any of them, or narrow to `InvalidSignatureError`, `ExpiredError`, `AudienceMismatchError`, `MalformedTokenError`, or `KeyUnavailableError`. +Verification failures are typed. Catch `VerifyError` for any of them, or narrow to `InvalidSignatureError`, `ExpiredError`, `AudienceMismatchError`, `MalformedTokenError`, or `KeyUnavailableError`. ### Expiry -A token carries its own expiry, and each entitlement inside it carries an `expiresAt` of its own — an entitlement can lapse while the token wrapping it is still valid. +A token carries its own expiry, and each entitlement inside it carries an `expiresAt` of its own. An entitlement can lapse while the token wrapping it is still valid. The convenience helpers account for this, so prefer them over iterating the array yourself: @@ -150,14 +148,10 @@ if (!(await userHasEntitlement(tokenFromClient, "pro", { publicApiKey }))) { } ``` -If you do read `result.entitlements` directly, check `expiresAt` — it is epoch milliseconds, and `null` means lifetime. - -## The rule +If you read `result.entitlements` directly, check `expiresAt`. It is epoch milliseconds, and `null` means lifetime. -Cryptography does not move the trust boundary. A signed token proves what Superwall issued, but only if **your server** is the one checking it. A verification that runs in the browser can simply be skipped by the browser. +Run verification on the server. A check that runs in the browser can be bypassed in the browser. - -Use the client SDK to decide what to render. Use these packages to decide what to hand over. diff --git a/content/docs/web/index.mdx b/content/docs/web/index.mdx index 3fd9d817..651f18b7 100644 --- a/content/docs/web/index.mdx +++ b/content/docs/web/index.mdx @@ -7,15 +7,15 @@ description: "Welcome to the Superwall Web SDK documentation" **Beta** -The Web SDK is in beta. The API may change between releases, and these docs describe behavior that is still settling. If you hit something that does not match what you see, please [open an issue](https://github.com/superwall/Superwall-Web/issues). +The Web SDK is in beta. The API may change between releases. If something does not match these docs, [open an issue](https://github.com/superwall/Superwall-Web/issues). -The Superwall Web SDK brings paywalls, placements, and entitlements to the browser. It is wire-compatible with the iOS, Android, and Flutter SDKs — the same campaigns, audience rules, and experiments drive it — but the developer-facing API is built for the web: factory-created instances, reactive signals, a native `EventTarget`, tree-shakeable named exports, and React 19 bindings. +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. The API is built for the web: factory-created instances, reactive signals, a native `EventTarget`, tree-shakeable named exports, and React 19 bindings. ## Packages -The SDK ships as a small set of ESM-only packages. Most apps need one or two of them. +The SDK ships as ESM-only packages. Most apps need one or two of them. | Package | What it does | Runs in | | --- | --- | --- | @@ -29,7 +29,7 @@ The SDK ships as a small set of ESM-only packages. Most apps need one or two of **Gate real resources on the server.** -Anything the browser knows, the browser can lie about — subscription state in the client is editable from DevTools. Use `@superwall/paywalls-js` to decide what UI to show, and [`@superwall/server` or `@superwall/verify`](/web/guides/server-side-gating) to decide what your backend actually hands over. See [Server-side gating](/web/guides/server-side-gating). +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`](/web/guides/server-side-gating) to control what your backend returns. @@ -43,7 +43,7 @@ Anything the browser knows, the browser can lie about — subscription state in Provider and hooks for React 19 - Enforce entitlements where they cannot be tampered with + Enforce entitlements on your server - This is why `UNKNOWN` matters. A returning subscriber reads `UNKNOWN` for the first tick, so - branching on "not ACTIVE" immediately after `createSuperwall` shows them an upsell they have - already paid for. + Treat `UNKNOWN` as unresolved, not as unsubscribed. A returning subscriber reads `UNKNOWN` until + hydration completes, so branching on "not ACTIVE" at startup shows paying users an upsell. -**Check `configurationStatus`, not `ready`, to detect failure.** A failed config fetch is swallowed internally: `sw.ready` still resolves, and `sw.configurationStatus` becomes `"failed"`. The two disagree by design. +**Check `configurationStatus`, not `ready`, to detect failure.** A failed config fetch is swallowed internally: `sw.ready` still resolves, and `sw.configurationStatus` becomes `"failed"`. ```ts await sw.ready; @@ -61,9 +60,9 @@ if (sw.configurationStatus.value === "failed") { ```ts const sw = createSuperwall({ - apiKey: "pk_web_…", + apiKey: "pk_…", options: { - /* SuperwallOptions — logging, networking, paywall behavior */ + /* SuperwallOptions: logging, networking, paywall behavior */ }, delegate: myDelegate, storage: myStorageAdapter, @@ -79,27 +78,27 @@ const sw = createSuperwall({ | Option | Purpose | | --- | --- | -| `apiKey` | Your `pk_web_…` publishable key. Required. | +| `apiKey` | Your `pk_…` publishable key. Required. | | `options` | Tuning for logging, networking, and paywall behavior. | | `delegate` | Global callbacks for SDK-wide events. See [Events](/web/guides/events). | | `storage` | Custom storage adapter. Defaults to `localStorage` plus cookies in the browser. | | `purchaseController` | Take over checkout. Omit to use the built-in Stripe flow. See [Purchases](/web/guides/purchases). | -| `identity` | Pre-seed identity, which is useful on the server or during SSR hydration. | +| `identity` | Pre-seed identity. Useful on the server or during SSR hydration. | | `surveyPresenter` | Renderer for post-paywall surveys. Omit and the SDK skips survey presentation. | - `identity.vendorIdProvider` is where a fingerprinting library plugs in, if you use one. The SDK - does not bundle fingerprinting. + `identity.vendorIdProvider` is where a fingerprinting library plugs in. The SDK does not bundle + fingerprinting. ## Tree-shakeable exports -If you would rather not thread the instance through your app, import the namespaces directly. The first `createSuperwall` call registers the default instance, and these bind to it. +Instead of threading the instance through your app, import the namespaces directly. The first `createSuperwall` call registers the default instance, and these bind to it. ```ts import { createSuperwall, user, register, events } from "@superwall/paywalls-js"; -createSuperwall({ apiKey: "pk_web_…" }); +createSuperwall({ apiKey: "pk_…" }); await user.identify("user_42"); const result = await register({ placement: "checkout" }); @@ -109,6 +108,6 @@ Importing only `user` lets bundlers drop the rest as dead code. ## Multiple instances -Creating more than one instance is supported and useful for tests, Storybook, and multi-tenant edge workers. The **default** instance is the first one created in the process, and it is the one the named exports target. +Creating more than one instance is supported. Useful for tests, Storybook, and multi-tenant edge workers. The default instance is the first one created in the process, and it is the one the named exports target. Next, [present your first paywall](/web/quickstart/present-first-paywall). diff --git a/content/docs/web/quickstart/feature-gating.mdx b/content/docs/web/quickstart/feature-gating.mdx index a6167fd0..75e90194 100644 --- a/content/docs/web/quickstart/feature-gating.mdx +++ b/content/docs/web/quickstart/feature-gating.mdx @@ -13,7 +13,7 @@ The Web SDK is in beta and its API may change between releases. ## The feature callback -Wrap the thing you are gating in `feature` and let the SDK decide whether it runs. +Wrap the code you are gating in `feature` and the SDK decides whether it runs. ```ts await sw.register({ @@ -24,30 +24,26 @@ await sw.register({ The callback runs when: -- the user is **already entitled**, so no paywall is shown at all -- the user **purchased** or **restored** on the paywall you just showed -- the paywall was **non-gated** and the user dismissed it without buying -- the placement was **skipped** — including when the placement was not found, the user matched no audience, or they landed in a holdout +- the user is already entitled, so no paywall is shown +- the user purchased or restored on the paywall +- the paywall was non-gated and the user dismissed it without buying +- the placement was skipped: not found, no audience match, or holdout It does not run when a gated paywall is dismissed without a purchase. -**A skipped placement still runs your feature.** If the placement name does not exist in any campaign, or the user matches no audience rule, the SDK runs `feature` and returns `{ type: "skipped" }`. A typo in a placement name therefore grants the feature rather than withholding it. - -This matches the iOS and Android SDKs: a misconfigured campaign should not lock existing users out of your app. But it means `feature` alone is not a way to decide whether someone has paid. For that, check entitlements — and enforce on [your server](/web/guides/server-side-gating). +**A skipped placement still runs your feature.** If the placement name does not exist in any campaign, or the user matches no audience rule, the SDK runs `feature` and returns `{ type: "skipped" }`. A typo in a placement name grants the feature. This matches the iOS and Android SDKs. To check whether someone has paid, read entitlements and enforce on [your server](/web/guides/server-side-gating). - Gated versus non-gated is a property of the paywall, set in the dashboard — not something you pass - from code. The same `register` call behaves differently depending on how the paywall is configured, - which is the point: you can loosen a gate without shipping a release. + Gated versus non-gated is set on the paywall in the dashboard, not passed from code. ## Branching yourself -If you would rather decide in your own code, read the result instead. +To decide in your own code, read the result instead. ```ts const result = await sw.register({ placement: "export_report" }); @@ -67,7 +63,7 @@ switch (result.type) { ## Checking entitlements directly -For UI that reflects entitlement state without triggering a placement — a lock icon, a disabled button — read the entitlements namespace. +To read entitlement state without triggering a placement, use the entitlements namespace. ```ts sw.entitlements.active.value; // Entitlement[] @@ -77,7 +73,7 @@ sw.entitlements.all.value; sw.entitlements.byProductIds(["pro_monthly"]); ``` -These are reactive, so you can subscribe and re-render when they change: +These are reactive. Subscribe to re-render when they change: ```ts const unsubscribe = sw.entitlements.active.subscribe((active) => { @@ -85,13 +81,11 @@ const unsubscribe = sw.entitlements.active.subscribe((active) => { }); ``` -## This is UI, not enforcement +## Enforcement -Everything on this page decides **what the browser shows**. None of it is a security boundary — a user can edit local subscription state from DevTools and flip any of these checks. - -Gate anything that actually costs you money or exposes real data on your server, with [`@superwall/server` or `@superwall/verify`](/web/guides/server-side-gating). +These checks control UI only. Local subscription state can be edited from DevTools. Enforce access to paid resources on your server with [`@superwall/server` or `@superwall/verify`](/web/guides/server-side-gating). diff --git a/content/docs/web/quickstart/install.mdx b/content/docs/web/quickstart/install.mdx index 5c5ea203..70b255e7 100644 --- a/content/docs/web/quickstart/install.mdx +++ b/content/docs/web/quickstart/install.mdx @@ -57,7 +57,7 @@ import { createSuperwall } from "@superwall/paywalls-js"; // anywhere import { createBrowserStorage } from "@superwall/paywalls-js/browser"; // browser-intended ``` -The `/browser` subpath imports cleanly on the server — nothing on it touches the DOM at module load, and its factories degrade gracefully. Only actually mounting a paywall needs a real DOM. +The `/browser` subpath imports cleanly on the server. Nothing on it touches the DOM at module load, and its factories degrade gracefully. Only mounting a paywall needs a real DOM. The SDK lazy-loads the presenter on first `register()`. If your bundler cannot ship dynamic @@ -67,7 +67,7 @@ The `/browser` subpath imports cleanly on the server — nothing on it touches t ## Get your API key -You need your app's public API key, a `pk_…` value from the Superwall dashboard. It is safe to ship in client code — it is a publishable key. +You need your app's public API key, a `pk_…` value from the Superwall dashboard. It is a publishable key and safe to ship in client code. Use the key for the web platform, not your iOS or Android key. diff --git a/content/docs/web/quickstart/present-first-paywall.mdx b/content/docs/web/quickstart/present-first-paywall.mdx index f7c72c41..ef352d00 100644 --- a/content/docs/web/quickstart/present-first-paywall.mdx +++ b/content/docs/web/quickstart/present-first-paywall.mdx @@ -13,13 +13,13 @@ The Web SDK is in beta and its API may change between releases. ## Register a placement -`register` is the primary entry point, and it mirrors `Superwall.shared.register(...)` on iOS and Android. You give it a placement name; the SDK evaluates your campaign's audience rules and shows a paywall if the user matches one. +`register` is the primary entry point. It mirrors `Superwall.shared.register(...)` on iOS and Android. You give it a placement name; the SDK evaluates your campaign's audience rules and shows a paywall if the user matches one. ```ts const result = await sw.register({ placement: "checkout" }); ``` -The placement must exist in a campaign in your Superwall dashboard. If nothing matches, nothing is shown — that is a normal outcome, not an error. +The placement must exist in a campaign in your Superwall dashboard. If nothing matches, nothing is shown. That is not an error. ## What you get back @@ -30,7 +30,7 @@ type RegisterPlacementResult = | { type: "error"; error: Error }; ``` -Skipped reasons and errors surface in the return value rather than throwing, so a placement that does not match is something you branch on, not something you catch. +Skipped reasons and errors surface in the return value rather than throwing. ```ts const result = await sw.register({ placement: "checkout" }); @@ -42,7 +42,7 @@ if (result.type === "presented" && result.result.type === "purchased") { ## Run code when the user is entitled -Pass a `feature` callback and the SDK runs it for you when the user should get access — because they are already entitled, because they just purchased, or because the paywall was non-gated and dismissed without a purchase. +Pass a `feature` callback and the SDK runs it when the user should get access. ```ts await sw.register({ @@ -51,7 +51,7 @@ await sw.register({ }); ``` -This is the pattern to reach for most of the time. See [Feature gating](/web/quickstart/feature-gating) for how it behaves in each case. +See [Feature gating](/web/quickstart/feature-gating) for exactly when it runs. ## Per-call callbacks @@ -87,14 +87,14 @@ Three more optional arguments change how the paywall is shown for a single call: | Argument | Effect | | --- | --- | | `overrides` | Per-call presentation tweaks applied before the iframe mounts. Currently `presentationStyle`. | -| `paywall` | Render your own UI instead of the default iframe, while the SDK still runs the full pipeline and fires the same events. | +| `paywall` | Render your own UI instead of the default iframe. The SDK still runs the full pipeline and fires the same events. | | `presenter` | Replace the presenter entirely for this call. Highest precedence. | Precedence is `presenter` > `paywall` > the default browser presenter. In React, [`useCustomPaywall`](/web/react/hooks) wraps the `paywall` path. ## Preloading -Paywalls load in an iframe, and the SDK warms them for you: during configuration it preloads up to six paywalls that have a URL, two at a time. You do not need to do anything. +Paywalls load in an iframe. During configuration the SDK preloads up to six paywalls that have a URL, two at a time. `sw.placements.preloadAll()` and `preloadFor()` currently do nothing and are being removed from @@ -109,6 +109,6 @@ Only one paywall can be on screen at once. Calling `register` while another is p sw.dismiss(); ``` -`sw.isPaywallPresented` is a reactive read of whether one is currently up, and `sw.activePaywall` carries the presented paywall's info. +`sw.isPaywallPresented` is a reactive read of whether one is currently up. `sw.activePaywall` carries the presented paywall's info. Next, [identify your users](/web/quickstart/user-management). diff --git a/content/docs/web/quickstart/tracking-subscription-state.mdx b/content/docs/web/quickstart/tracking-subscription-state.mdx index 5cd5dd82..4a632a7a 100644 --- a/content/docs/web/quickstart/tracking-subscription-state.mdx +++ b/content/docs/web/quickstart/tracking-subscription-state.mdx @@ -30,7 +30,7 @@ if (status.status === "ACTIVE") { } ``` -`UNKNOWN` means the SDK has not resolved status yet — treat it as "do not know," not as "not subscribed," so a paying user does not see a flash of upsell on load. +`UNKNOWN` means the SDK has not resolved status yet. Do not treat it as `INACTIVE`. ## Reacting to changes @@ -92,7 +92,7 @@ sw.purchases.setSubscriptionStatus({ An `Entitlement` needs all four of `id`, `type`, `isActive`, and `productIds`. Note that `@superwall/verify` defines a **different** type also called `Entitlement`, whose field is - `identifier` rather than `id` — they are not interchangeable. + `identifier` rather than `id`. The two are not interchangeable. Setting a status equivalent to the current one is a no-op: no event fires and the delegate is not called. @@ -108,7 +108,7 @@ sw.entitlementsToken.value; // reactive, null until issued sw.purchases.getEntitlementsToken(); // snapshot ``` -Forward it to your backend and verify it offline with `@superwall/verify`. This is the fast path for [server-side gating](/web/guides/server-side-gating) — a valid signature proves Superwall issued those exact entitlements, with no round trip per request. +Forward it to your backend and verify it with `@superwall/verify`. A valid signature proves Superwall issued those entitlements, with no round trip per request. See [Server-side gating](/web/guides/server-side-gating). The token is best-effort and will be `null` when the backend is not issuing one. It refreshes on diff --git a/content/docs/web/quickstart/user-management.mdx b/content/docs/web/quickstart/user-management.mdx index b7e87368..e918ca95 100644 --- a/content/docs/web/quickstart/user-management.mdx +++ b/content/docs/web/quickstart/user-management.mdx @@ -31,7 +31,7 @@ Pass `restorePaywallAssignments` to re-fetch config and re-run assignment for th await sw.user.identify("user_42", { restorePaywallAssignments: true }); ``` -`register` calls block until the restore finishes, so the user never gets a paywall picked from their anonymous identity's stale assignments. It is best-effort — if the fetch fails, the cached assignments stay in place. +`register` calls block until the restore finishes, so the user never gets a paywall picked from their anonymous identity's stale assignments. It is best-effort. If the fetch fails, the cached assignments stay in place. ## Reading identity @@ -45,8 +45,8 @@ sw.user.isLoggedIn.value; // boolean ``` - `sw.user.id` is an empty string until you call `identify`. Use `effectiveId` when you want "whoever - this is, logged in or not" — it falls back to the alias. + `sw.user.id` is an empty string until you call `identify`. `effectiveId` returns `id` when set, + otherwise `aliasId`. ## Sign out @@ -69,7 +69,7 @@ sw.user.setAttributes({ }); ``` -`setAttributes` merges — it does not replace the whole set. Read the current values with `sw.user.attributes.value`. +`setAttributes` merges. It does not replace the whole set. Read the current values with `sw.user.attributes.value`. ## Integration attributes @@ -88,7 +88,7 @@ Pass `null` for a value to clear it. ## Resetting -`reset` clears local state — identity, attributes, and cached assignments — then resyncs. +`reset` clears local state (identity, attributes, and cached assignments), then resyncs. ```ts await sw.reset(); diff --git a/content/docs/web/react/hooks.mdx b/content/docs/web/react/hooks.mdx index 5f07eb5d..9df8d0ff 100644 --- a/content/docs/web/react/hooks.mdx +++ b/content/docs/web/react/hooks.mdx @@ -46,11 +46,11 @@ function Account() { } ``` -`entitlements` is a convenience derived from `subscriptionStatus` — the active ones. +`entitlements` is derived from `subscriptionStatus` and contains the active ones. ## `usePlacement` -Returns a `register` function plus the state of the latest placement **from this hook's calls**. The state is local to the component, not global SDK state, so two components using it do not interfere. +Returns a `register` function plus the state of the latest placement from this hook's calls. The state is local to the component. ```tsx import { usePlacement } from "@superwall/paywalls-react"; @@ -76,8 +76,8 @@ The handler you pass fires alongside the global delegate rather than replacing i The `state` is per-hook, so two components never see each other's outcomes. The SDK still allows - only one paywall on screen at a time, though — if another component already has one up, your - `register` resolves as `{ type: "error" }` with a `PaywallAlreadyPresentedError`. + only one paywall on screen at a time. If another component already has one up, `register` + resolves as `{ type: "error" }` with a `PaywallAlreadyPresentedError`. ## `useSuperwall` @@ -122,14 +122,14 @@ Registers a global delegate from inside React. ```tsx useDelegate({ onSubscriptionStatusChange: (from, to) => { - console.log("subscription", from.status, "→", to.status); + console.log("subscription", from.status, "->", to.status); }, }); ``` Only one delegate is active at a time. `useDelegate` overrides a `delegate` passed to - `SuperwallProvider`, and when the last `useDelegate` unmounts it clears the delegate entirely — + `SuperwallProvider`, and when the last `useDelegate` unmounts it clears the delegate entirely, including the provider's. Use one or the other, not both. @@ -143,9 +143,9 @@ useSuperwallEvent("custom_placement", (e) => { ## `useCustomPaywall` -For rendering your own paywall UI instead of the default iframe, while the SDK still runs the full trigger pipeline and fires the same lifecycle events. +Renders your own paywall UI instead of the default iframe. The SDK still runs the full trigger pipeline and fires the same lifecycle events. -The hook does not present anything on its own — call `register()` yourself. `paywall` is `null` until a paywall actually presents, and carries both the state snapshot and the controller. +The hook does not present anything on its own. Call `register()` yourself. `paywall` is `null` until a paywall presents, and carries the state snapshot and the controller. ```tsx const { register, paywall } = useCustomPaywall({ placement: "checkout" }); @@ -170,7 +170,7 @@ return ( ## `SuperwallPaywall` -A declarative gate that renders the SDK's **default** paywall — not your own UI. It calls `register` on mount, shows `loading` until the paywall presents, and renders `children` once the feature unlocks. +A declarative gate that renders the SDK's default paywall, not your own UI. It calls `register` on mount, shows `loading` until the paywall presents, and renders `children` once the feature unlocks. ```tsx }> @@ -181,6 +181,6 @@ A declarative gate that renders the SDK's **default** paywall — not your own U Pass `inline` to mount the paywall iframe in place instead of as a full-viewport overlay. - Custom paywall rendering is the least settled part of the beta surface. Check the + Custom paywall rendering is the least stable part of the beta API. Check the [example apps](https://github.com/superwall/Superwall-Web/tree/main/example) before building on it. diff --git a/content/docs/web/react/provider.mdx b/content/docs/web/react/provider.mdx index 00b8d7b8..f5018ee4 100644 --- a/content/docs/web/react/provider.mdx +++ b/content/docs/web/react/provider.mdx @@ -20,7 +20,7 @@ import { SuperwallProvider } from "@superwall/paywalls-react"; function App() { return ( - + ); @@ -30,21 +30,20 @@ function App() { Everything below it can reach the instance through the hooks. - Instances are cached by `apiKey` in a module-level registry, so mounting two providers with the - same key reuses one instance rather than configuring twice, and the instance survives Fast Refresh. - The registry is never evicted — swapping `apiKey` leaves the old instance configured and running - for the page's lifetime. + Instances are cached by `apiKey` in a module-level registry. Mounting two providers with the same + key reuses one instance, and the instance survives Fast Refresh. The registry is never evicted: + swapping `apiKey` leaves the old instance configured and running for the page's lifetime. ## Configuration is read once -The provider reads its options on the **first** mount for a given `apiKey`. A later provider with the same key and different options silently reuses the original instance's configuration. Changing other props afterwards does not reconfigure the SDK; changing `apiKey` swaps to a different instance. +The provider reads its options on the first mount for a given `apiKey`. A later provider with the same key and different options silently reuses the original instance's configuration. Changing other props afterwards does not reconfigure the SDK. Changing `apiKey` swaps to a different instance. Pass configuration statically: ```tsx @@ -70,7 +69,7 @@ function ConfigGate({ children }: { children: React.ReactNode }) { function App() { return ( - + }> }> @@ -84,16 +83,16 @@ function App() { ``` - `sw.ready` can reject, and `use()` rethrows — without an error boundary the subtree unmounts. Note - also that a failed **config fetch** does not reject `ready`; check + `sw.ready` can reject, and `use()` rethrows. Without an error boundary the subtree unmounts. A + failed config fetch does not reject `ready`; check `sw.configurationStatus.value === "failed"` for that. Do not gate with `use(sw.ready)` during server rendering. ## Server rendering -`@superwall/paywalls-react` is safe to import during SSR. Its entry does pull in the core package's `/browser` module, but nothing on that path touches the DOM at module load — every access is inside a function and guarded. Paywall presentation is a client-side concern and happens after hydration. +`@superwall/paywalls-react` is safe to import during SSR. Its entry pulls in the core package's `/browser` module, but nothing on that path touches the DOM at module load. Every access is inside a function and guarded. Paywall presentation happens after hydration. -The React package also re-exports the entire public surface of `@superwall/paywalls-js`, so you never need to import both. +The React package re-exports the entire public surface of `@superwall/paywalls-js`, so you never need to import both. Next, [the hooks](/web/react/hooks). From ac9ff09b88cb480a09c30342af5bcd0e9122a1a3 Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Thu, 13 Aug 2026 14:30:24 -0500 Subject: [PATCH 11/15] docs(web): replace tree-shaking jargon with plain wording Co-Authored-By: Claude Opus 5 --- content/docs/web/index.mdx | 2 +- content/docs/web/quickstart/configure.mdx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/docs/web/index.mdx b/content/docs/web/index.mdx index 651f18b7..73317cba 100644 --- a/content/docs/web/index.mdx +++ b/content/docs/web/index.mdx @@ -11,7 +11,7 @@ The Web SDK is in beta. The API may change between releases. If something does n -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. The API is built for the web: factory-created instances, reactive signals, a native `EventTarget`, tree-shakeable named exports, and React 19 bindings. +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 diff --git a/content/docs/web/quickstart/configure.mdx b/content/docs/web/quickstart/configure.mdx index 1ddca2db..bcf8e86a 100644 --- a/content/docs/web/quickstart/configure.mdx +++ b/content/docs/web/quickstart/configure.mdx @@ -21,7 +21,7 @@ import { createSuperwall } from "@superwall/paywalls-js"; const sw = createSuperwall({ apiKey: "pk_…" }); ``` -Do this once, as early as your app boots. Keep the returned instance around, or use the [tree-shakeable named exports](#tree-shakeable-exports) and let the SDK hold it for you. +Do this once, as early as your app boots. Keep the returned instance around, or use the [named exports](#named-exports) and let the SDK hold it for you. ## Wait for `ready` before presenting @@ -91,7 +91,7 @@ const sw = createSuperwall({ fingerprinting. -## Tree-shakeable exports +## Named exports Instead of threading the instance through your app, import the namespaces directly. The first `createSuperwall` call registers the default instance, and these bind to it. From 10318a96c8c64f16acfd194132ab61565f873450 Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Thu, 13 Aug 2026 14:34:04 -0500 Subject: [PATCH 12/15] docs(web): explain that Web App applications are provisioned by Superwall The Web SDK runs against the Web App application type. The dashboard's add-app Web option creates a STRIPE (Web Checkout) application instead (createApplicationInTx.ts maps web to STRIPE), and the public API marks the webapp platform "read-only - cannot be created via API". The install page now says to ask Superwall for one during the beta, instead of pointing readers at a dashboard flow that hands them the wrong key. Co-Authored-By: Claude Opus 5 --- content/docs/web/quickstart/install.mdx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/content/docs/web/quickstart/install.mdx b/content/docs/web/quickstart/install.mdx index 70b255e7..316c5af7 100644 --- a/content/docs/web/quickstart/install.mdx +++ b/content/docs/web/quickstart/install.mdx @@ -65,12 +65,15 @@ The `/browser` subpath imports cleanly on the server. Nothing on it touches the `@superwall/paywalls-js/browser/auto` once for its side effect to pull the presenter in up front. -## Get your API key +## Get an app and API key -You need your app's public API key, a `pk_…` value from the Superwall dashboard. It is a publishable key and safe to ship in client code. +Web SDK paywalls belong to a **Web App** application in the Superwall dashboard. This is a separate application type from iOS, Android, and Web Checkout. - Use the key for the web platform, not your iOS or Android key. + Web App applications cannot yet be created from the dashboard or the API. During the beta, + Superwall creates one for you. Ask your Superwall contact. +Once you have the app, copy its public API key, a `pk_…` value, from the dashboard. It is a publishable key and safe to ship in client code. Use the Web App application's key, not the key from an iOS, Android, or Web Checkout app. + Next, [configure the SDK](/web/quickstart/configure). From 81fd6d5dde9ad6ed37f5adbd8cff0d84c04ef32f Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Fri, 14 Aug 2026 13:36:29 -0500 Subject: [PATCH 13/15] docs: finish the Apply Discount rename in branch content Renames the remaining Redeem Discount references the merge did not cover: the purchases guide note, both placeholder SVGs, and the frame alt text. Also drops the stale dev-environment capture caveat from the placeholders, since the editor action reached production on 2026-08-13. Co-Authored-By: Claude Opus 5 --- .../images/stripe_discount_paywall_input.svg | 18 ++++++------------ .../images/stripe_discount_tap_behavior.svg | 18 ++++++------------ content/docs/web/guides/purchases.mdx | 2 +- 3 files changed, 13 insertions(+), 25 deletions(-) diff --git a/content/docs/images/stripe_discount_paywall_input.svg b/content/docs/images/stripe_discount_paywall_input.svg index 266218f8..b3ba4172 100644 --- a/content/docs/images/stripe_discount_paywall_input.svg +++ b/content/docs/images/stripe_discount_paywall_input.svg @@ -2,22 +2,16 @@ - + PLACEHOLDER: screenshot needed - + stripe_discount_paywall_input.jpg - - A paywall in the editor with a text Input (placeholder like "Promo code") + + A paywall in the editor of a Stripe web checkout app: a text Input - - bound to state.discountCode, next to an Apply button. - - - Capture from a Stripe web checkout app. Until the gate fix is promoted, - - - the Redeem Discount action is only visible on the dev environment. + + (placeholder like "Promo code") bound to state.discountCode, next to an Apply button. diff --git a/content/docs/images/stripe_discount_tap_behavior.svg b/content/docs/images/stripe_discount_tap_behavior.svg index 04c1e790..6954b228 100644 --- a/content/docs/images/stripe_discount_tap_behavior.svg +++ b/content/docs/images/stripe_discount_tap_behavior.svg @@ -1,23 +1,17 @@ - + - + PLACEHOLDER: screenshot needed - + stripe_discount_tap_behavior.jpg - + The editor with the button selected and Tap Behavior open, showing the - - Redeem Discount action with its code set to {{ state.discountCode }}. - - - Capture from a Stripe web checkout app. Until the gate fix is promoted, - - - the Redeem Discount action is only visible on the dev environment. + + Apply Discount action with its code set to {{ state.discountCode }}. diff --git a/content/docs/web/guides/purchases.mdx b/content/docs/web/guides/purchases.mdx index 56b1589e..30833920 100644 --- a/content/docs/web/guides/purchases.mdx +++ b/content/docs/web/guides/purchases.mdx @@ -65,7 +65,7 @@ Behavior to know: - `reason` is an open union. Known values include `code_not_found`, `code_invalid`, `no_valid_products`, `no_applicable_products`, `error`, `timeout`, `superseded`, and `paywall_dismissed`. Do not write an exhaustive `switch` over it. - This is the programmatic equivalent of the **Redeem Discount** tap action in the paywall editor. + This is the programmatic equivalent of the **Apply Discount** tap action in the paywall editor. See [Discount codes](/web-checkout/web-checkout-discount-codes) for setting the code up in Stripe. From 345aed334108212456c10e9149e114b8fd958c50 Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Fri, 14 Aug 2026 13:41:32 -0500 Subject: [PATCH 14/15] docs(web): sentence-case the feature callback list Co-Authored-By: Claude Opus 5 --- content/docs/web/quickstart/feature-gating.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/docs/web/quickstart/feature-gating.mdx b/content/docs/web/quickstart/feature-gating.mdx index 75e90194..08e8dbbd 100644 --- a/content/docs/web/quickstart/feature-gating.mdx +++ b/content/docs/web/quickstart/feature-gating.mdx @@ -24,10 +24,10 @@ await sw.register({ The callback runs when: -- the user is already entitled, so no paywall is shown -- the user purchased or restored on the paywall -- the paywall was non-gated and the user dismissed it without buying -- the placement was skipped: not found, no audience match, or holdout +- The user is already entitled, so no paywall is shown. +- The user purchased or restored on the paywall. +- The paywall was non-gated and the user dismissed it without buying. +- The placement was skipped: not found, no audience match, or holdout. It does not run when a gated paywall is dismissed without a purchase. From 158f0610a1c9c0bada17e1a562437b7750c54f7b Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Fri, 14 Aug 2026 14:10:58 -0500 Subject: [PATCH 15/15] docs(web-checkout): rewrite the discount setup steps, add the real screenshot The old steps told readers to bind the input to a state variable. No such step exists in the editor: an Input's value is exposed automatically under Element in the variable picker, and the Apply Discount action's code field has a picker button that inserts the reference. The steps now describe that flow: add an input, add a button, give it Apply Discount, pick the input. One screenshot now covers the whole setup (paywall, action, picker open on Element), replacing both placeholder SVGs. Converted to JPEG at 2000px. Co-Authored-By: Claude Opus 5 --- content/docs/images/stripe_discount_apply.jpg | Bin 0 -> 248408 bytes .../images/stripe_discount_paywall_input.svg | 17 -------------- .../images/stripe_discount_tap_behavior.svg | 17 -------------- .../web-checkout-discount-codes.mdx | 22 ++++++++---------- 4 files changed, 10 insertions(+), 46 deletions(-) create mode 100644 content/docs/images/stripe_discount_apply.jpg delete mode 100644 content/docs/images/stripe_discount_paywall_input.svg delete mode 100644 content/docs/images/stripe_discount_tap_behavior.svg diff --git a/content/docs/images/stripe_discount_apply.jpg b/content/docs/images/stripe_discount_apply.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1151013c2f286d13c7ec89e919ea6456057e8903 GIT binary patch literal 248408 zcmeFZc|4SD*f)OJB4Wa13nSTO3t7UD?E8`}kyN(qYrB*^MD2MQ9r(l#-oN zS<4!YeK2O;YZP_g@8|t}p7-}WzvuVQbKUottIK(u$8mg*<2;sg&O!P}8U+sOYwKwP z6chlE0{#b(#(*@f5Vy+!U}OY{0RTV;P*ZRLG~gXL1W=5`Yf zt9Jlt9#Av|-@U{Gyr)1zE^-Sdc>>v135u|ZS z5j{;!M^keXZ9PM+9W^OAoP2z)kcmCL0{qN%PVw2;+VRm&g0hk|1TQCNe;*A~Q$zCo z?mPMZ&$Tx2YizFsd9FXt|3i257ccocgChyxOWN7TF93w;7-_zneM+`wtT4e$qifGdC#a24PKOaa;d!+5!!@tS})IQlB!2hzC!u0Q}tqX9l4 z&u|I6*8{u&XFw7-2HqbBq`}v5GR`0^c&+vS#_!mlXE7rHpo%4tNKgMf)5iipjRFAB zH~x7hq6h%Y3;^(^(Z|WpX=ggJ7gAmZeRc^00F1T(z}f}Uob|sfdwl2j6bDWL0L?Io zv@8SwwCMn_okAjQ6_H5W#Q;F{1pu17NKF7U9d#>h7Zn9RK*>x&#Y{nZ4ZuL8Xef5B zor%C76qHodH2Y}j_R}+f1L_U}loV7{l+;u-G-QXQ2nT-;P&3o89Ffu3$7<$8%kK+4 z9+g^1cl1=v%R}bfI04xUe$o5s+1NQaxderTMMTBqa%FaO*6_=n(F=gfV9zLqAdtBep z_~cdd>z3BGH*ec}di(kZ20wlp8XKSZ_I+|{dS-TUX?bOJZ5_X{N!E)3p!%g2`16-$ z|I&*Y)Qggunu?m1tQQ4kFj;YCYMLW5`&cy0Xq|jn`Hx4@K~JR?*1X(*RMs4K=z?E2 zJ)3~snBXE=wH?j=V~R!pztU_^u|Il!1~dW6or{W+l8T0kii&0*4S4ON+eg0W=;?MY z`rp@qor{TlLG~^ZI0*$f2Q@V{E%^UIhW!i&|F197S1_c7lZJo;R1}~yQ85E>fM9zh zT%_rPj2`N^$L85o?q@}dGrH;%NLf7{ewfHpYgG}k7tv|A)1%o%?pSwm85Q^BMPz(2 z_hm9Gf#@4D6whaZE(yAg&D`<4(cj_iDS~Lf5My-`3pAaotu51O*(-j@NW+N!i6zs-mq) z!>bvEeNPjHl*iLuS1_qFMl%DCd^wt+fzSi~sV0i06GD%CfuV*Oqajr>1nKDVFsIq+mzfw%qgMw5^^^_k$`}&Zbqv$qDJ>|TMB6`c}_l}(xS)RLZCmy_wD!ujk+oh(73ko$hu$&AN0@Kvs+L`k6R@7TQph)bDysh+>K|i>fCD z=CCr`)67cMa~JqQBPi)>+;ozv2jp(JtfRzPT4bR4;6(<|IL%0fJ`^Mn#10PY)Yq6Z zFqSc-9R=;{sIMQ)BkuYV03iVJ$i-ub(D|#uj+&AgHu9-s0D-upMKTZgM;*cllJr%j0 z9{EUT_R*{k@kB(JKiWgLh3;I%w8+ql=*SQ><{~>QNMc;%I{Ku zxnjTFt!GS|=b;6qoOjevr&p#>7w8$dTSiOcsDDCuU5gXCAT|M|qr}+Lhn!h~b{m*v z9%@&-J`=TJ?rFFJrMK@dD=az5aMzPVt?#KdEWkoz1w%EIn^F=Nt4TPzgrPPby^w>7 zaD6D$9DRhyykYSQQ$Q#$9x9=YLOtaV;%0#_B)4b1GXZ~QnD>4^9nT^iF-<5Z+93iW zEQiAFkQ66`)W8QX50U`7qC6Q*T|?8GcjsZ5iu~jeF;!}{daS;ugx9qrGM=(-6)zR| z8iS^QYG;4wHoxk&-MwLLDnK(ORUa9(@HMoH;#W(=)mytY#*tP)3H(EPzMWmT zxh2t(3y)HIICMfaOy=~4AG#jn=m3I?kR8)U=vq$X8dc_@{bG;E)qb(^i5X^8F+G(_qe*A4~w4rF_Xra`$x#gyV* zPbqdN)Tu0qW(r0XA;mcX3r4k+m9q1vwT(FBW=*{60BI(FT~$#d>CGOBmEKm-kQrTf z8%A)b5QP@h+?5igH)C8{U!@K{5+R3RAx#Y}sKvqJC{&PJhNW&v+~vf+Au(>93;JRz zDErAIGr#1boL13K)1o$3Y)HfIJP`&8=m^3t*t<$$xc1h;3^Oeo8mO82?u+R|h+F|N zquoasSJD&+H8YiielP8b7C+Ty-bacQVU6vkJ^wJ2S#S3rqYu6U#8 znt3$szWb9gEfR7HRgzlLY)GS5ckqdELi}t&vWn0`ph@GD?ur$T_8w`Q* zTe)19N(mFwIZ)IY*4uW-S^`p(!rjv)qji$6?`nyPk65p8Mmpb0$y?R(#wK*>etK0S zwH)IQwDPW=3|b0-hhy#3i*%LElN8G~=8QY!TI0Gz_pg?`y=O?f*pt-P(bqU3uNOIM zHgE?eZhT&#fV)?tv{zkEU%6M-gd5dG%al>urCxxdar(55**Aeo=FfoH4GFOHB-L^8 zLeOeeG9@a$26_fYx)t=I&0W2s1+LPG5qkqI#UAcXP*o^<1%hUn4~ zs_BxFefLL|vs7maR?)@Tv{QGv>{nZK^u!syik_vz3Xjx(YdJeYPF4%mB)0CBj`>0Iabi6*|seE zCi7A8&Q&U*{iWiNPBY`O4VB)C(_Ad{s^yWrGo>eQr5jV`m~@6djcvg&!MR+OFcLB+ zl=Hx>&PWa6aX(Y$Ho9J#og*?gZ$ivu(izB4x6DQfp!elGxy$5nT2GL(lnNCb*7dqA zNpy6rEMpNFB481ps?d|cD<G(_Hz z$u61T5&brqhOV)9;+QdPG0;m6efvf!o&?aF8R(gRe1+1LGY@`KIb3WgQlcuFd57Vl zzGhR&7tvt)x6!QpceJ%#3BIN_X1d0r3RYgH8ZbOF&y~B46w4dz_fJ8;^fo|ySIg2l z;&{q_YRUCUQyzD#ErxQvGAY=v*FueQv3qmhDWs$*tw__*PE$vzg!>}uZNkak@bZp1 zqsnZ$tI*!0zDl2v(gAa>g9%8d8504EkRR^q$s8qeOR`4t5{WX`1LZO%dU9;v-iXqI z<{Y}oXn)eeWM6Kok#J8sb)_KG%vRS)H`IJGooDVuq+2O0G-bKxPC_5hoVPN(vZPeX zD<;UF#%Yiz(gw|75iLQNl%0o~X>0M(YtI;<#7|HMSj3n1$$>G=QpsHiYNll-K_iC> zlwNWd6o}Yw0hOv~y$jzA0$J;7N{_EDvG8+~MY$zH1lG|X+;TAeNns@b;->1uTa zH(kq?wJdE|dZQ+bXa_R5`%8u1x|YrOd7PGXS{d~<^O744nar0J$PR=O`cByvtk*s7fgq1 zM?cEbP|X>S+EQ=3ZLF11tYVP0Z!R{`5uhFj8&~roXJ<_fs_GWMp#;fe1vias2 z(S6rHmwzhLw1^3WZrr?Bu#UOdcNXL#Z_TXe)mJcHIC)ogIO=1Dyb9}ZAru#`<;Hoi zTk#uHU&*GWMy!a_nfH2<;pH!HmPJj;&3_t4rLcVK%lV0l5z2!+w^nSt8LP+w>eVFA zr*ugFe2&o7aw_gV_1;!ls}ci2CK}z!=QQe!y2|~WwKlV2c2zUxg>z>v*q*n{o|304 z*O@Zc5SiA}eJ;l2-=Qn+aq#U7En0z7UdA*O>BjPj)I)GWw?S*ISH{|3Q)Vn{L0J^` z-7yyKxnut60t|gT1NHL-N0`)NeXGggnGwhfm|JK0obsKqgFdMRTTAWREOOkBc=NtR zUY#3^RaENu#8=k|7lyUJh{0dm5{c+00f+dJb1&hL)wA#PHVkqK*>3+({$}9gY%cSK z6-B&G0xn_k!db5%k)eU5jpNsJRh%b0@AZs)ea*`d+$QeE@ZFTE`;BDiw*Xi{8S+-0 zIuJk=<#=b(KD6(y&x78lB;e>7gGRy&H%FWSWN6MbR;aOOCHG{oWka83!)APH8&UP# zrFsGjd@V13U$|!Tz{cv+oSF>{$DWQuqwf-BI`3`8{pco)Hj@DA@a>|D_V30KjHkm@ z<{lBMW*zbVo%3{v$t$?Q?d@kI;9Dp$$+dEX!QK8UdoBehc7j4wDz05&V1kgT`M*AwJR_$68L{t`6tu`?nc zr{TQO49Dqs53v$&j2s{VBkwwiIwd3^?j*4*26OA#A1+1i$NS-P4hkEf_H6LG$z<90 z!6&`;W(Boro2Lb}3BG~Y)yCcKPMQg)9Co16dznb5WHKd7ff!91sRgyldD;wLUs@&ssWb4g57=5MN4&vb za-JJr!SzcaW%4`md^Ln`;Ph};$IZigBT`7fOCGqZ$zPAK#n1a*^qb(m$?SxYXrAOLI#3{P5Q4vio^@<@)|Fn+$KAFI zlL;Sqe2)ySAgrT}pj5mTM*<3)_t?P4I$*W%ZKhq4WXB#W?iCBN zM&-o8YC;p@1c+Ah(9u18$R5(UbsEt%vCFxCTX6ihg9zWTUZ7oe16S|m?LrbT?SpIk zwS3*-WA8`)#mM2et-7}>&Nje0Fa)LiwYZ-Xzi}h;>DbZ)J#kM(kdaf{8M!;pjYSde zRv;tK9Y#g)KYT*H2};RpVA%Sj&GwZ@f2rgDV;DM*`*#fgvMq*DtJBY9a1{QuAWZn~1I?VC)?U zs5SfBnq{DaOGR`$f)4Kd+rbSo%!yqUUm%mWh}_sMt)x6@GE~pO80-#4W!ic6e==y) zlB(_lHP!+(KEGY`4`@yBe(V1fXmI7ZmT*!zIC~tC`#D*=Jq%Y6%~@msxK;Li7(FW* z9)$6MqhSBrM7`LtcO$jde=R!4p6^E#i|6{UMG?ATc>cejm?!4~3;5VOEJ*Onq3ZJq zpbyT=q12vQR8Vb@L$nmJ8@{3#0>UtiSdteeC?WQ&wMGt)6`M8^Glmj6gYLmp8|5H@ zbVN7o7l8u_Sdxd~CLw#?I6_{zCV^7#Ln&Q1e>4%@LGa(hYISz~8B0jiAt=SH#qavV z`VNOPuk*jkkpq+3Q)xJ=nhZDdF5EvsB|zJeLH_MlJ2oL^`hxL~0}M*Z_uoS%D~Q}L z$!lN-)@xvF?F0P^?wY&{D`JBSi?-hl4Ren`%UOeyI{kA}(9n<_&dFp?B6GH0!GJNy zl`J3esWrGLKzEMY5x?yf30U7ji0n+#L^3FN$6qKS^lf&dC1{w~F&cCq1{#pc~#Ef0Q^9Sz*Gr&3!1f^Slkl0D3(;yNu#4Zx>mwzDi$wne) zj#F)x3$hyzU^s1)za0h*5*^=xkL-kCvXMvV?Is(Oxz&?Vgpc5&&)Gq1ca4CH-d}j0 zmFy!sGLt>sdL?()R4U=dqX>BtfSYvun-dto+Wz4r{o5kD>Ck#D(cw1@e2)gKVs@m9 z=mrCL>Rynp*fiO7Sa|Kdb*hb;f9M2K6@b~8^B)rPVoQGfwl8KIW8F}RIH5_Td$)Dk znWzH+tGAt!2^0`~@>g(J-4@z2)==P6(33jJL3nq_Z%5C;x*~QRo$N^^?|*YDyd0Qi zT0!GEMU2Ad$QKpE9n1GX7(p>KWnRGJ*;BiZxhDD47wyfH3|g z(J%0==NWgwC%f+8O7b7@AN#^O@RUgS9T4t+jr*;h_a9?}Zgpi(Js0MkT5xiT$UV4M z;E;WUENSPT;ssQ>dWL;h)XGV$740%u|1n+JF2qiI?^Xz*U@4NnQ_bzxcaA-hzbk}Z z;!t%r5%^tOaUkCB)ly_uBY#+dYoU4uvS+!^uffuhb{UL-OrAUS$UnG&^@uk+em5cO zhWw5jI%~s6H?RQw&QH8QVh6ar0?-06)-m$8j9_---IdXHL3oF(6YuZ+&$uVA~E^xiUQDEUfu4i}aH!yi&*T5>ZaIY?`*womI1@*qa3f2EzPV;2^ z(YW~o@X0^=5>vT4W#N@Eg0 z9!K`6J!r@w9GvWLgZ{;G^Cc2=Psk(z@sbP3{=vwAQ=sd)_ys()0R+f>_Aao_;h zGyn)iIBp6?Zd1U5{ZH(g*mF8^id)^@>os6=Y*ITKg0(J_A6dgc4IkKjA;_i}=KR$~ zBsz9a?wW!G*wi3E1#1Xn;KIK9ul6Quw=?>yz2Vsnm)4taZxOv;QV_;L=rQwj%J{wR zW@ZF84iOZ`H_HMohD>TirfurAi6&9c6lqsM7rfI4GJ)_{6*>VPf8-#`kf?luWo5fP_+zm z{nh7R-3HUwUt$mwBAoh|^`7K!b|>sWIt{@e{ne!JO;3(Yc?efS(C&L;tZsAMz}#3Z z2Al7lhS48B*16L#?(HfVfI5e47oH5M-|al-Hc#x!HQ9D=B>`}73Hrqmn5WjR!Jo|%d*DnP#QTH(KTGaS30LkAB{VDoY6 z2qhS9Dxd5Pox7e)PWh@4U5J%ErU>o6Gl;5&pHpP}>XCqG@YlJ|&W=_8>R(sDR==9O z8us=+s;7sM9=Ci)KD_uwyPO6eO-9u6f&E8)v*Yh>5;4|^Ad8eo1|F=+lO4OOpx6OI zFu1`1nGz>*Z|tk%LT@#nx zJs|S(58E*$c`xbrj!nWehFCvA0&>IOK**aY8(SJ+JNIc%4@7f5+!elgSOu(|es2pY zi;{r*iX>o1byrYzctltJFJ!=eK~;*Nw6zAtt-?pUs?BZ66qWntIT66IR2v^aEJ2Fj zSpKFU0c$a>@UdfmHn|c+injya!*}F@6Ty9qJ;8oy4=#V|$nAnQLPx|OzyhHpV9>C6 z1NAqHZ{y7Ft;cf~*ul645mtZUJ`pn+{h>fEMiQS$1D3^8z>?>jsf^kM27 z+Xd=v1i@eWf<)xC61QCdpLQqf_jITFy6K7`KD+F=yo}RmPoDB8@-T0yg9hyfCD{rl z=Y2$T5!@BF$@PpZtQQFYH~NZ{MeKdELBHuFZw}^m;sZ?PsX&FT$qJ8vA%pBWH@6EA zAfu68M)A}4NPvUC)CT^=H%Uvx$ztOELpvz!OboU!ym#TFsfbztbn=R3#QNGVrTB{S zH`j9zzgXo#@BuFKU{C^CfqljfubyPQfJ+;ZDEfz0Tp619e9{qgYjC@>6`XYhMlSJ8 z$TZ){@`1@46cGl7D6)WrUr5|2!w_FwMl3IezazwC!aAi0%5c!pw;9zAlNZ=8(BTt! zP(I8b`M5yPmu11d)msaW-$D~) zn@p^4GdhsDWr5tlAiKX zXd+3niE=^OEc_aL@-O|O-&ru25wSZOzOj!dM$i&iTqZv5sFT0GM233?G1d#`1z~Z+ zP3^)GrNG*Yve)}$B;U4yArKt>m`)?$2;59{GGawO#Ggn!2e$CwB3AaF82pVDS$fAV zq2DPOM4FjOZU-R^aMzj$hIx#dDx#}*47;@fx>&0y$Q8@`3!dM$h}>%w38%Sxi4jtb zw2zXV!6gU7>5U{iuE^nc8H<21!h{eCt^`c;Z!PB5Nx+|693O*1bhfNZEwMjLcE&Lf zc{CQMh&Pg%z)eEzuinfwECeJk{!N}>{d1>yxB~X;h}Rk&@LxESiCKv}T8k58V%V13 z&f-WzycB(*#`iu#0QV!V%P0Vz`#gfUo0sLs+1$V!#Qr7blTHm`wG&*C_1nc`o#}{z z&XuPb2t_S_W$ZT*m)6E`9^GrAN5A z#thGZ^F+KKff2d11UnO+?Jxf{^!oTZv({QRH1KWOmp291(jEBIsJdcSs()aPWK^7w zdC5~TRz0M-#)3by_@s5t4%c6)#-F>%EA!W#t=w9X2aUw#H9RfrTX66XXak+ z93O3ilV`DS+CvcE;dc*eyI^gadh5bfA534>(OkcnxT)f$ zWCeTA?MFwf+hT$-)2CRJF65PsqiPh(Zx=eao8|RCk-bQuXpwTz(N7Ly5k~_{qj~uchjVeX zV>J0U>)vUBJI$Y4rL}^~^k-GxxpI5o=r%EB)|EWjs5C9Uv9O&+l0g%=H(J#;k)_@YG3?bDRvk#@uRR7v9z z@ki5-j3MuFmR3g(X|(c?fDfO;euNr9BPSantRcO6xCYB-5)!W?Gj6EaM}3)!RPE4q zK{??9F2%PPX){!)aB*DiPm7fg`p~ReR?S<7Zz*}FXz-b{sz~)B%|(U<^{J(f(2lA; z_6ItF?&CI>OyA7xpiI|~HM%D59uL%Q z;{pE->kn$e+i1e!B6k+I&2uH2Z?9)wbrMTi;67M6a&2~>>RfND^YmE%oPJwea)&hD zrra83O$dh+`_V|>U3P$vLJ}jG@lk=>Syu#lS5?@~UQ4*FLZo?tn%Vq7a%gPHV3Bks;Z$5di02n}T48IOC24IvD4SFPG$=(#z}U z(8+yGF&rtBcpy%Ap}${CBNi$aYg$~V97!)Np1bIHOGR}Q0U5?)T7tW0o;c)krn!Ar zJY)8e37xFIPfvw@N{ub-lq1rCseZA9OLg*=Tev{}<)n=>g15h(W$vug8+yoO$?J>f z0#@wl4e9Nw)7J`QTi;JC7BG;{-r90a-U~Q)!qf1xUO>wEhg#8}{okD@0ReulR1T;& zl}eoV>@H(2RoZHm&Gg(X$i8HQI6AH4YduYQy(T+JN8HG&;zwad`Lu^@rl5(LI$Mlo zt$iwEA0ombCnyM8;#%uKl?J-$$vf314O)SdN ze9;=z)_)|7haQBl>JS}UJyM4PQte5_3Li~G* zl(KL4sBX9F0(ZIk9zCz?lW=-blOrjya8Qps^}(e8rxeSi0wfR_omkr&W4XS+Q6bpz zyJcS&&4X)}k^O=4A}W)Sg4|r;IwrJ8z)qwnlK#K=b?~l*sEM7MA{6NHH><(0n${Fh zUq&NkkG!2R-5!Sqs#u}QOrZf#fX0&hfcfG;*(}%XT(sTu$%?>3nNNIrI`~^-)GA-o z6J9OS-h#VzXs%uF4(yP6y~YM}!x5`0Z9@VjtvuNbB-Ca(PAgc8FV*%I%if84Em5b_ zewYtdo((;3#U2-?;WVy#oJYI$+SOY{oL0jDjW#7>3_|#~=9Y_j+a5uY2k50i#lfFq zhi~2<<`nkPZ>?zwew6Qz_GWE$L^-;k%dJ@Rm4>xRbD2|*}bV_|w0D0nYC_-o7 zJ?>&pRjqSK%N#b{kIIS%DlvR9pmP`WDTtl;$)g2?No)lYKd`~M)ee0PN!F@^;j;1i zoRU8-YAkvdi6&ZBMNm~;}FMIXj38nE}7A zHxn#92he4As`#~eGn(IG6!b4$5;_al!H#CySt`fP2V%Y&-oZW!@H8HS6ldy25lY;N z`4t0uirl8ygd3O zMgPHyJnmECe#=4;&7g1{+RGU}w&(*^N3NxYZUkW8AyPMvIK10ZoedsxX=Ma#mCj(@ zs$9&v$6a%9I$OsIkjduT`9x{Atm;ePiSw=DSVh|^bmF-0EW_~!1g&sQ9PKDCX0*zH z$ZEnx*Lv@$>%6D4=lDlB(?WCfH{UkEB|T3~LHwQgR!BWtEFnD?{AuCku7F)cXW<)O|}87vN-7#{2(JTVeCxW0KEH5nOg zoefbw5PPi2IW)ahcNQ}6492PG&zb$bYZK+?lljGJ-fk$^qy7ux1n#j~CjHN$nLv-c z!;YF^e2u7cl#>J6UwP`@9gAph=SY5!TDs*(5%OdqFw(8lJCC9Lj9K`H{ld6IE8els zRB3Mn#Md^QeShiQ+anw!N5dzGy!|)_2A_yaH`+`N-^7Ude0T4$@_hV6^-AS66>F4f zxt2LbQ25$R)e9HSMXdSro)_#M>p@J;*{@Q)9q222j(O=2Xc8k_V(AL4BbDj5y#`kd zAS|wfPnb&cE}>UU4#aHV=6JKtqp@1uiDeC=#NR3ydB%0==D?4KVdbM24_H55xlp2T z|G4<-g2X%V{&KF`UiX3CLc;g9t0#o&T&>XTf*!UWo{lE6ZvsAVJr_5B)PIG$E%1_@ z-|KgMVA_jNg>!9tezDbLj&9<@=Z^*dAOYi|bx+Uvx3SGRIbY&$e_YwV^kLfX=~~($ z3eKYfd3UWpOE@IcUs^3QPrq07e#LQcwQ$bogta5%DX%B>vfV-8{?RrackjIMCAj|0 z8HsQEk53g&ELT^kjSg0Sm|4Ns@gT-mj(=(kWp904_1Nh6lqD5WFlC9q?zXVS=c^Zr zOOI6V>zpSyi>BPA{)`x2%>ceG zT3a08+?LM?^-X3uB~4+Ec>Q9e=36*Kf79K2^*G`QA~TEu*E!yb9R<&t5i|!@;ju)S z5Ebjn`-SfOJxlKnK1OouG9;Y%ra~FgCO^AAQkz#Tcz1CIw*Q%n>RjI=`ffJe4m z1Zn$eRAODn;KvK7Ah%pJ_|)_s-?^^hw0ps9r=*R0ha%OOw&UTKl_EHaJyqi#Bp{y1)nBz@bAPlh zM!)}PJ)uR4>4L%1Z5Az| zwb)vn7D!wuZF6@Rdbj;s_oWd&nRJSfJiARstgJ*%8r&+k5?a_Apxw< zD8?I~agIMdDcmd6c-E%6;Au_p@@ezW9kGG}8>ug;FUF**!<5|+b;2#l@m%b$w!Gs| zLCLi7DlYdtLglxHk1g4>NTxC}z=3PvoB49K03C zc+DKg^PxOguw~jhZS$P@*HNFKc^h-pk*B9Q0Gjnm$6NW}uGg&yq2amPw?_{CljQ&a6XA>vh&tBz|{<;kIXYGsZuk#btj^onjN&quDnVsRlby`CRoM&sMw)?hWm zxPC{zE_XPU`_)x`*H4@&DuVqc$4W%S{F-}Le|~B{Q!}vglZC*uST_2FtA`I-_V9S%kWBlw{ImNeH|x;nw>(X^ zg>UG3@t)#6p{^-@u>Bg>CT1M+qYjPV{MlxA{mFJq?9{DQ30AB6G)1$P*x^`~Hj0lM zwyDVPsZHDy!;SCqKgrq-b|%Y14u`2f0c#^z$dwSkam0gW??aUy0!a@w4qOx~gRJjY zQo8VE6bOeoGhzL44|_&lWl4XUGk5Kl$QY!%6n!$?i`s~vl7a6E8?Yq)?V9&z3nDXu z(J{ne-0{W&AO0QMge@L(T$*6$;2#JNHb&}7ROdlGvM*%)EYjEhZnZ#Bz;tcQ zns6+A^xSdBTZtFLtdBpdPo0^y8e%>ANI*%_62ho@;f zdIGce3B5=*sY*39HAwLg}X;vs+^rxMXSU zYg#Ar-t{G|P)u=U5zO*L>Ua;U`Sg#hZ@RCo=A0Bdxkk*x+9%%#JN866%d}5$%d0B* z{W|#JZGmu6^1zc>KwQlE=AAja=SuR(&Pm;lSy#$HdF8cxGgj<%fMM<8K=yODJ__)Q z6aVOY8NK?Nd+vtzo<#$vhcg+ta-Q@D&8Q!gsS4P-wQ?w7wcJ}chb7+_GN#V!JF&$W z=Ap*1cp|3s@%;dUJ2y~6O6H<=CvOGE`Ek-YW;_sJQ7lVNQUT-pX%b*Y0-7pdL{;k- zM?Y0f=DH`BxQ8~_>MgB2P4(mt!%POrYG%$SHs$F(3 zewP3n_spvN$lGpG2ZRPUhl`(m7;~;)eopGg=R|)?)P}^Z%4Db~)J!Dkl(p~Dl8-KD zwSJ`(1RvVmYz6x?s`SwW{|(L_Mdx!-4%oK{H*f=M=6-2;(t! z_}DQloqM<2D+%jnmN|A78~s6%jd`|29?H*Cugl5{nKPw&F2w z&MzSmCmvrjxT7TDgngLHF@;D~U=W#U;MJk#TAuU%^qe5&GRBJQZ3%YZ=_3eZzPMeO zH3+Gu>96W5x=Nj@*3USZ*ltY`>I|iLGdsfjLg?`wjMR-vxlgM`CT*c{u|;QNQ=Qlb z#=Rx2#J<-{-R68V8mUgjm)NMLfbShEd7;o9A*JbD?hxXv>3DF+e#UieaoFxrtq@z1 zRZ7XNw&O5C+9iMzL7&a3kp z;YQX{7PYG<&Ow?Z`1@8=gW#;6zdVslWqfb$7A*bB#irElrfu;h8ihm*;tE$#)Z(3q z#I~157Dvt|YjK@V8b&-g`}xD=EwOX)_e?+8$1#v7G}c#N*VXuTHhm_JB* z6|Sb2ODUJyiS-@Y4LjB&==noFzefZf8Dagxx} zn@K;UA-)`@1-ysTJQT)-!4Ir&sxj6*NLqKm-M?A>viR(Xy{&`9>vij_WZn%Y-3wu# zU(*dGwY=l~c&G>aqi}44KsDM)J?s%I`*!S{?kqbyn)Xil{*vQgw4^&3WU0Tt-HNI5 z#y=fp!&Kq1uZIP3g9(yhC%q?5x_Z`K3#oF-{dQ2ht1$YinyX*jfqnjOIaDGchx@{; z@{|_eE*7bKYS-h^W|!NAgKuBXZnR&2sn{91sX4}0?okxc8NoQM<^U zvla$%&HuQr?0Z9oaf4YvTqW_HxQNA4c^f>NHkY8hm_JW5{@MEgp7_(K8;z?+9fo=Pd@n6YRdQMgz=!Ppl2Omh*_yoS;YVQ`f0h^ z3-63Gn*Ei(&@#7vE3S1lO<*!M3Lb{w8OP!Kzq+E#3F>|KRbXS~uZJR1jwT7wFtRA}t;c~DEp>=$owzhRjm;XZR7~ymLg(vW5Nu2qD z8B~3dR|^h!Gl$vXo9~5WwGE6g-AH6h9<73#^fUh)%hS7`w$Odw5H5gZ_pyj;d)G7+ zddmTVf4*on^%}vn3SmF%W-!)yb5Vco_P{Nvp-K+BI}NAPPiAH-A2`7*9qNLuY{sR1 zU_9HlnZe%4gZhG+ViOM{eu@tfY>9m z4lX0sX0bRu3M-4Qn3qtBo2-o~%?b z3`7d@h|UdXKNoGT0@RQq1(g5AuYJ6=t(d&p);aZq^`WuYOvA5YPrE2+H&+RWOm{0W zcoskSM;ERn+W~mT@wS*S)x~RTSX^~8BK~%o-eU!v)N9XeF@iIRjV}nme=FfC9g41G9 zD$Zr?KCZ3hXFP9UTudNr|G8<2@)8yknmXL`vl)5>^o8itA9}R+bKIXG9!_2}5s<;( zbk27a0uLX8MON+%mPzF>&H$85J017PD7hKsnD9)sGSRrTSJXr0HY3$bsm$CWt>I=L z?ik0=!6xt%l;knT z!Z8dI3W!4V?L?@)GhQ1XnWv$eJ#l-4dMd96uEa9x5p-UU;|+`F(W6K2@?Nu!BEENI zjW{t4rwkJ3cp5u z{(y>oHYfku|Le0F`$am>n^`v{T}C#w6M-rdOUaaL$4%=A86J-G_A& z>eu@tRo&kY!AbpuOP!&|-KI+6VwX?mt!~35K3t^kb5R;EX*28%T9=og7r0!kV)>f8 z&$Cm$^Te6X0XY8XGkWmMr_`-d)eE@S4J07S;WIrkac%=V01yp&*4w6#PGSpqjIrml zJ263gkyjcqzq}El-Stsa24yEcNzV$sa2rYa68sAb55P~O45`6yWDDx3GpBZ({wfwU zXZoOkzWPl5z?;&``Rsr-;{i9PV;&Q%gH zXMO^G1a|B^%wL_WB|6$>l)kkgzY~$Qkd*15hrYAzd@(c#Bi2Q=*ecrf;e5LALSAjd zc%hT};r7|l<4cUnjeWOmjGeC_#2!9LDE`R@M*~;7ZQ(;Y#H)yjk!^Q)Z8Bkr1hio{ z`zWfkz!cyH+xSibk`b$AWC`Ap0Psl3oaw&0L+RTkh^Z{1DtPd)cuN;NKqN)DMgpqT zx%#Y3)>278o+BPSyJ43+f0P8MU>AQ9>i`e4|0pM~?uc57DpM1m6v?yY)8Z1Gx1kv+2?ZMy`Pad{TVxddZ5nDzX@qfHwv@sz8`oyFU!AWDW(D9xLClr zDbD9^tlSFe0uLnq(S*wGPEGJn;xT7jCH9Yausslffue_qKR_VVh+w6ewe|2XERNbn2 z^1hbGrK&S4*xmms_Aa1|!<0s6#=sk%LIPwqAdc?-^!MMXA0CT2kfgDKz8@%b8@B3_ zY~1e_D5^88j^H-k*Ye8-`Trl;;J?q>|HJ7&vsV5Gz5hY)@96g58K?iBeGk5y5w6E_ zs!-T6mg`5%Qs5`=y_I_uzV>EiUY*TLQe~YYVti$Ny%eMWD|lw1Z5-<8k-4F!)VF%> zD);J8<~^U@{d*h#sSfAg9g_5Fse;|rIYW0K_TJOgieqB?hyfHvEe^Gf)O7Ys%Gdg} z51qRmseryAn$dRrSbS&&p!3bWdd(qcxCgeih8?p!`YcaPwjq@3uDeMxN;=|3q?}WI z^w%H_uGSaGLTv;+>i?WYcJle}Y-;u=lNK<#iwpmiO?Cdtq>=JvmHGd7>5B5pV>SzH zjtcXe;mXMT_sHZeDI;3`0p{e*%h)l~KY6V@vFv@sEDcy`*dkle*`xGrDF2fS)5U1@ zrFSy#6Z5_LzS{vg;y42$ea%6WWHt75VrYop(T#IoklQ#j$LM_AnPD~M5CdXM3Aq$P zZ6!l^9w~0Z-!!x0U^z0W3H^0H+|yv=74ab*2yJthjCXuXisf-aMGn3e1;PdQKOTI? zfV{(-dGKhJVdMW|@6E%Z?%v1oK}aPnlx$O$>}j!-ZK!0+zDB4dTS&5G8&WA@vX^3H zmo2hn$&e6|o$Sllm(0jAm>J(QBhvFc@8$cuzMnsS*Y&wvgLy6I+~+>`e(rOhIb*Kl zjq4qF8?KHp_A2FIepnJ*OPTGVrJvf2qlS(3*!##&T(bGQbsJjZWdwuMSzs68gV9Jf zS!O&fu3{L$=&9EM&$(AWOPw(k^(ES?^;IhO?t&dIP=T;e2s+cd6*vSnD0BEKw1&9b znE~X^k4m;C_QHXoH*r2WyXr$OKRRU|A2hrGdyB%k&CNJ~v|Sw7!Ds(wBZs;M{>RJO z0W04w8k{2Nk=osUD}l%%wFWYPn}{%saVlvSnLxPK7rz(8w_qDA8kK`0Fo2w7>SAC% zlCrEB*a<-Z1UM8Y+y*kJQ4uP9Bl2J2dS)2x-1h;ZKNgsreHTcXylyuG~y6cq;;8wzjR3LU7aBiOyw4D|&?YblZGGg)Y!9ox`7;y(#tPg^{ zt3mp0$ksKYUTQ)J?J0sT6vsC(V-Ft#-c22Ow2Q3pic2VS#3~du|B5^W!F%K(q%zzE2bV=kO`O zjlu?82Y@^!)>slPK@P%$X|N&$CL$xyNm+vgiZVdvXOwwazYG+20<{i7GbRvs@vO0< zVVGD1{xG=(qR~VW37tuu#9h2=Amy?N55t%M*uN|QTu~n)1OtOTVC^?7!e>P?WiPVT zES>|{W+ntXB5)e;`54l;PJ;PWK$#~XaoMQ(7*ZRH_&gnzv0&2UeDJ||WKJi6VPHj_ z3=1G3>H~ye)P(mh=$P>NXht$(l3+u_W;p{69Gg&T;M}5STmcD9fG(WZK}tMV=X{p} z+mmyMDGeeA7!v?|brWznY1ECYP(|YIY;t~nWF46bwBZ=6$oDy-KS1vWvH*4QtZ~4% zUR}f&Xep8~9R}9OpL*B87i2d;n3sY6_1)~zTrz#MA@S0xOVWTo7T|-$B-la#lz({} zF1$gtfVD|O8z(R%fZ>y;R~6t9;9(87`FfzieCNi{bch^aPT*TpvUn5#9Mm;lYG{gagVnBxLlNi3mVL);~}#tvOUg4rX_)sYQi zQv8FM-eo6=ljo0r1I*vk#fbb1MoyX4TQJ@|ItELFk*4eZAJYX;P8ucPO|OmV1{+UHqVTW2(19zR{)0+2XWMK*ej&FJ9 zHf);+z^7>`=8^;v*gy>=QO`C>L?RZ1clE#m41qs11qJ+G_lVI$6tIjLz!?W22(=~7 z5IDEx8N2P0bP=Dbt(g`#1_R;{=e7hqjD|U zOG&lE<|u1)0eX2W4(2ii*S z;}UE`X8w{SIokVmW|{y60E&L_%)16gdKwS{NtgptB+JE3DF{gM9CKnq1Q3Fk0d-Wt zwi5@yV#*8zdPO5Ld3EBYb;#tk$&F-Y20Ul>TNJ>B@?s|ENrVnm+eTBEExAM@ zbf!PWTF%08-)QezK$KCVR#S0JGHsbM`2L#!vD6g^l+AdN&D> zO8}8H`YqltOiduoXHr)&d><$JZ{iqi!TfvM9O2qaR)7Xv|9TJX=ljd+*`p8rF41!|kkCSs ziUZs6LL$e%05`pIts;R2aSPDnujjwPMt1u$TCv%34l6Q3{fQhRYiz$&0oaCC z1!NvDDz;=^L|<|si%clcUciL#e@5n~&3WX-OPeoA%%Mq>H+uoF%=C)c(Uxn?BtmFs zAm0RC17oH{lVsq)hS1PW)2f?fT6NBU1d|0L34>JlUvH8~o_W*mIk{+$!9{6z)%bpv1z>h0{$vwILw+7L4qgkZ@`k^Ir2+x z{sJdACE)S~Zb;|5NAA!NR|zw=sP7s4Gn%i)k&8s(?x= zt6}EeMA=Pk{&$Ktt6QRn{40V4bNbiDJ*fiJlF9u25A5*|{AcjaE#=zShCtY0*uU`; zNy~3Zx9OGZ6>(G=U7vw`@*uO*Ho5qVpOD-5DUyxlDvN0Y7_A1d=}|LxVPjk3#ti3H zIOBv^`OSTidq|kHx>~aclq3VNoBtFxe@ZvAdYVnq1Y*B`d3vMm?J5DV-={NGQkV@f z50nn*`;Yr1ivP1qqG3^k$Pkd+POC8_X+YMOo6-Ov|4&h#JsKR~{f%owhx|8jf+2e&TV^x;KM#ZtnYc z_*atQ6HazzC!iRub;$R&?boJPG*a9*R56OkA-~3gTtRMjAcB{MF9DMaF!^s&EY3q~ z!xoz(8-{?oHmyjKz(kM*=9ckC)Rp14mL%zU(74QY6O#NdumdEEeVe81`ZxTgDe$TRNudY-6&Beky6b-cT1C#? z$p3yO0LA}zBMZKG_`eN&o!fVn_!d5dM&=X&AM-a)wvYo!4nW6j(h^)?fgB!5)4(&@ zE}gBxBL+4&A>IMUS2J@LKIZkCfU}#y(B7{`gIk4UZ)c9ELym^TZw8SD$U!7v;|uFH z?G)!zb}vF>g`^CuQaLJtz@jvPXWAINEW4F&7Izg*Vom76IP)8r{a0`)+)E`HD6 ziZF0zC~$q4dNiuaY%eZh$TWwLpKLhs%u=-MVv}8reaiE!u4ZO@R?1QHXncKE$$98R z!W2BlD;pvYx2jq>v**IHda!JSv!vcx9NuQwMT|gy@#hh1FM+zfr!cznS4wq|P4v`tr@wk^Q{OuT!NAf>S6{H7PDpGisJ!-gOdWo&L%~O7;P#+3aBRxzBEG z4Y{U$O}kl+4s0qGW+a`y^Dn-DqiD#0l7Rh($9h{QD8b1!stP+PpD!dO$_SJ*^d-mU zp_i>wGEc;9OBy~;!Jwtu{d|$}W14U|1BjkDPO8o7QnIM%D9i0uR#ldxrcGkx2#+jh zd>rYg;G?pWQ9Cv~GnLL)(NR^&J-`mqd)Jy;swk1&>K&Z|V{(j-3Sa!Qo&2X%<>D)E zXaz918wpVeE8-}Thl!uxTtvivDPvPn?t*y{$f(e z`GFQ?ElI9K>~PO~wF{fLmyB)o-~*4MmhKkbSnHiTL(*K#Cm^-3M>>AS3DJ*FL?{*M zgj!n>jh`zC1B_7?Z&LMZ-p=Cm+-KRAf*!ot<-jn2xrd+htx-!v2V^ zpXR`X(O3ja!&~c4amS+WOwj`u6IUtgXuMKK4}8{fh)_0btBWtllolISU2`tZX%RVb z4PL^nKd%%NycfLQVA&70Mz(q(wF)9zu3Fw~&a*>YJxLR6TEJ#2U&1dKVQsT!EtzXQ zo&GU!`r2&1{T}sW!mX5-?Rbv{-bzzs3sVZYnAG=0PjAQj19u=)p&CibsdYw0sn*ev zVU9~``YpEn7}ok&@uwJf_AH8u#k9d@vGi9*#Ek7^$87nW%I-btX6)&7^35|Z(_pls zu^Q11pryJ^V$zB;m|wEUlSdFO8y%f)vGtkBq4Zt|w^iub&~1TJ8mi ztC*{1%c9zGN89u(jpnB`D|mzAZ=}50HOS`J5#f^n4k+269DW5JzW8#!5gqI4mX``X zu1O+}%9ASY0Ya3);d{wHhJeT7%Ney)_}s$(iUkX|M zT2kxUK~QPHNUHhTzLqAd_)pgr7`3iHV$2ISq-F=^x_rm$k9_ZFos{?$byPgG3*tz7 z+5y2*3sWUA&VVxqv?&ygRJ1xmUrOFT^w7FY)dG$Mh)k9{mXs)(cM|L` zjs{eGH$mJb?KY)4%^g~8uheVe;m(Ok>{b+&NmQ#%lA5qgQOafoX0A}lh2`0*%RYSZ z0ZNns0ySNhYsboZ)^R$@k>%OUWm8RmTB4r=EHMl|2q~=#+*R)wpK-8vTx+7+f?X=3nnj`u0png!L}-{*}&X{k!^>c1H>_ z8t7pfp~UkPJuHMV;)CLeydYVgno#D|!sGEx%{m&F*sq4drQs@_>4EpoO*ItWh+1;? z$73|=5HmdtD}%@ghvSHhFK^JTKduZ%-#6&*w$|>(W?@{RIU+i}YrAT*MV;1cYA3uyO;987+WC~; zpBlt(??Cnv-HKlKY#9e$3JV9vj~TncD#YpGX;(+z?QIJ>Jg3YRyPx*1w;y*$oeV(k`5)RBR+xh|AHbvy=(=-4 z-^=XMwljHEY#OqZGu~@)V}cg!iJUf2i8hV(qojsuA;K^pLIwi-HHzUeFkj&fwx}w1P49VKLFo|Q^=E=HLqJ6`__Hs6XCLrqv7h~SE-W{ zq1LPUi3J8)cQD_A*q$xwLjpWw)ZK=!jSMGd6`PrT7#nMz;kml=6I5@wNU(=D_r+&? zaNKIZf?9qf?y;EoQ(osgFv+JEXA&el*zQv?t-e{~CRRwgB1)w!uu^E=*U|cM@y7H5 z$4^N&AxngQpiZYd>uJ-mg`O7tXTl;3t-c>c4BIr~PZ!Pruk2#ad9a@axH_N89(40{3$~4zAb`u0mjnHY zCCscW6OR}#Ij%$E?cTr#8R0{U|NI)?h>72t;(kye2-@F>gbziaETOB%K@B(xMIwk3 z2zq~mEvV&*;3*M!!HJ_qgW4~?OzljFl=<}%&+_~6Mx2F1R}JxL!J~DE4{(YfK{0g$ z?-7K9cDvUhkOYwaxk_u5)J^V51%=1MJ!FB=^;nWUhfgY_nJs z3bRXcb+;9;8uh-LbsHj9aKt4~tRpxQp`q|(-T}|E&3cB{!t-?`c@N*|d1I*qU0Sv0)fF$qGR)XhAJcW_=X`vL`P%&* z9C2;BZ;l9xy5BcDFpSC9Q);twR_i;10|jvIXQ3`McF8ZpzIG~NQI#F02XXaiAn{C80>@sJf%w&FGY~1>~$F$pAP%gjhLLP77 zD)?OMinl^s*78teg)VH>#TAxytN) zirH57XM(~$4NQ$cA&fZU5#|k^gN?>G{~?hBCdNi?66IyP+Kx5l`QJLMZ6wj{V0k@1 zIV9&f114JzrXd8TTMsKjd}OD%4xvEe1)F4#;T|}=@50rW#|nHjIiv4l(3)5hHY7{s#Dk5jr;RQ^H1rees~0b`nwLUGYYtxe{PrGqYV|48 z-D|eqZAOis84w)YZL<5oBBJiAio%nJAO&kgZH}Ypi@`nargql&P@#U)^r~;8(ZhhIMKCR}-JY-n zYdEVg*aj8o%2Mzs#f{r^s*^4$(bns@eMAQKjs)k9tN!Zn`+?Z2(8s8oW)GIksLR+q zZE!`{^XN~-4#8jFJ+sP?ZRLxxxT(d;4=d5rZjlN;4Pp91{DM5>Nr7oBhqEofS#1*3 zO0cevj5S)Cs<@F>#eyg2D}oI9S2`oRWhRkq-hw#Vs)1bIa^&M!j&_BCr_x8Ax!xM> zOw_R(&zYZ}dBf_uwx@rg@O&chm?cMw@*eG>D$#+-q* zrarVLPOyd>kuEDts*Oxrs=Vfe=f#yIxcS;k^A6R^a0;#sa60dkDMB{ThzBb5NMyOB zeRFHLN2CVA0K;GEjGbRr#XjVq#ySK#ca~!20_{a>$}Ya^-+l3kX6RICWw2R%UC?+G0-P-Vh+@JzHPA`@E8Ka=^IljQBZ@#rw4=0*SdF>RN zK(V0Av%A(IgRmzKrNU^3z&S!*m|=dwE1K7)=$WX~)uF0V4{lu2J+1UssV=qAXaSA@ zGTz~n86*A}PG*n*8|E1Z2GhOMt*jqZnQe2(w0vwG_o%n_E>#+($cvrNPkH%R$Pbrk z6Nn}aGvAb+id*yES*3?;7P8CH&@-+gBoWPva8li zdWa4CY_g9>-F=pNJb!c#{3dfL+Nn_L?n(1%N7S?#hZ|a@NfdTuI-2*97;Sr=o$Qi_ zhidJ!~tHg?ZPJ2UeiQ^|a6*GW82qFu(s*LZi%$^!mN5OpVWhykzWr?=E zn2V7bx)B)E=ZZKFrW-;-YvXwEd}sSQBo{vO1`X@>uTD^Jt(+`lYBf>Md>c{s*&lhF z4fFHET6(kM*Is9=$ix2q&3G?R(xZ$HyEnD?cvO~+_)?U?x4Lw@Jy}#=u6)t*jWrx} z&F*gOR$MB;U0FNsDUwS-!Y!1A#yWsjnJu`>^I6heN!Gewm*-YVRMuS=0=mmuqG>;N zc^2V}K@GuuZUb?fj2VmZLW@xKryIIGyL=NNdAlnla^*`J&vhDSi)a4&a^ge4qes zu(}NY$G1KglvS+xD6ILd`5Z+h+_nmDidWC#3@}x{W3+I zlq8!dwWC#Zu*;4}?}y)-l^QH~k5#F^gj?h;ATpN)C_Th}#Ry3#(j1Ry4S`ZC zPtfha8fkmaOMjhW`>vAX+79a7g{&!Kch?~EJAGt%rrd+(d~f4jF_9XlZsfISii-4{w7bc5wuWiN5d+o6bmXr&<1BSCkxxbZMW3PeDRZ;j#QhXL!}uzmi;C6w z>{ZW%;P%y1n6N=apf@$H4hrq^yjKu4*n790)2OfSezU55PeH|)(%8N_c<`AIvupV) zX!HO=mb#EoL|X&fRc(psdz@`2sLXP$SCLJX`twAorR&%FRu_sX+qcO<6216ko|MKt z3IhApB<-BI(XO{LT3cT=Fs(!EOBs3&fA-nqy$qt|Erx>q@WJ$JB0=69cFbUtrtpBq z>P-F&j2UGy=MT&CuS)fnbu$=FM%WGYDc?>;1&stH%HMwS^88KBMg|!L#U;6Jm^1MEN z#^+LRj`VUi5@jDGT&lPx?8Y!`StWd+M-KN&tfBOD)q$O(oVw2&_8;N3(lh8*{_fV8 zl`<={cF8SaD7)OuFB{`ft=VOBSp4J#?*i=#X9A%o-gJF0 z;ZvQO@|e20C9f7cXT(8KN1^9^JMlSIMowJbSoD!S2XXHkRd5nZ)mX&r z{WKi!#b!|439x10 zu}VtBe|0gsO0*MZZ+L5eb!+;ky3lI0qXqZDU|J?D?W`KcwnlajM%e#psTnr6XZZ4+ z0iIHELAT`tpIW&No)%O)4xxK|mR(Uy@0H`Jp%3TJ7Jf@;XcQh?DRfybke$HU4Z{OL zArl`@iVXa209^rIYwZ4wUSmQcA?C*q>5ln%$!kurg3*LHbF9Q?hVKrV*nwHDp?VDl z+?rak+04wPcN$@Lo-*$)3V6vSQY<~_Tf+274V$fpvjkN@r!hR8l@5n4B;vAme;B$~ z7=5@zDRye)OXflQqx#I3-2^Ggi@U&dAG%q;U zcT`B?)QUymqi-#B0!d=^^XKlo*!Aq-uG|NKUKt-pkm5gT*CEa^QJ1&av7QMB4@7U5vsxSFPSW`f4%s zf!9X;7FtJ|{&P@DndLlocp3~~7MbddcWHg`NO9PHvrGcl}UD<6Y z4^5ZtEwPn??&tX|Ro5+beYRHnyuFY?tbC*UU6UP%D%7(91~J$})PB4krqghTiQC=P z;YLU1{*avc5stC=H zp9!mU))=V>_qufMR~EQx%=x0!675I>c6Eucw%o$nb!_ zr>LiJN?oY%XH4%AwKf;954P2QfN%WVH>rHnN-j?xNm%&=fPU9RZo4#8+PFB+;Jsx_Q5PiksS$d33=OFC!Q*US&F1e=qRE;flW6uKqK6hiuvYWwknyXGf zU73d3B*`d1_$K8xen4aVi#8^SlIz&-&H)wGJc3|gfT<`L$B@J*|mhBuRmTOlKPis8fAj2-TSp<1p&kYcYJ+CD;{%VR z+1Jjxr3@t+J){Rw2A1zN4qn-+bP>XJb)hfp&~*_H87oH4AYT?!LmNKkH&n%ZHgE|o zJ@}~t9V#v`0g50Q-rXtvKyZm`Xc^DAT!mOWhfDY*E6^regOyUq37jyhcxs_0mzeV) zEP*oKkz?*fP}XU6)-0#XR=Cck7lbFolf9!zzy z0na_EJSgs#ji5Cmyum52dBT7+6WIrX6nPO5p^d`?$*D$-j-&EBE@7%0D0>w`pY&hT zVSDPs43Yb0i*-D$r#$Ve$GS+PL<&<&QweOB_6W@0#U^kO14^ghx4?j6Z%vClx1LN((G{>eG zvjpA=789E(E#iDHBZ+eUa03;C$@jfZ^u&tBKQcV_`>B- zT=cxm!HO~nAp&LFckpTp*qv?fK!J-=xab^0i3mM^@$P9Z(Ywco9@FlT;#gb>15i=f z4$ym=zs0eBZr+(M%xTW}N?q$Qg~5eB6Q%1jwhN$`|6!N~tn0%04*N0&8wpc!?D2wt zxG%<5hV$mi-1Eb_LCUqelAccYKwo-`VuL?oX{+3kLDCwIOEDS-FH>G(eZ$K2*dye2 zCA@>^WVA;)z4GTDW-|8t^=Vfp#(nbL^y9^+Q1LPtLPA;kk_ zNGGwJJ13bxjnYvyp~W77_zQ>AI^@GZU5N-=u`(LIzm}EeQrn!;(UE0Ayy07&CmxS zo)>ZSSgvv?-CS}@CNDNN)7s-L&#RT<*DgbP@$XCQL*DeV9i9HBE=hD9r{&G}4#2zM zG_b8^gg6IT5&W@cdxx1Z7Q3;iw^vHl1I^z*y71=KOr0WUaavaDiqO1fn65xA--mjG zfr}`q*y~t&Sx!%{R=l#8P_f?PK&4cWocP%M;;W!jJiOfZqFJw(^M-_VqH4IJ*T#pS zpBw@P=u>bJ=z)M@p>Cc>0}q|QbIi}8DOF3_HJ_aP92rtuPL=7o6Ln9w&E!gJxZX3T zN8+zJ+cPI!aW7YE@P4;e8O8*CWdzGQU?Z#&P4H7!=_arK>|OPg_~d@qt7>)EA_6GS zyH z{as=4hX-E~vi;hS1N=L#Elu60lI9J7-5Pk3Ql){FTDn>4aKOz;KU(z_Yvzf`8z0~Q ztiAQX;zV#@NdVG5&cIv(&jSM$0X>z`3_;$UcE-a7PZwV1nXoE{V*0NdcK1OC8l~*7 zy=I7zAHjx&1qZn!5A$h{A=-^lB^D0%MHe0Fy=^l!zC|4Kx!&~CF!m^Pf{L(6%rA)J z+aFbJYb;{(`?6i6SKyy{H2{)OSifR0)1+$Y$IpzO|d z$h%*5$6^2wh-JwocXsz#j`Z`33^XsmU+$%MGC~EG^2XUpYWO=h+~}y(?TkUcD~Q%p zwl_Uh^w8%1Z3fJ=iGpX>2GHf!mmM2aEW<>+zJqdD*T*=nj9L+fV&Wy*1uU zv}dJMsP!nmnW2B`PF(ad$}bXm@OBxCmHq&8)?gXdy_|lbV2Vj1R3)uvK1#3LMU$~W zi8&hyvp{uel^tks#fl6EVX&~zggfs|rVf;-3rDQh>_+iCS)0FhaQPCW(^8CrnDB`E zk$g|lYwtejIkS&;Xw>JhP_zm|ZDpNyOQWs9B1pB`HMs(ri%8cW z`0w8Y$3UTlg6SbuPm|WeL$J?%aOIboqiSZKIQXx`4r7->Ik=?wl=tClZVlgYqv9;< z#0?FaJ>ihXgdalgkv5a?^SqE^Qse4y*C+4b%6*#M583iGV%_Iycic2+EVe8c35M>I zJ>e!X>|bMND-Zm(hx?Nw>!1wAs%)KSluDeWTkr03-c`g=c|1PRqTwFGShz;Z@bIN1 z1?V%|e!_{2wvYDFe4d(wEKf(w+cnLOQnkSb@tR5&m$=AV{o_}jIUXxb^~r zNKA!tU$8ojn#ZAMYx3O^RT^xbQdqk{cZI^o_nyJ`8Jey;($ zAUeo(i49kgirf7ePH(pe-F-PaIc^z54WD1_xhh`h#xi*MU9XB>>AR0zyDcg1P#pjG zb19M#fmg;xc7BrJpzpj6DhDQY$v%Dit*5-W<%HG_?1?Jw=XENN%cX*q($tev)Qs-y zI6i8R`O&_R9}Sl=`1)C+hu5SOBjJ+|N*HzZxFrl*RG}vixh@Y_2mZ+wa)*5PXP%msL)f%kN%WpgOzW8u~woskXk<1i`z2YwSzz651 zuR?2JU5=i%j+kXL9Q;tIgE#xdCH>V~`4q^@AK%^6owwLUr*9IM4!J)boIha(k!5s4 z41FvsNp;I*VCWi{*5OjL9qKzLl$mLV?khNRqCL_n^4p}O%aqMvQbXD}Iwh)}u0e%g zZJ}e@tUi2|)s9aq+DNOTQ1&v>2%_k{ z_}sY0>?}gyXdmxpz`OhX04pw@bRb)kXQFYc*z8Bsf>}rluTkks83i5ro+Ps%N3$l~ zE49ZB+26LAcf?&C^_ps#cQkz{ekzQEhE~j)hL(w?ZMvoKwB>p;-YGexKSs%RH6&s8 z{*bEEiK&fDfst{|tZlR{DK?MNBjalAiq(iyAP?|-QflVbzhJ{u0mR32)PrN zuJ6&nTG26Un`HC^9V}(_iq&WT+aJ7E_2P!Bow1~PNf1c+@J5i3w6jlr7pVniL@Eg*J(sLO$N_@{S}Ketr!V6FGj6jsx;)ZtwVEO>1O2 z_S`vcN0MlGvd;lfu;?-$qb48gzGV<^oV21~P|;Fy*AAfAGb^8vPvf(#K%kdXi{!gj#j5Z>Uh}4-+Xp!?bAX+WH0aJ=rI(MR@MsZDyu13=D|0hX3Z$*t46H!ATp7yM(J|`hSP-@Ls z9i%8suY&a{E}PZ6fh*+%3RugtxTU)@Cb0?uheJN>O6-i@)!nw}Qp$1pXvUTCwhm!S zUKbZFe}T3i_s%gbENHdU(f(|(?L=BH&l{>1dEay>m9fo07`2XEeJKvTL@VYP=`Uks zzsfT8)t^rVX&wMaO5hh9)+RbMma;%TwoE5jF4+akzXwv9ab_JcUq3#Zv1(^mR|xpz zVn3zprNOj&n&s{Z&%yrkg9O1BZTS+YV~loB-5GSItk1EuCeEcrnEE9v<$jmbUC>OK zI-4z39C=N zsxQCsdUCWC98a1zxAFs(jnjYqW%!gnj%s7u7SxBd(PP1W&(5 z<=@+QQupq(k*AHJa_K6csMAs1=q|dNk0-Qetk!Ah z6bGKudpW5;FZ524bN+~YTKdzLMf01|FMX{L8d@eSQ>z|(R?5Ach)nSz^^$65(pvHf z9_KB+7_^I9qt%&vE@L7&)^;{%78MnJjQNp$%j4}ilD zU~4__vkz{DN%9^h7CVjcET{+@~*AIju#yBeEiO#jArm7yNqSa++ zuL)Ri*@*W2Xh7|lKIP_69m|1bsyStC6cp354k>Xstpr!dp4P4=w(92=w%=RP_b~p_ zVs%p|!fk{i!gt|l08!p{VR}iG@Ue5q#m^ekI^273VB!#0eNNj^4vVV9E9($FPL7*_ za5~z%!6z@BYW2&A@3yRT1g5oq^?9auQ}aO!Q=L(7)*=)<3$4LoY`yCpA@neP__3lM zA%mUhDe1TGfvf&<4djG2Uus3oy+RPhOr!D<_q^qa+2-KftIsIRVWMK|J%g`EOcyeD zoWKasvGM_I_|}D2-tw-8FKFe>tqlVoHArVE=Z7D`tOk@CdI}#D!6T9! zSNXbK2|oc?)u|vQ;wvE%D47K7f#oXjFiS#rO)&$gp1Tf_kn2DZ#FyRr>(2xqjP2he;3NZZ~#05d*|y z)*+s~aO_)|43D^V2uTb595%y&wRx_|V%u6qrIv4>&NdyoWlxzp66yuXesKb32kWx$ zKlB2BJ}1lpljypqW#8ijHw%3Odhe3dKI`C1q(VIM-yZH)-i84Pa7;xRG{}s+(4DPlS5v6{;TO1 zhWD&SUIx5d;)?#LysyH7SFlnBO z$Ttaod)%YFjd>ba0WQ)-r@vks@zATH5~DQ7GF_(-o2WRV944$1*GhdkzW7GqE7*Dq z-YNbywKyv6WzdsJ|4b$KR)$QAQ@O_n+k^yMQjI@4Hc;>s_908j)lEd<-^RZx+x0dxf>tr55~Ttrc?H>A!;Z`%ko#%}i1N_10Pfnwu!wdo=Ac<~qn zkbx}HI6%i6fI%`9u7J}hNo|;66B;#EhM?0#Q3|7g_v0zx>3JAh5ggj+rU(Rg5QH?g z|LySqD@udMwqx)9=A^ck`RK=I-v5o)SodGk@#dtUHb;bQBVuC?Nwc#|o^EI%VrQ%?%->P-@OPz z^88b`-e_I|>0q*0Z$-R~k2)|xQ?|X*y$KlPba)FPZ>y=_*Tn-|dld0&H2}PX*@O)k zny9Q8=L)u<|8+Z#1}uw{FOykh^DS^WJU(WrnFIrgz1OTZhedJNhF*E8YC~Xxhk|WT62G2#ET>yzyiqK56ZD3$ou)Kj)w$UjFq5{SZ(ge7V0XokSjKMIUQyB*SyEkfP8b+ZG?-m zgZ?5Zt{-rgJCpx>k5$qAPgWum6qVWrD{b)%Nf5-*G^_vS6E6~9Zcx993b_f=Grzf! za&O+~q>_l-IwXoLE>QMVL=%#%Xd=5xVY8LLLok7U~o*St_ZtJ$r-(ejo@tbtVheAs|Uwk@%3m9T#;79Bte6bR`< zn`B%D!fz?7BENRaq0o~=ppC)#duiJuVw;h%|B=6!+sa0>2~M!p{VAmDCz&@Uw+*~$K+~d(y!b;=5uSM7QQm}0x;`+1l7bD<($NuTE+n# zg5`Po;L>+wQ-JGB3m}uU)*%BLL{TS(@QV1t(t44Vc?5A4j!pQQ3p6kvINUk~F!njW z|Nq}j6uHsMD#|g0grz0CICoh<@LE?_BUtpDx$a#zE&v}iL9x_F@*fR}k5G|Zq=~7z zA;}l-OV0TCOU>N>d`$-(tbEfjUi-(0K;`)alfjNfVmP7h7=I|U!` z2h-shDEm+qg9tE$6)lqOS#0voRCjSC8S4lGAw{<9b_vGs0iFJsdbaKF= z!}d;KLk5V|J;1j0hT^S8t}jlRtV3w-t1(RtY=0g8DI2v+a-VOAk%UY2FnQT6*OTFdb`#*CEC0kX4Fwsw4wY8X1j+ z_rVE}HgwYEXFLJ?mLWGD?Jl{)=q#2OO_=Y2>9a?Y+Gkc-lS4?jN30U!mmMB2!3E^ z12}I^fB<$vkMV84#78WL{am9Z!qy?5^;SuhFEqDZ(IWW3$CnuJaB!MgI(gUnn{8JT z)*!%EpMe6!3Q`meCP2G^{Y*ByHdSH;9<$`|_VqF`^anzsUH-0ongk$k5ovM`~6#$yGI2ybjDW zo~|jlXQ~`H;ya~y)tf2A~6YSngG63+T}zRpdUN(GftZOn@4&;6zimnzM=3?z*3K z)HPIy8E1~xh*mR;iTCIA6+!e5Q07c)7OLcy-}Kcy*>G2nqRFcZMT#40H}Cw^K%4-J zf{&PRh~HMo)x6exdb!;1M)h|!EgovUAB3934VT^CU3}Po5q@AG=FG)H2?Ne^Jl}Uh zxmAn4snbGk<$RbmJMT$_A)*c=x<*@1guvfB?~i;SciOI}-L^{cF<#Mk9dh7RBc3)4 zWQxb_G2)+B@S$g5aKgikk8h*5MG22>UgnEOG+1y7R67Hv0z@2r$aYi_$DB zXr0B5^{G5hc4JMvmH-X|eA_Yi2$bWpYKBh}JJ%tK!h7~sq7Q#U9Q53W3rfeI#6FCi zpXxsK zB_m8@5X=@uXWdWx^fvJ@ULnt~>RmnaZu;2ZgWt-YagA#5M?7a3>W>e;ma~$1Nq*8S zSyFd^W)PDCPL-UhDUUWyw@h(++*3(B*!1Iib%cE=Usc=Egj`6VoOo-+4X?XrvkzAc zW_MF9>0!;PCp_5`ac8QLdlzk4Ril~)*Vtprc*8{OlT^UXO8}1F7fgV zI=!GdQu?*QTf6}{35o|j*R}SUg9UTzDV$I^7{uw(W4opy-tAFRG@@91Pv4}~hr)n2 zmEGzC;#t`#Pod7TU7pGv#KXAg;oX@U=R>%njc-&RI(;ekLDBg6fHqM z%>fC0Yh8I8=b3=2$E-2c5hwSUPHqY36n~~f5E=mfWLKAmL zK-=1l9$P)g%j;t`>@ZbY@HjFT%hNl&GxmJ?l#8G5Vy4I*H+%Hw!j|*zd17J`Z+VoY z!P|{LrBL^8%8b4CH;a8=>M9h{ zoHLXh_ql6L@$)_ZCBE`Bod-KBcDQhcmS{XNDu~H)11^(R%fL5ZeEu1`uJKwnn^3jF z!stO1+O&D?C{Cg>_AG8ZX|i7+PfbzdUEaqw`iz8Ay{gu9Zs_a1_7z-ZCoi3mgPu%J zzmv%3&f@Il;EGN83}=<*&A^FNaqP@#&*qJ7vUX37v1E^0;!-^+$798LEY5SLGIw<( zHpUF(Yu!RU)-QzZm!=+4bJasuBlqMLw9WAp2Qal}U)&Ys#C8mRpQ8a3+`8eaNn4p` zFd-hbcGB};30A__o23uufAv`ve4i)G_N|fR1^W*D!h_{44_~~N63l&0i3s1TuEECZ z?@i~)+~R!%ccuo$m>*;#n9XF%@;K0L;mhF7pjqDei=#;+oaRE1TQ@G9@>3b~v{vvM zN+#AU72hhsvP)k$k&yM>?XYe^%WP&|f*p0=bl=gJH!X`CPKX5`(k{Old6rGj#B%8> zhWCLOjLj{qYL&1!_W;jjnQZd8*saj+(tWWT7xh~XR5SN;W^hYCkmHOg$6b3)qg*BI z{nYzwKRb@z7KwU z;*^IQJd6?594A_a+D9W>_~;)hJMR7#If$B*n7KMvafG=>n$CA+MZv2PQ@NxM*7BZ6 zGsU~rR5_%ZTp0FJ`B6ueESBgvxzv%na{R|g@4M3$6@*^+C%SKruieTZcma%que2W8 zA;A4diX-$WR zF4Ck(F9ISRq(+)_NT>lq?r(b+^?BZzXTEu6=9_Qc-|z>?&N*kFopVlhS!-SE;#ww# zCWuxD{ZkA0O&Ml+rZk>vYx-;LQibbXjOP#p#?qeYWMCAwg&!T%0D4+Ym-&+b{J=#z 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 AIu0Ys>9?@WYF4 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
ElFxeW*foWYtUy60?3Z1NX^CQP|p-4ZUBDs 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

ZA-9M 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 D_Y3e~ literal 0 HcmV?d00001 diff --git a/content/docs/images/stripe_discount_paywall_input.svg b/content/docs/images/stripe_discount_paywall_input.svg deleted file mode 100644 index b3ba4172..00000000 --- a/content/docs/images/stripe_discount_paywall_input.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - PLACEHOLDER: screenshot needed - - - stripe_discount_paywall_input.jpg - - - A paywall in the editor of a Stripe web checkout app: a text Input - - - (placeholder like "Promo code") bound to state.discountCode, next to an Apply button. - - diff --git a/content/docs/images/stripe_discount_tap_behavior.svg b/content/docs/images/stripe_discount_tap_behavior.svg deleted file mode 100644 index 6954b228..00000000 --- a/content/docs/images/stripe_discount_tap_behavior.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - PLACEHOLDER: screenshot needed - - - stripe_discount_tap_behavior.jpg - - - The editor with the button selected and Tap Behavior open, showing the - - - Apply Discount action with its code set to {{ state.discountCode }}. - - diff --git a/content/docs/web-checkout/web-checkout-discount-codes.mdx b/content/docs/web-checkout/web-checkout-discount-codes.mdx index ffb80577..ab581418 100644 --- a/content/docs/web-checkout/web-checkout-discount-codes.mdx +++ b/content/docs/web-checkout/web-checkout-discount-codes.mdx @@ -31,26 +31,24 @@ Create the coupon and promotion code in Stripe first. Superwall resolves whateve ## Add discount code redemption to a paywall -You will add a text input for the customer to type into, then a button that redeems whatever they entered. Open the paywall you want to edit in the [paywall editor](/dashboard/dashboard-creating-paywalls/paywall-editor-overview) and follow along. +Open the paywall you want to edit in the [paywall editor](/dashboard/dashboard-creating-paywalls/paywall-editor-overview) and follow along. - - Add an [Input element](/dashboard/dashboard-creating-paywalls/paywall-editor-input-component) where the customer will type their code, and give it a helpful placeholder such as "Promo code". Bind the input to a state variable, for example `state.discountCode`, so the value the customer types is available to the Apply Discount action. - - ![A paywall in the editor with a promo code input bound to state.discountCode and an Apply button](/images/stripe_discount_paywall_input.svg) + + Add an [Input element](/dashboard/dashboard-creating-paywalls/paywall-editor-input-component) where the customer types their code, and give it a placeholder such as "Promo code". There is nothing to configure on the input itself. Its value is automatically available under **Element** in the variable picker. - - Add a button (or reuse an existing one) next to the input. This is the element the customer taps to apply their code. + + Add a button (or reuse an existing one) next to the input. This is what the customer taps to apply the code. - + Select the button and, under [Tap Behavior](/dashboard/dashboard-creating-paywalls/paywall-editor-styling-elements#tap-behaviors), click **+ Add Action**. In the **Purchases** group, choose **Apply Discount**. - - Set the action's **code** to reference the input's state variable using Liquid, for example `{{ state.discountCode }}`. This redeems whatever the customer typed. + + Click the **`<>`** icon at the right edge of the action's **Discount Code** field, then choose your input under **Element**. The editor inserts a reference to the input, so the action redeems whatever the customer typed. - To offer a single fixed promotion instead of customer-entered codes, you can skip the input and set the code to a hardcoded literal such as `LAUNCH20`. Tapping the button then always applies that one code. + ![The paywall editor with the Apply Discount action added and the variable picker open, selecting the promo code input under Element](/images/stripe_discount_apply.jpg) - ![The paywall editor with the button's Tap Behavior open, showing the Apply Discount action with its code set to the state variable](/images/stripe_discount_tap_behavior.svg) + To offer a single fixed promotion instead of customer-entered codes, skip the input and type a literal code such as `LAUNCH20` into the field. Tapping the button then always applies that one code. [Publish](/dashboard/dashboard-creating-paywalls/paywall-editor-publishing) the paywall, then enter a real promotion code to confirm the price updates and the discount carries through to checkout. See [Testing purchases](/web-checkout/web-checkout-testing-purchases) for how to run test checkouts safely.