Remove Ko-fi and Discord memberships in-app to reduce confusion

Merged
UT
1d ago
+651-99

Membership prompts no longer send people to Ko-fi or the Discord shop. Every pitch, the AI debug paywall and the Settings row open an in-app plan picker instead.

Play installs (installer is the Play Store): the picker shows Play's local prices and buys through Google Play Billing via the RevenueCat SDK. After the purchase the app asks the buyer to sign in so the plan lands on their GameNative account; RevenueCat merges the anonymous purchase into the account id and the worker records a play entitlement.

Everything else: Stripe Checkout. A signed-out user can pay first; the checkout carries a device sign-in code and Stripe's success page is our sign-in page for that code, so whichever account signs in there gets the subscription. Signed-in users get the existing checkout.

Also:

  • Pitches stop once any paid tier is active, and wait for the account tier to load on cold start.
  • Account settings describe Play plans and link to Play's subscription page.
  • The Ko-fi and Discord buy buttons and strings are gone in all locales; Discord linking and the Ko-fi email claim for existing members are untouched.

Worker side is utkarshdalal/gamenative-cloudflare-workers#59 (merged, deployed). RevenueCat project, Play products and the Pub/Sub topic exist.

Tested on the Odin 3 (Stripe guest + signed-in flows, real payment attached to the account) and on a Samsung Fold (Play purchase with the license-tester card, RevenueCat receipt, sign-in link).

The versionCode bump to 25 is deliberately not in here; see the follow-up PR.


Summary by cubic

Membership prompts no longer send people to Ko-fi or the Discord shop. Every pitch, the AI debug paywall and the Settings row now open an in-app plan picker instead.

Behavior

  • On Play installs the picker shows Play's local prices and buys through Google Play Billing via RevenueCat; after the purchase the app asks the buyer to sign in so the plan lands on their GameNative account.
  • Everywhere else users check out through Stripe. Signed-out users can pay first; the checkout carries a device sign-in code and the Stripe success page doubles as the sign-in page for that code.
  • Pitches stop once any paid tier is active and wait for the account tier to load on cold start.
  • Account settings describe Play plans and link to Play's subscription page.
  • Ko-fi and Discord buy buttons and strings are removed in all locales; Discord linking and the Ko-fi email claim for existing members are untouched.
  • The worker side is utkarshdalal/gamenative-cloudflare-workers#59 (merged, deployed); the RevenueCat project, Play products and Pub/Sub topic already exist. The versionCode bump to 25 is deliberately left for the follow-up PR.

Summary by CodeRabbit

  • New Features

    • Added Basic and Pro membership plans with Google Play purchases, plan pricing, and subscription management.
    • Added guest checkout for users without Google Play billing, with sign-in support to connect a purchase to an account.
    • Added membership status, plan availability, and checkout updates, with localized messaging across supported languages.
  • Bug Fixes

    • Membership status now syncs with the account during sign-in and sign-out.
  • Changes

    • Removed Ko-fi and Discord subscription options from support and debug paywall screens.