BemMeQuer migrated six in-app products off SuperwallKit to CashSDK with zero entitlement regressions.
“Our coding agent ran the whole migration on the same MCP surface our customers use. Seven days of shadow mode, zero diffs, and nobody lost access.”
- 0
- products migrated
- 0
- entitlement regressions
- 0-day
- zero-diff shadow bake
- 0
- Apple-side config change
The challenge
A paywall vendor held entitlement truth across six BemMeQuer products and took a revenue share on every one. Migrating six live in-app purchases meant any wrong move could lock paying users out of premium, select, and third-tier features — so the migration's first principle was zero entitlement regressions.
The solution
The cutover ran in shadow mode, executed agentically on the same J1 MCP/CLI surface external customers use: catalog sync pulled in all six products, tiers were mapped to the existing plus/supreme/alist ranks, the Apple server-notification URL cut over to CashSDK, and a nightly shadow-diff comparator checked CashSDK's entitlement against the legacy source for every user. Every phase stayed reversible right up to the iOS SDK swap.
The outcome
The comparator hit zero diffs for seven consecutive days — the gate to proceed — with zero entitlement regressions and exactly one Apple-side configuration change. Purchase validation and outbound webhooks now flow through CashSDK, and SuperwallKit came out of Package.swift entirely.
The purchase moment
The same paywall, now served by CashSDK
After the SDK swap, the onboarding paywall renders through CashSDK with the same tiers and copy — purchase validation and entitlements resolve server-side, and every transaction lands in BemMeQuer’s own records. This screen is rendered from our own components, not a screenshot.
Unlock Pro Coaching
More customer stories
Own the moment you get paid.
Wire paywalls, purchase validation, and revenue data with one SDK — and keep every record.