No payments
The "No payments" option of the ReadyNative Expo template: payments.useEntitlements() shim returns none.
Expo Go: yes
Runs in Expo Go; no dev build needed for this module.
This is the no-op payments option: no paywall, no store products, no billing SDK. It owns src/lib/payments.ts as a re-export of the core shim, so @/lib/payments keeps the same API whichever option you pick - payments.useEntitlements() reports no entitlements, restorePurchases() resolves, and presentPaywall is undefined. Pick this while the app is free, or until you know which billing service you want.
Setup
bun run setup --payments noneThere's nothing to configure and no keys to paste. Nothing native is installed either, so the app still runs in Expo Go.
When you're ready to charge, switch with bun run setup --payments revenuecat, --payments adapty or --payments stripe.
Usage
The calls exist and are safe to write today, so screens don't need rewriting when you switch:
import { payments } from "@/lib/payments";
const { active, loading } = payments.useEntitlements(); // always { active: [], loading: false }
await payments.presentPaywall?.(); // presentPaywall is undefined here, so this is a no-op
await payments.restorePurchases(); // resolves, does nothingGotchas
- Keep the
?.onpresentPaywall. It's optional in the contract precisely because this option doesn't provide one. - Any feature gated on an entitlement stays locked while this option is selected, since
activeis always empty.
Reference
Everything below is generated from modules/payments/none/module.json - the same file bun run setup reads, so it is what actually lands in your repo.
Install
bun run setup --payments noneModule id: payments/none.
Files
1 files copied to the project root
src/lib/payments.ts