Skip to content

Goodspeed is in closed beta. Enter your email and we check your invite on the spot: invited accounts start free today, and everyone else joins the waitlist in one click. Get started

Skip to content
Goodspeed

Connect RevenueCat to your Goodspeed app

In-app purchase and subscription management for iOS and Android: offerings, paywalls, and restore all wired at generation time. Goodspeed wires RevenueCat into every app that needs it at generation time, so you start with a working integration, not a blank config and a documentation tab.

WHAT GETS WIRED IN

Built into every RevenueCat build

Every app Goodspeed generates with RevenueCat includes these wired integrations from the first build. No manual setup required.

ItemDescriptionStrength
Configured on first launchPurchases.configure() runs at app start with the correct iOS or Android key read from gas.config.ts.Payments
One identity across toolsidentifyRevenueCatUser() runs alongside the analytics identify call on every login and signup, so purchase and behaviour data line up.Payments
Cached offeringsgetOfferings() holds its result for five minutes, so opening the paywall twice does not mean two network round trips.Payments
Purchases with a full error surfacepurchasePackage() and purchaseProduct() hand every failure state back to the paywall rather than swallowing it.Payments
Restore after a reinstallrestorePurchases() is reachable from settings, so a new device or a reinstall does not cost someone what they already paid for.Payments
Live entitlement checksgetCustomerInfo() is read wherever a premium gate appears, so access reflects the current subscription rather than a cached guess.Payments

Source: the Goodspeed app foundation · payments/subscriptions

REAL GENERATED CODE

A snippet from a RevenueCat integration the pipeline ships

This pattern is lifted from the engineered plumbing that ships inside every Goodspeed app. The studio generates RevenueCat integration code like this for every app that includes it, not a placeholder you have to fill in yourself.

  1. Conditional IAP init

    // lib/revenuecat.ts
    export async function initRevenueCat(): Promise<void> {
      if (isWeb || !Purchases) return;
      if (!gasConfig.features.inAppPurchases.enabled) return;
      const apiKey = Platform.OS === 'ios'
        ? gasConfig.backend.revenuecat.iosKey
        : gasConfig.backend.revenuecat.androidKey;
      if (!apiKey) return;
      await Purchases.configure({ apiKey });
    }
GDaily Allergens

Today's log

Gluten
Tree nuts
Shellfish
Dairy
HomeScanLogProfile

START WITH REVENUECAT

Your RevenueCat integration, generated