Three steps. That's it.

Expose localhost
in three steps.

Pick a port, choose a domain, and go live. A secure tunnel to your dev server, webhook endpoint, or internal tool — no CLI flags to memorise.

Expona
Port
Domain
Expose
Which local port?
  1. 1 Select a port
  2. 2 Pick a domain
  3. 3 Expose
Trusted by teams across the globe
DatabricksGitHubGrafana LabsHarveyHugging FaceVercelStripeLinearNotionSupabaseDatabricksGitHubGrafana LabsHarveyHugging FaceVercelStripeLinearNotionSupabase
How it works

Point, click, online.

No terminal required. Every step is a control you can see — select a port, pick a domain, and expose.

Expona — New tunnel
Local port
localhost:3000
Next.js dev server
localhost:5173
Vite
localhost:8080
API · Spring
localhost:5432
Postgres
Detected automatically — just click one.
Features

A real product,
not just a CLI.

Everything you need to share, secure and debug local services — controlled from a clean UI in the browser and the desktop app.

Share files & folders

Not just ports — expose a local folder or file straight to a public URL. Static sites serve their index.html; everything else is browsable and downloadable. No web server to run.

Access control

Block or allow specific IPs and restrict HTTP methods — block POST, PUT and DELETE, or allowlist only the IPs you trust. Enforced at the edge before traffic ever reaches your app.

Local DNS for development

Map friendly *.test / *.local hostnames to your services via the desktop app — your whole local stack reachable by name, no hosts-file editing, for a smoother dev loop.

Passcode protection

Lock any tunnel with a passcode straight from the UI — no flags to memorise. Share a private preview safely.

Request replay

Re-fire any captured request with one click. Debug a flaky webhook without making the provider resend.

Live request logs

Every request streamed in real time — method, path, status, timing, headers and body. See exactly what hit your app.

Custom domains

Bring your own domain with a CNAME + TXT verify, or use a free you.expona.dev subdomain. Pick from a dropdown.

Network analytics

Requests, average latency, bandwidth and live tunnels — durable history retained by your plan, not just a live tail.

Built in

Security & control, by default.

The things you’d normally bolt on yourself — already here, all toggled from the UI.

GET /preview
Unlocked

Passcode protection

Gate any tunnel behind a passcode — share a private preview without exposing it to the world.

429 throttled

Rate limiting

Cap requests per IP to shield your dev box from runaway scripts and abusive traffic.

app.test
:8080

Local DNS

Reach your whole stack by friendly *.test names mapped straight to local ports.

POST/webhooks/stripe
POST /webhooks/stripe
Re-fired ✓

Request replay

Capture any request and re-fire it with one click — debug flaky webhooks without the sender.

Why Expona

Five seconds,
not five minutes.

Other tunnels make you memorise flags and read the manual. Expona is select-and-expose — the whole idea is the UI.

The CLI wayExpona
Time to live URLDeploy in ~5 minutesSelect & expose in ~5 seconds
Getting startedRemember CLI flags, run --helpPick a port, pick a domain, click Expose
Share a folder or fileRun your own static serverPick it — exposed instantly, no server
Block / allow IPs & methodsHand-rolled middlewareIP allow/blocklist + method filter in the UI
Local hostnamesEdit /etc/hosts by handLocal DNS — *.test names from the app
Passcode on a tunnelConfig / flagsOne toggle in the UI
Custom domainPaid + CLI setupDropdown — free subdomain or BYO
Inspect & replayLocal inspectorLive logs + one-click replay in the cloud
Control surfaceMostly CLIFull web UI + desktop app
Integrations

Works with everything you run.

Any HTTP server, any language, any framework. If it listens on a port, Expona can tunnel it.

Next.js
Node
GGo
🐍Python
RRails
🐳Docker
SStripe
GGitHub
Next.js
Node
GGo
🐍Python
RRails
🐳Docker
SStripe
GGitHub
Vercel
WWebhooks
DDiscord
SSlack
PPostman
FFigma
LLinear
NNotion
Vercel
WWebhooks
DDiscord
SSlack
PPostman
FFigma
LLinear
NNotion
SShopify
WWhatsApp
TTwilio
AAuth0
Supabase
Cloudflare
AWS
Fly.io
SShopify
WWhatsApp
TTwilio
AAuth0
Supabase
Cloudflare
AWS
Fly.io
…and every other HTTP/WebSocket service. No integration needed — it's just your localhost.
Pricing

Choose your plan

Start free. Upgrade when your side project becomes the product.

Free
$0
  • 3 active tunnels
  • 24-hour log retention
  • Free you.expona.dev subdomain
  • Passcode protection
  • Live request logs
Get started free
Team
$40/mo
  • Unlimited tunnels
  • Custom domains
  • 1-year log retention
  • 25 team members
  • Roles & permissions
  • Shared workspaces
  • Audit log
Start Team
Enterprise
Custom
  • Unlimited tunnels
  • Custom domains
  • Unlimited retention
  • Unlimited members
  • Dedicated regions
  • SOC 2 · SSO
  • 99.99% SLA
  • Priority support
Contact sales
Download

One app. One token. Live URL.

The tunnel agent is built into the app — no extra installs, no config files. Sign in to the portal, create an agent token, paste it once, and exposelocalhost:3000as l3000.expona.dev.

Latest v1.4.2 · Jun 2, 2026 · checksums, release notes & all versions →
1Create an agent token in the web portal
2Paste it into the app — it connects automatically
3New Tunnel → port 3000 → Expose → share your URL