stripe-subscription

majiayu000's avatarfrom majiayu000

Stripe Checkout for recurring subscriptions with Customer Portal. Auto-creates plans if not configured.

⭐5stars🔀1forks📁View on GitHub🕐Updated Jan 11, 2026

When & Why to Use This Skill

This Claude skill enables seamless integration with Stripe to manage recurring subscriptions and billing cycles. It automates the creation of subscription plans and provides a ready-to-use Customer Portal, allowing businesses to implement a robust payment infrastructure with minimal manual configuration. Built on Express.js, it supports rapid deployment to platforms like Vercel and Netlify, making it an essential tool for developers looking to monetize SaaS products quickly.

Use Cases

  • SaaS Subscription Launch: Rapidly deploy a multi-tier billing system (e.g., Starter and Pro plans) for new software products using automated plan creation.
  • Self-Service Billing Management: Provide customers with a secure portal to update payment methods, switch subscription tiers, or cancel plans without manual support intervention.
  • Serverless Payment Backend: Deploy a production-ready Stripe integration to Vercel or Netlify using the included serverless API wrappers and configuration templates.
  • Automated Revenue Operations: Streamline the checkout process for recurring services, ensuring that pricing plans are synchronized between the application and the Stripe dashboard.
namestripe-subscription
descriptionStripe Checkout for recurring subscriptions with Customer Portal. Auto-creates plans if not configured.

Stripe Subscription

Stripe Checkout integration for recurring subscriptions with Customer Portal. No webhook configuration required.

Tech Stack

  • Backend: Express.js
  • Payments: Stripe Checkout + Customer Portal
  • Language: JavaScript
  • Package Manager: npm
  • Port: 4242

Setup

1. Clone the Template

git clone --depth 1 https://github.com/Eng0AI/stripe-subscription.git .

If the directory is not empty:

git clone --depth 1 https://github.com/Eng0AI/stripe-subscription.git _temp_template
mv _temp_template/* _temp_template/.* . 2>/dev/null || true
rm -rf _temp_template

2. Remove Git History (Optional)

rm -rf .git
git init

3. Install Dependencies

npm install

4. Setup Environment Variables

cp .env.example .env

Required:

  • STRIPE_SECRET_KEY - Your Stripe secret key (sk_test_xxx)
  • STRIPE_PUBLISHABLE_KEY - Your Stripe publishable key (pk_test_xxx)

Optional (auto-created if not set):

  • BASIC_PRICE - Price ID for Starter plan ($12/month default)
  • PRO_PRICE - Price ID for Professional plan ($18/month default)

5. Start the Server

npm start

Server runs at http://localhost:4242. If price IDs are not set, it auto-creates subscription plans.

Deploy to Vercel

Step 1: Create Serverless API Wrapper

Create api/index.js with the Stripe subscription logic (see full deploy guide).

Step 2: Create Vercel Config

Create vercel.json:

{
  "version": 2,
  "buildCommand": "",
  "outputDirectory": "client/html",
  "rewrites": [
    { "source": "/config", "destination": "/api" },
    { "source": "/checkout-session", "destination": "/api" },
    { "source": "/create-checkout-session", "destination": "/api" },
    { "source": "/customer-portal", "destination": "/api" }
  ]
}

Step 3: Set Environment Variables

printf "YOUR_SECRET_KEY" | vercel env add STRIPE_SECRET_KEY production -t $VERCEL_TOKEN
printf "YOUR_PUBLISHABLE_KEY" | vercel env add STRIPE_PUBLISHABLE_KEY production -t $VERCEL_TOKEN

Step 4: Deploy

vercel --prod -t $VERCEL_TOKEN --yes

Deploy to Netlify

Create netlify/functions/api.js and netlify.toml with similar configuration, then:

netlify deploy --prod

Testing

Use test card numbers:

  • Success: 4242 4242 4242 4242
  • Decline: 4000 0000 0000 0002

Customer Portal Configuration

Before going live, configure at Stripe Dashboard > Settings > Billing > Customer Portal:

  • Enable: Update payment method, Cancel subscription, Switch plans

Going Live

  1. Replace test keys with live keys (sk_live_/pk_live_)
  2. Create subscription products in Stripe Dashboard Live mode
  3. Complete Stripe account verification (KYC)
  4. Configure Customer Portal for live mode
  5. Test with a real subscription