FeaturesGuidesBlogDocumentationPricingGet Started
Getting Started

Simple Tunnel vs Production Ingress — When LocalToLink Fits

Development tunnels and production ingress solve different problems. Use the simplest tool that meets your requirements.

Two different jobs

Development tunnels give you a temporary public HTTPS URL pointing at localhost. Goal: speed. Webhook test, client preview, OAuth callback — done in minutes.

Production ingress routes real user traffic through infrastructure with WAF, DDoS protection, custom domains, and uptime guarantees.

Using production ingress for a 30-minute webhook test is overkill. Using a dev tunnel for production traffic is unsafe.

When a simple tunnel fits

npx localtolink
ScenarioSimple tunnel
Stripe webhook test todayYes
OAuth callback during feature workYes
30-minute client previewYes
Mobile layout check via QRYes
Permanent staging URLNo
Production API behind WAFNo
Custom domain on your zoneNo

When you need production ingress

Move to proper infrastructure when you need:

Cloudflare Tunnel, Kubernetes ingress, or your cloud provider's load balancer belong here — not a 2-hour anonymous dev session.

Side-by-side expectations

Dev tunnel (LocalToLink)Production ingress
SetupOne commandAccount, config, DNS
URL lifetimeHoursPermanent
Custom domainNot on free tierYes
WAFBasic abuse preventionFull stack
Your laptopMust stay onNot required
Cost modelFree tier for devInfrastructure cost

Many teams use both

PhaseTool
Local webhook debugnpx localtolink
PR previewDeploy preview or quick tunnel
StagingNamed tunnel or staging host
ProductionCloud load balancer + WAF

Each layer serves its purpose. Migrating from dev tunnel to staging means updating webhook and OAuth URLs — app code stays the same.

Real team workflow example

A typical fintech team might run:

The dev tunnel never appears in production runbooks. It appears in every developer's daily toolkit for the first hour of webhook integration work.

Knowing which layer you are in prevents the classic mistake of promoting a laptop-dependent URL to a shared integration test that runs overnight.

Security expectations by layer

LayerExposure windowCredentials
Dev tunnelHours, developer-controlledTest keys only
StagingDays–weeks, team-sharedStaging secrets
ProductionPermanentProduction secrets + WAF

Dev tunnels assume you stop the process when done. Production ingress assumes continuous monitoring. Neither replaces the other.

Migration checklist (dev tunnel → staging)

When your integration outgrows ephemeral URLs:

  1. Deploy app to staging with stable hostname
  2. Update Stripe/GitHub/OAuth redirect URIs to staging URLs
  3. Run regression tests on webhooks with staging secrets
  4. Remove old tunnel URLs from provider dashboards
  5. Document staging URL in team wiki — not a developer's laptop

The application code you wrote against localhost handlers transfers unchanged. Only configuration moves.

Honest LocalToLink limits

When your organization mandates production ingress

Some enterprises require all external callbacks to route through approved infrastructure — even in development. In that case, use your org's sanctioned staging endpoint rather than a personal tunnel. LocalToLink fits teams with autonomy to iterate quickly; it does not replace corporate network policy.

For everyone else, start simple and add infrastructure when requirements repeat.

Try it before you architect

The fastest way to know whether a simple tunnel fits is to run one against your actual project:

npm run dev
npx localtolink

If the public URL solves today's problem — webhook received, client saw the preview, OAuth callback succeeded — you have your answer. Architecture documents can wait until the same problem appears next week.

FAQ

Can LocalToLink replace staging?
No. Staging needs persistent URLs and infrastructure that does not depend on your laptop.

Is a quick cloud tunnel the same as production ingress?
Quick tunnels from cloud providers are closer to dev tools — still not a substitute for named tunnels with DNS and WAF on your domain.

What about security?
Both expose localhost while running. Production ingress adds policies for sustained public exposure. Dev tunnels assume short-lived, developer-controlled sessions.

Next steps

Try it now

Start a tunnel from your project directory — no account required.

$ npx localtolink

See the full CLI reference for flags and exit codes.

LocalToLink CLI 1.0.1 — verified 2026-09-05