Repository navigation
Research iOS: offer a plan's larger sizes on the paywall - #1609
Merged
Merged
Conversation
The iOS paywall sells two plans from fixed App Store identifiers. Billing now names the App Store product of each plan it maps, so the paywall can offer a plan it has no card for as a larger size of the plan below it, the way the web pricing page does. The size switch is labelled with the App Store's own prices. Pro and Max keep their fixed identifiers, so the paywall works when the product list cannot be loaded, and a size the App Store does not return is not offered. Co-Authored-By: Claude <noreply@anthropic.com>
AnthonyRonning
force-pushed
the
codex-maxplus-maple-ios
branch
from
November 14, 2026 08:20
fba2a19 to
335d48f
Compare
Contributor
|
Maple development preview: https://5576e21b.maple-ca8.pages.dev Commit: Uses development API, billing, flags and PCR configuration. Cloudflare Access applies. |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #1564, which adds the plan helpers this uses. Review that one first; this PR's diff is the iOS paywall only.
What changes
The iOS paywall sells Pro and Max from two fixed App Store identifiers. The web pricing page (in #1564) already offers any individual plan billing lists that has no card of its own as a larger size of the plan below it. This does the same on iOS.
apple_product_id). A listed plan with such a product and no card of its own becomes a size of the highest plan below it.Behavior that does not change
apple_product_id, the paywall is exactly as before.Validation
The repository's commit hook for Research: format check, lint, type check and the full test suite (1,196 tests, 0 failures). New tests cover the size lookup and its refusals, the product hook requesting and validating sizes, and the switch on the card (picking, buying, a subscriber on the larger size, a pending purchase). Test fixtures use an invented plan.
Not run: the paywall on a device or simulator, a StoreKit purchase of a size, or the page against a billing server that lists one.
🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.