← Back to Konde Blog
PRODUCT

Embedded Cloudflare Tunnel — share your local server in one click

Konde Studio bundles cloudflared and exposes any port to a real HTTPS URL with one click. No ngrok account, no manual config, no surprise rate limits — and it works for any project, any framework, any port.

If you have ever needed to send a quick link of your dev server to a co-founder, a designer, or a client — and you have ever ended up at ngrok.com/signup asking yourself why this is a paywalled product — this post is for you.

Konde Studio v1.0.18 ships with embedded Cloudflare Tunnel support. Click "Share" on any project. Your local server is now reachable at your-project.konde.tunnels.dev with a real HTTPS certificate, no auth wall, no rate limit, and no DNS quirks.

The pitch

Three things make this useful day-to-day:

  1. Zero config. We bundle the cloudflared binary, manage the certificate, run the tunnel as a child process, and stop it when you stop the project. There is no cloudflared.yml, no --hostname flag, no tunnel create step.
  2. Real URLs. The tunnel terminates at a Cloudflare edge node. Latency is ~30ms from anywhere in Asia. The URL works on iPhones, Androids, locked-down corporate networks, and JIRA preview cards — real URLs you can share with a client without explanation.
  3. It is not free, but it is included. No upgrade screen. No "you have used your three free tunnels this month." If you have a Konde Studio license, you have unlimited tunnels.

How it works under the hood

Cloudflare offers two flavours of tunnels: Quick Tunnels (anonymous, throwaway) and Named Tunnels (auth'd, persistent). We use Named Tunnels because they survive process restarts, which means the URL you sent your co-founder yesterday still works today.

When you create a Konde project, we provision a tunnel against our shared konde.tunnels.dev zone, store the credentials in your local Konde keychain, and route traffic through Cloudflare's edge to the local port you specified. Your laptop is never exposed directly to the internet — Cloudflare terminates the connection at the edge and forwards traffic over an outbound mTLS connection your machine opened.

There is exactly one moving piece you might want to know about: if you close your laptop, the tunnel goes down (the outbound connection drops). When you re-open, it reconnects automatically within a second or two. If you want a tunnel to survive your laptop sleeping, you want a real deployment — that is what Konde Hosting (Q2) is for.

Per-project subdomains

Each project gets its own subdomain. Run a Next.js app on port 3000 and a Hono API on port 8787 and a Postgres admin on port 5432, and you get three distinct URLs:

  • web-shop.konde.tunnels.dev → localhost:3000
  • web-shop-api.konde.tunnels.dev → localhost:8787
  • web-shop-db.konde.tunnels.dev → localhost:5432

You can rename the subdomain inline. Custom domains arrive in v1.2 — point your own DNS, and the tunnel terminates there instead.

The auth question

By default, tunnels are public. Anyone with the URL can hit your local server. That is usually what you want for a quick share.

When it is not, two flags flip in the project settings:

  • Cloudflare Access policy. Lock the URL to a specific email address, a Google Workspace domain, or a One-Time PIN. Now only you (or whoever you list) can load it. Cloudflare handles the auth UI; you handle nothing.
  • Basic auth. Old-school username + password prompt. Useful for client demos where the client should not need to log in with their Google account.

Either is one click in Studio.

Why bundle this at all

We could have left this to the user. "Install ngrok, sign up, paste your token." The reason we did not is that this is a workflow you do many times a day. The compounding cost of every "wait, where is my ngrok token" lookup, every "shoot, I hit the rate limit" backoff, every "the URL is different again, send me the new one" Slack message — that is real friction, and it is exactly the kind of friction Konde Studio is meant to eat for you.

If you are on Studio v1.0.18 or later, "Share" is in the project header, top right. Click it. Send the URL. Get back to work.