subscription-manager

Manage in-app subscription states and feature gating via RevenueCat.

32|10|Updated Feb 21, 2026
One-click install
npx skills add https://github.com/moasq/nanowave --skill subscription-manager
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: subscription-manager
Source: https://github.com/moasq/nanowave/tree/main/internal/orchestration/skills/features/subscription-manager
Command: npx skills add https://github.com/moasq/nanowave --skill subscription-manager

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides a robust architecture for managing in-app subscriptions, credit balances, and feature gating, ensuring a smooth and consistent user experience across your application.

Core Features & Use Cases

  • Subscription State Management: Tracks user subscription status (premium/free) using RevenueCat.
  • Credit Balance: Manages and displays user credit balances.
  • Feature Gating: Enables or disables features based on subscription status or available credits.
  • Use Case: Implement a premium content paywall where access is granted only to users with an active subscription managed by this Skill.

Quick Start

Configure the SubscriptionManager with your RevenueCat API key and entitlement ID.

Frequently Asked Questions about subscription-manager

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I manage in-app subscription states and credit balances in Swift?

You can manage in-app subscription states and credit balances by using an @Observable SubscriptionManager class that wraps Purchases.shared to track premium status and handle feature gating.

How does feature gating work with RevenueCat and StoreKit?

Feature gating with RevenueCat works by checking user subscription status or available credits, enabling or disabling specific app features based on the active entitlement ID fetched dynamically from StoreKit.

How do I prevent hardcoded pricing when implementing in-app purchases?

To prevent hardcoded pricing, you fetch prices dynamically from StoreKit through the RevenueCat integration, avoiding custom plan models and ensuring package prices load directly from the store configuration.

Do I need a RevenueCat API key to track in-app subscription status?

Yes, you need a RevenueCat API key and an entitlement ID to configure the SubscriptionManager, which is required to load packages, process purchases, and track premium or free subscription states.

What is the best way to architecture an app for subscriptions and credits?

The best way to architecture subscriptions and credits is using a singleton @Observable class to consistently manage package loading, purchasing, and status updates across your entire application.

Why should I not use custom plan models for in-app subscriptions?

You should not use custom plan models because they bypass dynamic price fetching from StoreKit, which breaks consistency and risks displaying incorrect pricing across your subscription management implementation.