// use case
Expose your Next.js dev server to Stripe for Stripe webhooks
Reserve a stable subdomain
On the lrok free plan you keep one reserved subdomain forever. Pick a name your Stripe dashboard can hold onto — webhook URLs that survive laptop restarts mean fewer dashboard re-pastes.
$ lrok reserve nex-stripe Reserved https://nex-stripe.lrok.ioRun your Next.js app
Start the dev server on port 3000 (the Next.js default).
$ npm run devTunnel localhost to the public URL
lrok forwards https://nex-stripe.lrok.io/api/webhooks/handler → http://127.0.0.1:3000/api/webhooks/handler. The flag --hint binds your reserved subdomain to this tunnel.
$ lrok http 3000 --hint nex-stripe Forwarding https://nex-stripe.lrok.io -> http://127.0.0.1:3000Paste the URL into Stripe
Developers → Webhooks → Add endpoint. Paste https://nex-stripe.lrok.io/api/webhooks/handler as the destination.
Watch deliveries land in the request inspector
Every webhook Stripe sends shows up at lrok.io/dashboard with full body, headers, status, and latency. Re-deliver any request to your Next.js handler with one click. Verify the Stripe-Signature header against the raw request body — not the parsed JSON. The /tools/webhook-signature-verifier tool catches mismatches in seconds.
// why lrok for this
lrok's reserved subdomain is free and lives forever, so your Stripe stripe webhooks URL never rotates. $9/mo flat for unlimited tunnels — no SSO tax, no enterprise-only signature verification, no bandwidth metering. The request inspector is built in.
Related workflows
- Expose your Django dev server to Stripe for Stripe webhooks
- Expose your Rails dev server to Stripe for Stripe webhooks
- Expose your FastAPI dev server to Stripe for Stripe webhooks
- Expose your Next.js dev server to GitHub for GitHub webhooks
- Expose your Next.js dev server to the OAuth provider for OAuth callback