Appearance
Mobile PR: https://github.com/snag-tcg/poc-tcg-collector/pull/641
Release Switch
The centralized flag lives in src/config/release.ts in the mobile repository:
ts
export const isBeta = true;With this flag enabled, selected closed-beta testers do not see the shared PRO badge (including Explorer, Collection and portfolio headers), Home upgrade banner, Profile subscription menu/upgrade link, or PRO referral promotion. Navigation push and replace actions targeting paywall, subscription or referral leave the current screen unchanged, so purchase discovery effects on those screens are not mounted through app navigation.
No subscription UI or purchase service was removed. Colours, collection data, account access and scan functionality are unchanged. This is frontend-only; it does not grant PRO, change server quotas or bypass authorization.
Re-enable After Beta
- Set
isBetatofalsein the same file. - Run lint, typecheck and Jest, then review the change through a staging PR.
- Rebuild/rebundle and distribute the frontend. This is not a remotely toggled preference, so already-distributed builds do not change by themselves.
- Verify the existing PRO offers, subscription route and purchase/restore flows on the target platform with valid store configuration and account linkage.
The retained Maestro Home, Profile upgrade and referral flows default to IS_BETA=true. For a non-beta build, pass -e IS_BETA=false; the parameter must match the flag compiled into the installed application. It does not toggle the app's release flag.
Verification And Limits
Jest covers both flag states, hidden promotions with a free-plan fixture, blocked monetization routes and unaffected account/collection/scan navigation. Existing post-beta Profile journeys remain covered with beta disabled in that suite. Lint and typecheck passed. Jest passed 241 suites and 2345 tests; 2 suites and 11 tests were skipped. The Android debug app loaded this branch's Metro bundle on Pixel 9 Pro and rendered Home without PRO; emulator user data was preserved. Maestro could not run because the executable is unavailable. iOS and complete automated native E2E coverage still need validation before distribution.
No backend deployment, native configuration, dependency change or promotion to main is included. The mobile changelog also documents the switch and its scope.