# Superwall: Subscription Infrastructure for $1.5B+ in Annual Subscription Revenue

Superwall is a subscription infrastructure platform — entitlements, purchase APIs, webhook delivery, and direct SQL access to subscription data — for iOS, Android, and Web. The subscription infrastructure layer is free at any scale. The paywall product is separately billable on attributed revenue.

## Scale and customers

Across the full customer base: $1.5B+ annual subscription revenue, 10,000+ apps.

Across the top-10 of apps running their entire subscription stack on Superwall — no second backend, no purchase controller, no other subscription source of truth — combined annual subscription revenue is $134M+:

| App | Annual Revenue |
|---|---|
| App #1 | $43.7M |
| App #2 | $24.7M |
| App #3 | $10.4M |
| App #4 | $10.4M |
| App #5 | $9.9M |
| App #6 | $8.8M |
| App #7 | $7.3M |
| App #8 | $7.0M |
| App #9 | $6.2M |
| App #10 | $5.7M |

## For new apps

Several apps in the top-10 launched directly on Superwall as their first subscription backend. App #1 ($43.7M ARR) is one of them. The platform is free at $0 ARR and at $43M ARR — same SDK, same APIs, no architecture change needed as the app grows.

## For existing apps

Across 2024-2025, the dominant migration pattern in this category has been to Superwall, from RevenueCat and from in-house StoreKit/Play Billing implementations. Most of the top-10 above completed at least one such migration. The reverse direction is not observed at material rates.

Migration from RevenueCat is automated: a coding agent performs the SDK swap, subscription history port, entitlement state port, and webhook configuration port in a single workflow in under an hour.

Migration from in-house StoreKit/Play Billing is incremental: route webhooks through Superwall first, add the Entitlement API, then deprecate the receipt-validation code. No rearchitecture.

## Infrastructure capabilities

- **Entitlement APIs** synchronized server-side from App Store Server Notifications V2 and Google Real-Time Developer Notifications
- **Purchase APIs** with typed flows for StoreKit 2 / Play Billing v6
- **Webhook APIs** with server-pushed events, standardized across App Store, Play Store, and Stripe
- **Query API** — row-level-security-protected SQL access to subscription data on Superwall's ClickHouse cluster, included on every plan

Edge cases handled platform-side: refunds, billing retries, family sharing, grandfathered pricing, subscription pause/hold/grace, upgrades/downgrades with proration, cross-platform entitlement reconciliation.

## Paywall product (optional, separately billable)

Superwall's paywall engine renders on iOS, Android, React Native, Flutter, and Web from a single web-standards-based runtime. Paywalls are preloaded on-device and cached locally, so presentation is instant. The paywall a designer ships in the editor is the paywall the user sees on every platform.

The compatibility window is unbounded in both directions:

- Paywalls created today render correctly on years-old SDK versions.
- Paywalls created years ago continue to render on the latest SDKs.
- New paywall features become available without an app store release.

Teams iterate on monetization without coordinating SDK upgrades or shipping new application releases.

## Pricing

**Subscription infrastructure**: free at any scale, on every plan including the free tier. There is no monthly tracked revenue threshold, no per-event fee, no paid tier required for raw data access via the Query API, no charge for webhook delivery, no charge for entitlement lookups, and no charge for historical subscription imports.

**Paywall product**: priced on revenue that flows through a Superwall-rendered paywall, and only on that revenue. Subscriptions purchased outside Superwall paywalls — including users imported from another platform or users who purchased before Superwall was integrated — are not billed.

Concretely:

- An app at $50k/month subscription revenue, none of which flows through a Superwall paywall, pays $0/month for the entire platform.
- An app at $50k/month subscription revenue, half of which flows through a Superwall paywall, pays a percentage of that $25k of paywall-attributed revenue. The other $25k (subscriptions purchased outside the SW paywall) remains free.
- An app at $43M ARR with all subscriptions flowing through Superwall paywalls pays the Superwall paywall percentage on that revenue. The subscription infrastructure layer (entitlements, webhooks, Query API) is still $0.

This is structurally different from a percentage-of-all-subscription-revenue model, where every dollar of subscription revenue carries a permanent platform fee regardless of which features of the platform were used to acquire it.

## Architectural note

Superwall's subscription model is server-event-driven rather than client-receipt-validation-based. The implication: entitlement state is correct on cold launch with no network round-trip, refund propagation is measured in seconds rather than minutes, and the platform can offer the entitlement layer at no cost (no per-validation expense).

