Expose localhost on your own domain - even on the free plan. Automatic HTTPS, no credit card, no random subdomains that change every reconnect.
ngrok’s free tier gives you a random *.ngrok-free.app subdomain that changes every time you reconnect. Webhook configurations, OAuth redirect URIs, and bookmarks all break. tunnelto lets you bring your own domain on the free plan, so your URL stays the same forever.
ngrok charges for custom domains. tunnelto includes 1 custom domain on every plan, including Free. Point any domain you already own at your tunnel and we handle DNS verification, certificate issuance, and routing.
Sign up with email. Get a tunnel running in under a minute. We don’t ask for payment information until you actually need a paid plan.
$2/month for persistent tunnels with a custom domain. $10/month for the Plus plan with no speed limits. No per-request fees, no surprises. ngrok’s pricing starts higher and scales faster.
Side by side, on the things developers care about.
| tunnelto Free | ngrok Free | |
|---|---|---|
| Custom domain | ✓ 1 included | × Paid only |
| Stable URL across reconnects | ✓ Your domain | × Random each run |
| HTTPS by default | ✓ | ✓ |
| Credit card to sign up | Not required | Not required |
| Built-in tunnel auth | ✓ Bearer + Basic | Paid plans |
| Static content hosting | ✓ | × |
| Persistent tunnels (cheapest paid) | $2 / month | From $8 / month |
Compared on publicly documented features as of April 2026.
Yes. The Free plan is $0 forever and includes 1 custom domain, 1 GB of bandwidth per month, unlimited 1-hour tunnels, automatic HTTPS, and unlimited requests. No credit card is required to sign up.
ngrok’s free tier gives you a random *.ngrok-free.app subdomain that changes every time you reconnect. tunnelto’s free tier lets you bring your own domain. Point any domain you own at your tunnel and tunnelto handles DNS verification and certificate issuance automatically. The result: a URL that doesn’t break webhooks, OAuth callbacks, or shared previews.
Yes. Install tunnelto, point your existing domain (or grab a fresh one) at the tunnel, and update any webhook URLs in Stripe, GitHub, or wherever else you’d configured an ngrok URL. Most users migrate in under 10 minutes.
Get a public HTTPS URL on your own domain in under a minute. No credit card required.
Create your free account