ngrok is a tunneling tool. It's excellent for webhook testing, exposing localhost to an external service, and forwarding ports during development. It's a poor fit for sharing HTML artifacts with your team. Display is built for that job: publish any file, get a permanent authenticated URL, done.
| Display | ngrok | |
|---|---|---|
| Monthly price | $49/mo flat | $10–$20/seat/mo |
| Share HTML behind company SSO | ✅ | ❌ |
| Permanent URLs (survive restart) | ✅ | ❌ (ephemeral by default) |
| Google Workspace SSO | ✅ Included | ❌ |
| Microsoft 365 SSO | ✅ Included | ❌ |
| File/directory publish (no process) | ✅ | ❌ (requires live server) |
| Localhost tunneling | ❌ | ✅ |
| Webhook inspection | ❌ | ✅ |
| Viewer needs nothing | ✅ | ⚠️ IP allowlist or auth config |
| CLI | ✅ (dsp publish) | ✅ (ngrok http) |
| MCP for Claude Desktop | ✅ | ❌ |
| Unlimited viewers flat price | ✅ | ❌ |
ngrok was built to expose a running process on your local machine to the internet. It's the right tool for:
localhostIf your use case is any of the above, use ngrok. It's purpose-built for it and does it well.
Ephemeral URLs. Every ngrok session generates a new URL (unless you pay for a reserved domain). You run ngrok http 3000, share the URL in Slack, then close the terminal. The link dies. Everyone who bookmarked it gets a 404.
Requires a running process. ngrok tunnels to a live server. If you want to share a static HTML file, you need to spin up a local HTTP server first, then run ngrok. python3 -m http.server 8080 & + ngrok http 8080. That's two processes that both need to stay running. When you restart your laptop, the URL is gone.
No company-auth model. ngrok's auth options are IP allowlists and basic auth. Neither gives you "only people with a @yourcompany.com Google or Microsoft account can view this." There's no SSO, no per-domain restriction, no audit trail of who viewed what.
Per-agent pricing. ngrok's free tier allows 1 agent (one running ngrok process). More concurrent tunnels require paid plans. At $20/seat, a team of five sharing dev work costs $100/month — with no persistent URLs and no company auth.
Display is a publishing tool, not a tunneling tool. The mental model is different:
ngrok http 3000
dsp publish ./report.html --name q1-analysisYou publish once. The URL works forever. Your teammates click it, authenticate with their company Google or Microsoft account, and see the full interactive HTML — charts, animations, and all. No terminal session needs to be running.
dsp publish ./proposal.htmldsp publish ./swagger-ui/ --name api-docsAny time the artifact is a file (not a running process) and you need it to be accessible after you close your laptop, Display is the right tool.
Free — one-time password auth, 50MB, unlimited viewers
Teams ($49/month) — Google + Microsoft SSO, 25GB, custom domain, unlimited viewers
ngrok Pro is $10–$20/month per developer — and gives you tunnels, not publishing. Display Teams is $49/month for the entire company.
Publish your first artifact free →
No. ngrok handles tunneling to live processes — webhook testing, OAuth callbacks, live server forwarding. Display is for publishing static files. If you need both, use both. Many teams use ngrok during development and Display for sharing outputs.
Not currently. Display is built for the "publish a file, get a permanent authenticated URL" workflow. If you need to expose localhost:3000 to the internet during a live session, ngrok or Cloudflare Tunnel are the right tools.
For a live demo of a running dev server, use ngrok. For sharing the HTML output after the demo — the proposal, the report, the prototype export — use Display.
Every artifact you publish gets a URL like yourco.display.dev/artifact-name. That URL is permanent as long as your Display account is active — it doesn't depend on any running process. Share it in Slack, bookmark it in Notion, link it in a Jira ticket.
Yes. Add DISPLAY_TOKEN as a secret, install @display-dev/cli, and run dsp publish ./output/ as a step. The artifact URL can be posted as a PR comment automatically.
Free tier. No credit card. One-time password auth on free, Google + Microsoft SSO on Teams ($49/month flat).