Expose vs ngrok

The ngrok alternative with flat pricing

Expose gives a site on your machine a public HTTPS URL, like ngrok. It's a single binary with no dependencies, has no warning page for your visitors, and Pro includes custom domains and reserved subdomains for $79 a year, without billing for requests or data transfer.

curl -fsSL https://expose.dev/install.sh | sh irm https://expose.dev/install.ps1 | iex
Create free account

Expose and ngrok side by side

Feature Expose ngrok
Free plan A free account with random URLs on one server in Germany and a time limit per connection. $5 of one-time credit: 1 GB of data transfer, 20k HTTP requests and 3 endpoints.
Warning page for visitors None, on every plan. An interstitial page in front of HTTP endpoints on the Free plan.
Paid plan for one developer Pro, $79 a year per user. Hobbyist, $10 a month.
Usage billing None. The yearly price is the price. Included credit. Pay-as-you-go bills data transfer, requests and active endpoint hours beyond it.
Your own domain Included in Pro. From Pay-as-you-go ($20 a month and up), plus $0.01 per active hour.
The same URL every time Reserved subdomains in Pro, on any Expose server. ngrok-branded domains from Hobbyist.
Teams Team: up to 10 users for $229 a year. Pay-as-you-go: 3 users included, then $5 per user a month.

Prices without tax, from the Expose pricing and ngrok's pricing page on November 11, 2026.

What Expose does differently

One binary, no PHP

Since version 4, Expose is a single native binary for macOS, Linux and Windows. Older reviews say it needs PHP; it doesn't any more, and it shares sites built with anything: Node.js, Next.js, Vite, Django, Rails, Go or Laravel.

Built into Laravel Herd

Herd installs the expose command for you, connects your account from its settings and shares the site you work on with herd share.

A dashboard for webhooks

Every request in the dashboard on localhost:4040, with replay, replay with changes, and plugins that highlight Stripe, GitHub and Paddle webhooks.

Your coding agent sees it too

The Expose MCP server lets Claude Code, Codex, Amp and ChatGPT read the requests that reached your tunnel and manage your domains.

Share on your network

expose share --lan gives coworkers and your phone a URL on your local network, without a server, with a QR code.

Host it yourself

The Expose server is open source, so you can run tunnels on your own infrastructure.

Your ngrok commands in Expose

Task ngrok Expose
Sign in once ngrok config add-authtoken <token> expose login
Share a local port ngrok http 3000 expose share http://localhost:3000
Share a Herd or Valet site ngrok http https://my-app.test expose share my-app.test
Keep the same URL (Pro) expose share my-app.test --subdomain=my-app
Pick a region (Pro) expose share my-app.test --server=us-1
Protect it with a password expose share my-app.test --basicAuth="user:secret"

More options in the sharing docs.

When ngrok fits better

Expose is built for development: sharing work in progress, receiving webhooks and testing on other devices. If you put production traffic through a tunnel and need an API gateway with traffic policies, wildcard endpoints, mutual TLS, or SSO and SCIM for a large organization, ngrok's paid plans offer those.

Switching takes a minute

  1. 1. Install Expose with the command above and run expose login.
  2. 2. Run expose share where you ran ngrok http.
  3. 3. Point your webhook providers at the new URL, or reserve a subdomain with Pro so it never changes again.

Questions

Is Expose a free alternative to ngrok?

Yes. A free Expose account shares sites with random URLs on our server in Germany, without a warning page and without a card. Expose Pro adds the global servers, custom domains, reserved subdomains and connections without a time limit.

Does Expose still need PHP?

No. Since version 4 the Expose client is a native binary with no dependencies. The PHP client still exists for people who run their own request plugins, and the open-source server you can host yourself is a PHP application.

Can I use my own domain like with ngrok?

Yes, with Expose Pro at $79 a year. Add the domain in the dashboard, create one CNAME record, and share sites at URLs like app.share.example.com.

Is the request inspector in the same place?

Yes. Like ngrok's inspector, the Expose dashboard runs on http://127.0.0.1:4040 while you share a site.