Simple MVP for locking final deliverables behind a Stripe paywall.
- Landing page + create form
- Client paywall page
- Stripe Checkout flow + webhook unlock
- Local file storage or external link delivery
- Install dependencies
npm install
- Configure env
Copy
.env.exampleto.envand set:
STRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRETBASE_URL
- Run the server
npm run dev
Open http://localhost:3000.
Use the Stripe CLI to forward webhooks:
stripe listen --forward-to localhost:3000/api/stripe/webhook
- Files are stored locally in
uploads/. Replace this with S3 or similar for production. db/locks.jsonis a simple JSON store for the MVP.