Complete Go-Live & Stripe Deployment Guide — Follow these steps in order

1 Set Up Stripe Account

Required First

2 Create Your Product in Stripe

In Stripe Dashboard:

💡 Add a product image (your app screenshot) for professional receipts.

3 Get Your API Keys

In Stripe Dashboard → Developers → API keys:

⚠ Never put your sk_live_ secret key in store.html or any public file. Only put it in your server's environment variables.

4 Update store.html With Your Keys

Open store.html and find these two lines near the top of the <script> tag:

var STRIPE_PUBLISHABLE_KEY = 'pk_test_YOUR_KEY_HERE';  ← replace this
var BACKEND_URL = 'https://your-backend.yourdomain.com';  ← replace this
var DEMO_MODE = true;  ← change to false when live

Also find the price reference and update it:

priceId: 'price_YOUR_STRIPE_PRICE_ID'  ← replace with your Price ID

5 Deploy the Backend Server

Easiest: Railway.app

Option A — Railway (recommended, free to start):

Option B — Manual (any server/VPS):

cd stripe-backend
npm install
cp .env.example .env
nano .env        # fill in your real keys
npm start

6 Fill in Your .env File

STRIPE_SECRET_KEY=sk_live_YOUR_SECRET_KEY
STRIPE_PUBLISHABLE_KEY=pk_live_YOUR_PUBLISHABLE_KEY
STRIPE_PRICE_LIFETIME=price_YOUR_PRICE_ID
STRIPE_WEBHOOK_SECRET=whsec_YOUR_WEBHOOK_SECRET
FRONTEND_URL=https://yourdomain.com
PORT=4000

7 Set Up Stripe Webhook

In Stripe Dashboard → Developers → Webhooks → Add endpoint:

💡 The webhook fires when a payment succeeds — this is where you send the customer their access email/login.

8 Publish store.html on Your Domain

Option A — Netlify (free, drag & drop):

Option B — Your existing domain host:

⚠ Stripe requires HTTPS. Make sure your domain has an SSL certificate (all modern hosts provide this free with Let's Encrypt).

9 Set DEMO_MODE = false

Critical Before Launch

In store.html, change:

var DEMO_MODE = true;

to:

var DEMO_MODE = false;

This switches the payment button from demo mode (fake success after 2 seconds) to real Stripe card charging.

✅ Pre-Launch Checklist

👑 After Launch

When a customer pays, the payment_intent.succeeded webhook fires. In server.js you'll see the TODO comment — this is where you:

💡 Stripe also auto-sends a payment receipt to the customer's email — no extra work needed for that part.

PDF Trend Lab — Deployment Guide — 2026