PortBayvsngrok
ngrok and PortBay both put a local site on a public URL; the meter is the difference. ngrok's free plan caps you at 1 GB of transfer and 20,000 HTTP requests per month across 3 endpoints, and every browser visitor sees an interstitial warning page before your site loads. Removing that page starts at 8 dollars per month on Hobbyist; custom domains wait for the 20 dollar Pay-as-you-go plan. PortBay bundles Cloudflare quick tunnels: one click on a project row, no account, no usage meter, no interstitial, proxying the same https .test site you develop on. The honest trade: PortBay's free tunnel URL is a random trycloudflare.com subdomain that changes each session, while ngrok's free plan includes one assigned dev domain. A stable PortBay hostname is Pro, 10 dollars per month or free with a merged qualifying pull request (last verified July 2026).
Which one is right for you
You want the full stack, open source.
You share work in progress: a client demo, a webhook test, a phone check on a real device. You want the tunnel one click away from the project it serves, with no account, no interstitial page for visitors, and no monthly GB or request meter. You also get the rest of the local environment in the same app: https .test domains, seven database engines, mail capture, and an agent task board.
It already fits your workflow.
You run tunnels as production infrastructure: an API gateway, OAuth or SSO in front of an endpoint, custom and wildcard domains, TCP tunnels to non-HTTP services, or traffic policies with replay across a team. ngrok is built for that edge role, and it runs anywhere — including Windows, which PortBay does not support.
Where PortBay and ngrok actually differ
The table below has the row-by-row detail. These are the three shapes it cannot draw: the job you already use one of them for, the job only one of them does, and what survives the move.

PortBay and ngrok overlap on the everyday job: a local site on a real domain, over HTTPS, with the services it needs. If that is all you need, either will do it.

Move a card to To Do and PortBay launches Claude Code, Codex or Cursor against a project that is already running. ngrok has no board to dispatch from.

Point PortBay at the folders you already have. They stay where they are, .test domains are re-issued on the first run, and databases are imported rather than rebuilt.
Feature by feature
ngrok rows come from ngrok’s own site and docs, on the date below. PortBay rows come from the app’s source. We mark partial support honestly — including where the other side wins.
ngrok facts on this page were last checked against ngrok.com/pricing on . Pricing and limits change — check their site before you decide.
Coming from ngrok
There is nothing to export: tunnels are stateless. Add your project to PortBay, open the Tunnels view, and click Share publicly on the project row. The bundled cloudflared sidecar connects and prints a public trycloudflare.com URL in a few seconds, proxying the same https .test site you develop on; no account, no interstitial for visitors, no monthly meter. Keep your ngrok account for production edge work; drop it for the daily share-a-demo loop. If you need a URL that survives restarts, the stable hostname is a Pro feature.
Add your project to PortBay; it gets an https .test domain through Caddy.
Open Tunnels and click Share publicly. The public URL appears in a few seconds; copy it.
Click Stop sharing when done. The URL dies with the session; nothing keeps listening.
PortBay vs ngrok, in plain terms
For sharing local sites, yes. PortBay bundles cloudflared and starts a Cloudflare quick tunnel with one click: no account, no interstitial warning page, and no monthly bandwidth or request meter. ngrok's free plan caps usage at 1 GB and 20,000 HTTP requests per month and shows visitors a warning page. For production edge features such as OAuth, custom domains, and traffic policies, ngrok is the deeper tool.
No. Cloudflare quick tunnels serve your site directly, so a client opening your demo link sees the site, not a click-through notice. On ngrok's free plan, browser traffic gets an interstitial page that warns visitors they are about to visit an ngrok-served site; clicking through sets a 7-day cookie. Removing it requires the Hobbyist plan at $8 to $10 per month.
PortBay imposes no meter: no GB counter, no monthly request quota, and no billing when a demo gets busy. The tunnels run over Cloudflare's free quick-tunnel tier and are meant for development sharing, not production hosting. ngrok's free plan meters 1 GB of data transfer and 20,000 HTTP requests per month, then asks you to upgrade.
On the free tier, no: each tunnel session gets a random trycloudflare.com subdomain, and the URL dies when you stop sharing. A stable custom tunnel hostname is a PortBay Pro feature at $10 per month, or free for life with a merged qualifying pull request. Note the honest flip side: ngrok's free plan includes one assigned dev domain that persists across sessions.
No. PortBay tunnels are open URLs intended for short-lived demos and webhook tests; there is no built-in identity gate. ngrok's OAuth traffic-policy action can require a Google, GitHub, or Microsoft login before a request reaches your endpoint. If you expose internal tools to real users through a tunnel, that feature is a reason to keep ngrok.

Give your projects and your agents a real local home.
Download for macOSFree & open source · macOS 11+ on Apple Silicon · Pro from $10/mo
