Instant secure previews
for localhost apps.
Expose your local app with a public HTTPS URL, inspect incoming requests, and debug webhooks without deploying to staging.
- Stripe
- GitHub
- Shopify
- Twilio
- Slack
- Discord
Integration examples only — not affiliated with or endorsed by these providers.
Local development should not require staging deploys.
Every deploy cycle slows you down. PortPreview eliminates the gap.
Webhooks can't reach localhost
Stripe, GitHub, and other services cannot call 127.0.0.1. You need a public URL to receive callbacks.
Clients can't preview your work
Sharing a localhost URL is useless. Staging adds friction between code and feedback.
Mobile testing is painful
localhost does not work on phones. Every mobile preview requires a deploy or complex VPN setup.
Debugging has no history
When a webhook fails, you have no request log. You are debugging in the dark without inspection.
One tunnel. Full request visibility.
Every feature designed for webhook-heavy development workflows.
Public HTTPS URL for localhost
Get a secure public URL that forwards to your local server. No DNS, no SSL setup, no reverse proxy.
Webhook request inspector
View every incoming request: method, headers, body, timing. Inspect exactly what external services send your app.
Replay captured requests Pro
Resend any captured request to your local server. Test how your app handles the exact same payload repeatedly.
Copy requests as cURL
One-click copy any request as a cURL command. Replay from your terminal, add to tests, or share with your team.
Password-protected previews Planned
Protect your preview URLs with a password. Share only with authorized clients or team members.
Reserved subdomains Pro
Claim a permanent subdomain like <code>myapp.portpreview.dev</code>. Your preview URL stays the same every session.
Team sharing Planned
Share tunnels and request history with your team. Collaborate on webhook debugging in real time.
Outbound WebSocket. Zero config.
No router changes, no firewall rules, no public IP required.
The CLI opens an outbound WebSocket connection, so no router or firewall configuration is required. Traffic is encrypted end-to-end between the gateway and your local machine.
Built for webhook-heavy development.
Works with any service that sends HTTP callbacks.
{
"id": "evt_3Lm2NnF8Zq",
"type": "payment_intent.succeeded",
"data": {
"object": {
"id": "pi_3Lm2NnF8Zq",
"amount": 2999,
"currency": "usd",
"status": "succeeded"
}
}
}POST /webhooks/stripe HTTP/1.1
Content-Type: application/json
User-Agent: Stripe/1.0
Stripe-Signature: t=1625000000,v1=abc123...
{"id":"evt_3Lm2NnF8Zq","type":"payment_intent.succeeded"}From local to live in one command.
Test Stripe webhooks locally
Point your Stripe webhook endpoint to your PortPreview URL and receive events in real time.
Share localhost with a client
Generate a public URL and send it to your client. They see your work-in-progress instantly.
Open local app on mobile
Visit your public URL on any phone or tablet. Test responsive layouts and mobile interactions.
Debug API callbacks
Inspect every callback your API receives. See headers, payloads, and timing for each request.
Skip temporary staging deploys
Eliminate throwaway deploys for quick reviews. Preview directly from your local environment.
QA local builds before release
Give QA a public URL to test your local build before merging. Catch issues early.
Open-source client. Hosted cloud.
Open-source
- CLI client
- Local forwarding agent
- Protocol types
- Examples
Hosted cloud
- Gateway
- Dashboard
- Request history
- Replay
- Teams
- Billing
- Abuse protection
The CLI client is open-source so developers can verify it only proxies the selected local port and does not read files, environment variables, or secrets.
Different from the tunnels you know.
Quick context on where PortPreview fits.
Closer alternative. We focus on the webhook dev loop with capture and replay built in.
Read the comparisonDifferent problem. Cloudflare is for keeping services online; we are for the dev loop.
Read the comparisonLighter open-source option. Useful for quick exposure but no request history or replay.
Read the comparisonProduct names mentioned are trademarks of their respective owners. We are not affiliated with or endorsed by them unless stated otherwise.
Simple pricing. No surprises.
- 1 active tunnel
- Random subdomain
- Last 20 requests
- 2-hour sessions
- No login required
For solo developers
- Everything in Free, plus:
- Reserved subdomain
- Longer sessions
- Request replay
- Extended request history
Per user, min 3 seats
- Everything in Pro, plus:
- Shared tunnels
- Team workspace
- Access control
- Audit logs
Pro and Team are free for your first 6 months of usage. No credit card required. We notify you before billing starts — cancel anytime.
Pricing questions
When does Pro billing start?
After your first 6 months on Pro. We notify you at least 14 days before billing starts, and you can cancel before it does.
What counts as a session?
A session is one CLI run. Closing the CLI ends the session. Free sessions auto-expire after 2 hours; Pro sessions stay open as long as the CLI runs.
Can I switch plans later?
Yes. Upgrades take effect immediately, downgrades at the end of your billing cycle. Your reserved subdomain and request history are preserved across plan changes.
Do you offer refunds?
If you are unhappy in the first 30 days after Pro launches, we refund the full amount. Just email us.
How is this different from ngrok or Cloudflare Tunnel?
We focus on the webhook dev loop: capture, inspect, and replay each request without re-triggering events. See our comparison articles for the full breakdown.
Common questions.
Is the CLI really open source?
Yes. The CLI is Apache-2.0-licensed and the source is on GitHub. You can audit exactly what it does — proxy the selected local port, nothing else. It does not read files, environment variables, or secrets.
How is this different from ngrok?
PortPreview optimizes for webhook debugging: every incoming request is captured with full headers, body, and timing, and you can replay any of them against your local handler in one click. ngrok works, but capture and replay are paid features or require external tools.
Does my tunnel URL stay the same between sessions?
Free tunnels get a random subdomain each session. Pro plans include reserved subdomains, so URLs like myapp.portpreview.dev stay the same forever — useful for webhook configurations you only want to set up once.
What ports and protocols are supported?
Any HTTP/HTTPS port. WebSocket upgrades are forwarded correctly, so realtime apps, HMR, and signed-event services all work without extra config.
Is it safe to expose my localhost to the internet?
The tunnel only forwards traffic to the specific local port you pick. Nothing else on your machine is reachable. Planned Pro features include password protection and access controls for extra peace of mind.
When does PortPreview launch publicly?
We are running an open early-access program now. Join the waitlist for an invite — most signups get access within a few days.
Start with one command.
By submitting, you agree to our Privacy Policy and consent to us storing your email for this request.