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
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. Install Expose with the command above and run
expose login. - 2. Run
expose sharewhere you ranngrok http. - 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.