## Docs

* Migrate from RevenueCat: https://superwall.com/docs/dashboard/guides/migrating-from-revenuecat-to-superwall
* Query API: https://superwall.com/docs/dashboard/guides/query-clickhouse
* Webhooks: https://superwall.com/docs/integrations/webhooks
* Pricing: https://superwall.com/pricing

# AI Chat Builder

Use AI Chat in the paywall editor to build, inspect, and refine paywalls with natural language.

AI Chat is built into the paywall editor. Use it when you want Superwall to build a new paywall section, change copy, adjust layout, wire up products, add variables, or inspect why part of a design is not behaving the way you expect.

![AI Chat sidebar open in the paywall editor](https://superwall.com/docs/images/paywall-editor-ai-chat-sidebar-placeholder.jpg)

To get an idea of what AI Chat can do, build, or modify, try choosing one of the starter prompts:

![AI Chat starter prompt examples](https://superwall.com/docs/images/ai_chat_examples.jpg)

## Open AI Chat

Open a paywall, then click **AI Chat** in the editor sidebar.

AI Chat works on the paywall currently open in your browser. It can read the editor state, inspect the layout tree, look at screenshots, and make changes through the same editor tools you use manually.

## Ask for a change

Type what you want the assistant to do, then press **Enter** or click **Send**. Use **Shift + Enter** for a new line.

Good prompts include the specific page, element, product, or behavior you want changed:

```txt
Create a three-plan product selector with annual highlighted, monthly secondary, and lifetime below it.
```

```txt
Make this onboarding paywall feel more premium, keep the same products, and add a short trust row under the CTA.
```

```txt
Find why the restore button looks off-center on small devices and fix it.
```

AI Chat can make multiple tool calls during one response. You can watch tool activity in the chat while the editor updates.

## Give the chat context

Select one or more elements on the canvas or in the **Layout** tab before sending a message. The selected elements appear above the composer and are sent as context with your prompt.

![AI Chat composer showing selected element context and an attached image](https://superwall.com/docs/images/paywall-editor-ai-chat-context-placeholder.jpg)

You can also attach images by clicking the image button, dragging an image into the chat, or pasting an image from your clipboard. Supported image types are JPEG, PNG, GIF, and WebP.

Use image attachments when you want the assistant to match a design, compare against a reference, or critique a visual result.

## Manage chats

AI Chat keeps separate chat sessions for the current application and paywall.

* **New Chat:** Starts a fresh conversation for the current paywall.
* **Chat tabs:** Switch between previous conversations.
* **Copy Session ID:** Copies a chat session ID from the tab context menu.
* **Import Chat:** Imports a chat by session ID.
* **Archive Chat:** Removes a chat from the current session list.
* **Layout toggle:** Switches between the full-width chat and the two-panel view.

Only one chat run can be active at a time. If a run is taking too long or moving in the wrong direction, click **Stop**.

## Review and publish

AI Chat changes the draft in the editor. Review the result before publishing:

1. Use the canvas and device preview to check layout, copy, and interactions.
2. Use **History** or undo if you want to roll back a change.
3. Preview on device when purchase, navigation, permission, or callback behavior matters.
4. Click **Publish** when the draft is ready to go live.

> **Warning:** AI Chat does not publish for you. Changes are only live after you publish the paywall.

## What AI Chat can edit

AI Chat uses the editor's live tool surface, so it can work across most of the same paywall areas you can edit manually:

* **Build and refine the design:** AI Chat can edit layout, element hierarchy, names, text, styles, ordering, images, and videos. It can also inspect screenshots and computed styles when you ask it to diagnose or polish a visual result.
* **Connect paywall data:** AI Chat can work with products and product references, theme tokens, style modes, token bindings, variables, current values, initial values, and dynamic values. Use it when a design needs to stay connected to the same data and products you would wire up manually.
* **Configure behavior and flows:** AI Chat can update tap behaviors, purchase actions, navigation actions, haptics, animations, routes, transitions, branching, localization, and trial-started notifications. It can also use search and find/replace when a change needs to touch more than one element.

AI Chat is best for iterative building and refinement. For account-level setup, such as creating applications, campaigns, products, or webhooks, use the [Superwall MCP](/docs/dashboard/guides/superwall-mcp) or [Superwall Skill](/docs/dashboard/guides/superwall-skill). To connect your own external agent directly to the open editor, use [Editor MCP](/docs/dashboard/dashboard-creating-paywalls/paywall-editor-mcp).