Speed matters in modern software engineering. You might be wiring up an event-driven architecture, integrating third-party webhooks from services like Stripe, GitHub, or Shopify, or pushing a live preview to a client in another time zone. In each case, a localhost tunnel is often the glue that makes it work. It exposes a port on your machine to the public internet over HTTPS in seconds.
Free tiers are where most developers start, and they are also where the friction hides. Some of that friction is well known, and some of it is outdated folklore. A claim that circulates widely is that ngrok’s free plan kills your tunnel after two hours. As of October 2026, ngrok’s own documentation says otherwise: free endpoints have no timeout and can stay online indefinitely. The costs that actually matter on free tiers are quotas, interstitial pages, domain restrictions, and caps on concurrency.
This article looks at what those limits are, which workflows they hurt, and how to compare tools using current numbers rather than old assumptions.
1. Why Developers Still Need Tunnels
Modern applications rarely live in isolation. Several everyday workflows depend on a publicly reachable URL:
- Webhook integrations. Payment processors, CI/CD systems, messaging platforms, and auth providers send HTTP POST requests to your server. Stripe’s documentation states that registered webhook endpoints must be publicly accessible HTTPS URLs. It suggests a tunneling tool such as ngrok for testing a localhost server.
- Mobile and device testing. A physical phone running a React Native or Flutter build needs an endpoint it can reach to exercise API and authentication flows against your local backend.
- Stakeholder reviews. Designers, product managers, and clients often need to see a work-in-progress feature before it reaches staging.
$ ngrok http 3000
One command gives you a public HTTPS URL. What happens next depends on the limits attached to your plan.
2. What ngrok’s Free Plan Actually Limits (October 2026)
Based on ngrok’s current documentation and pricing page, the free plan includes:
| Resource | ngrok Free |
|---|---|
| Session or endpoint timeout | None |
| Online endpoints | Up to 3 |
| Concurrent agents | 3 |
| Data transfer out | 1 GB / month |
| HTTP/S requests | 20,000 / month |
| Domains | 1 assigned dev domain (not customizable) |
| Interstitial page on HTML traffic | Yes |
| Included credit | $5, one time, with no usage beyond the credit |
Several widely repeated claims about ngrok’s free tier don’t match this documentation:
- It has no 2-hour session limit. Free endpoints have no timeout.
- It is not limited to one tunnel. You can run up to three online endpoints.
- Your URL does not change on every restart. Every account gets an assigned dev domain tied to the account. You can’t customize it or add your own domain on the free plan, but it stays stable.
The real constraints are these:
- Quotas that run out. At 1 GB of transfer and 20,000 requests a month, a busy webhook test or a media-heavy demo can exhaust the allowance. ngrok’s pricing page says the free plan has no additional usage beyond its credit.
- The interstitial page. To deter phishing, ngrok shows an interstitial in front of HTML browser traffic on free endpoints. A visitor clicks “Visit” to continue, and a cookie then suppresses the page for that domain for seven days. API and programmatic traffic isn’t affected, and the docs describe header-based workarounds.
- No custom or reserved domains. Custom domains and ngrok-branded domains require a paid plan.
3. The Cost of Interruptions
Whatever the cause of a dropped tunnel (an expired session, an exhausted quota, a restarted agent), the cost is rarely the outage itself. It is the interruption to your concentration.
Psychologist Mihaly Csikszentmihalyi’s concept of flow describes the state of full immersion in an activity. Research by Gloria Mark at UC Irvine on workplace interruptions found that people took, on average, about 23 minutes and 15 seconds to return to an interrupted task. The peer-reviewed 2005 CHI paper she co-authored reports a mean of about 25 minutes and 26 seconds. Two caveats apply:
- The interval includes time people spent on other work before coming back. It is not 23 minutes of idle staring.
- The study measured general office interruptions, not tunnel failures specifically.
Even so, the direction is clear. A tunnel that silently dies and forces you to diagnose, restart, and reconfigure carries a cost well beyond the few seconds it takes to run a command again.
4. Where Free-Tier Limits Hurt Most
Webhook and Async Testing
Stripe attempts to redeliver failed events for up to three days with exponential backoff in live mode. Events created in a sandbox are retried three times over a few hours. If your tunnel goes down during sandbox testing, an event can exhaust its retries before you notice, and your local state falls out of sync. The cause is an outage, not a bug in your handler.
Stripe also offers an alternative for local testing that needs no public URL: stripe listen --forward-to localhost:4242/webhook forwards events from your account to your local server through the Stripe CLI. If Stripe is the only service you’re testing, that route sidesteps tunnel limits entirely.
Client Demos
A demo is a bad moment for a surprise. On ngrok’s free plan, the interstitial page is the most likely one: a first-time visitor sees a warning screen before reaching your app. A heavy demo can also burn through a 1 GB monthly transfer allowance faster than you’d expect. On any tool, a stable and recognizable URL helps a presentation, and a free random one doesn’t.
Multi-Service Setups
A typical full-stack environment might run a frontend on port 3000, an API on port 8000, and a worker or admin panel on another port. Three online endpoints cover that on ngrok’s free plan. Beyond three services, or with several developers sharing one account (the free plan has one user), you will hit the cap.
5. Comparing the Options
Plans change often, so check each vendor’s current page before committing. Here is how ngrok and InstaTunnel compare based on each vendor’s published pricing as of October 2026. InstaTunnel’s figures come from its own pricing page, which lists a last-reviewed date of March 5, 2026.
| ngrok Free | InstaTunnel Free | ngrok Hobbyist | InstaTunnel Pro | |
|---|---|---|---|---|
| Price | $0 | $0 | $10/month | $5/month |
| Session length | No timeout | 24 hours | No timeout | Unlimited |
| Online tunnels / endpoints | 3 | 3 | 3 | 10 |
| Monthly bandwidth | 1 GB | 2 GB | 5 GB included | 25 GB |
| Requests | 20,000 / month | 2,000 / day | 100,000 / month included | Unlimited per day |
| Domains | Assigned dev domain | Custom subdomain | ngrok-branded domains | Custom domains |
| Interstitial page | Yes | Not listed for registered accounts | No | Not listed |
A few notes on reading the table:
- The plans aren’t identical. Hobbyist includes $10 of monthly usage credit, and ngrok says endpoints stop working when that credit runs out until the next billing cycle. InstaTunnel Pro is $5 a month, half the price of Hobbyist, but the quotas are measured differently. Compare them against your actual traffic.
- InstaTunnel’s free sessions are capped at 24 hours. Its FAQ says that when a free session expires you start a new tunnel from the CLI. That is a limit, even if it’s long enough to cover a workday. Pro removes it.
- Subdomain reservations. InstaTunnel lists “custom subdomain reservations” as a Business plan feature, so check whether your free subdomain persists between sessions if your webhook configuration depends on it.
-
Setup convenience. InstaTunnel’s CLI auto-detects your local port: you run
itinstead of specifying a port. That is a small convenience, not a structural difference.
6. Other Routes
Cloudflare Tunnel
Cloudflare’s Quick Tunnels (TryCloudflare) need no Cloudflare account. You run cloudflared tunnel --url http://localhost:8080 and get a random trycloudflare.com subdomain. Cloudflare says they are for testing and development only and carry no SLA or uptime guarantee. Quick Tunnels also have a limit of 200 in-flight requests, returning a 429 beyond that, and they don’t support Server-Sent Events. For stable named URLs on your own domain, Cloudflare points you to a regular Cloudflare Tunnel set up with a Cloudflare account.
Self-Hosting
Open-source tools such as frp and bore let you run your own tunnel server on a cheap virtual private server. You gain control and remove vendor quotas. In exchange you take on maintenance: DNS, TLS certificates (for example through Let’s Encrypt), server uptime, and security patches. That is a reasonable trade for a team that already runs infrastructure, and a poor one for a developer who just wants to test a webhook this afternoon.
Keeping a Tunnel Running
If your concern is an agent that stops when your terminal closes, ngrok’s documentation recommends running the agent as a background service to keep an endpoint online unattended.
7. When to Upgrade
Free tiers are well suited to individual debugging, early prototypes, and occasional demos. Consider a paid plan when you see any of the following:
- You need a stable, custom domain. Production-grade webhook integrations shouldn’t depend on a URL you don’t control. On ngrok, custom domains require a paid plan; bring-your-own-domain is a Pay-as-you-go feature at $20 a month plus usage.
- You regularly exceed quotas. Heavy asset testing, large payloads, and media streaming consume free allowances quickly.
- A team shares the tunnel. ngrok’s free plan has a single user, and features like SSO and role-based access control are paid add-ons on higher plans.
- You can’t tolerate the interstitial. Paid ngrok plans remove it.
Weigh the monthly cost against the engineering time you lose to workarounds. A few dollars a month is small next to one lost afternoon.
Conclusion
The most common complaint about free tunneling tiers, a hard two-hour cutoff, is not what ngrok’s current documentation describes. The costs are real, but they are different ones: monthly transfer and request quotas, an interstitial page, a single non-customizable domain, and a cap on concurrent endpoints. Alternatives such as InstaTunnel’s 24-hour free sessions, three tunnels, and custom subdomains address some of those pain points, with their own limits on daily requests and session length.
Test the numbers against your own workflow, read each vendor’s current limits rather than a year-old blog post, and keep the Stripe CLI and Cloudflare Quick Tunnels in mind when a full tunneling service is more than you need.
Sources
- ngrok Free Plan Limits
- ngrok Pricing
- InstaTunnel and InstaTunnel Pricing
- Stripe: Receive Stripe events in your webhook endpoint
- Cloudflare Docs: Quick Tunnels
- Gallup Business Journal: Too Many Interruptions at Work? (Q&A with Gloria Mark)
Originally published at https://instatunnel.my/blog/the-hidden-costs-of-free-tiers-what-localhost-tunnel-limits-really-cost-your-workflow
Top comments (0)