
Stripe Subscription
- 58 installs
- 15 repo stars
- Updated June 16, 2026
- eng0ai/eng0-template-skills
Implement subscription billing with Stripe.
About
Stripe subscription template for recurring billing. Use to launch subscription products.
- Stripe subscriptions
- Recurring billing
Stripe Subscription by the numbers
- 58 all-time installs (skills.sh)
- Ranked #3,178 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
- Data as of Jul 30, 2026 (Skillselion catalog sync)
npx skills add https://github.com/eng0ai/eng0-template-skills --skill stripe-subscriptionAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 58 |
|---|---|
| repo stars | ★ 15 |
| Last updated | June 16, 2026 |
| Repository | eng0ai/eng0-template-skills ↗ |
What it does
Implement subscription billing with Stripe.
Files
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_template2. Remove Git History (Optional)
rm -rf .git
git init3. Install Dependencies
npm install4. Setup Environment Variables
cp .env.example .envRequired:
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 startServer 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_TOKENStep 4: Deploy
vercel --prod -t $VERCEL_TOKEN --yesDeploy to Netlify
Create netlify/functions/api.js and netlify.toml with similar configuration, then:
netlify deploy --prodTesting
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