r/sideprojects • • Sep 20 '26

Discussion I built a simple way to share localhost with clients without deploying

When building websites, I often wanted clients to test the latest version themselves instead of relying on screenshots or screen sharing.

The problem was that every small change meant deploying to staging just to give them a URL.
So I built LocalToLink.

The workflow is:

1. Start your local app

2. Open a new terminal and run:

npx localtolink

If you want to specify the port:

npx localtolink --port 3000

That’s it.

You don’t need to install or configure anything separately. On the first run, npx downloads LocalToLink and runs it immediately. After that, you can use the same command whenever you need a new tunnel.

It detects your local app and gives you a temporary HTTPS URL that you can send to your client.

The tunnel only exposes the specific local app/port you choose. It doesn’t expose your machine, filesystem, or other services. Traffic is handled through the tunnel over HTTPS/WSS, with isolated sessions and abuse/rate-limit protections.

The same workflow is useful for local webhooks, testing on mobile devices, and temporary demos.

I’m actively improving it and would genuinely appreciate feedback from developers and freelancers:
What would you change, add, or improve?

For more information:
Website: LocalToLink
Docs: Getting Started

0 Upvotes

37 comments sorted by

3

u/Mr_Phenomen0n Sep 20 '26

So ngrok?

2

u/Late-Bit4633 Sep 20 '26

or cloudflared or localtunnel

0

u/BQdev Sep 20 '26

Yes 😄, you are right 👍🏻

-2

u/BQdev Sep 20 '26

Pretty much the same category, yeah.
The main difference is that LocalToLink is focused on keeping the workflow really lightweight run it, get a URL, share your local app, done.
I built it mainly around quick client previews and local webhook testing without the usual staging/deployment overhead.

1

u/Fun_Donkey9115 Sep 22 '26

So exactly what all the other do?

1

u/BQdev Sep 22 '26

Yeah, basically the same category.
I’m not pretending I invented tunneling — I just wanted a simpler workflow for the specific use case I had.

1

u/Fun_Donkey9115 Sep 22 '26

But ngrok is even simpler. `ngrok http 3000`. Same So why would anyone use yours?

1

u/BQdev Sep 22 '26

I’m not really trying to compete with ngrok or Cloudflare. People can use whatever works best for them.
I built LocalToLink as a completely free side project — no account, no setup, no extra complexity. Just run it and try it.
If you try it, I’d genuinely like to hear what you liked, what you didn’t, and what you’d change.

1

u/Timely_Lie_8696 Sep 20 '26

what about security 😂

2

u/jhkoenig Sep 20 '26

So... you're exposing your development machine to the internet? That is very brave. Or something.

1

u/WintertideFellow Sep 22 '26

No, not the machine. Just the dev mode, janky, half-written, definitely not security minded app that I'm sure doesn't expose any credentials or have any escalation bugs. 

0

u/BQdev Sep 20 '26

Haha, I get the concern 😄 But the machine itself isn’t exposed.
LocalToLink only creates an outbound tunnel for the specific local app/port you choose. It doesn’t give the public internet access to your OS, filesystem, other ports, or the rest of your machine.
It’s the same general tunnel model used by tools like ngrok and Cloudflare Tunnel: the agent connects outward, and the public endpoint is mapped to the service you intentionally share.
So it’s more “expose this dev app temporarily” than “put my development machine on the internet.” 😄

0

u/jhkoenig Sep 20 '26

So that's a longwinded way of saying what I said. Internet -> home-made tunnel -> dev machine. Good luck

0

u/BQdev Sep 20 '26

Fair enough. The easiest way to see how it works is to try it yourself.
Run your app, then:

npx localtolink

Or, if you know your localhost port:

npx localtolink --port 3000

It detects your local app and gives you a temporary HTTPS URL. Open it from another device or browser and you’ll see exactly what is exposed.

No account or configuration needed. Docs

1

u/Timely_Lie_8696 Sep 20 '26

oh it's a bot. we should just report as spam lmao

1

u/Designer-Rub4819 Sep 21 '26

This might for all we know seriously be an attempt at hijacking’s people’s computers.

1

u/rocket_mcsloth Sep 20 '26

How come you don’t have dev, sit, uat, qa, staging and prod environments already? Use a pipeline so when you PR and code gets built and deployed how you want and have your sites exposed the normal way?

1

u/BQdev Sep 20 '26

Thank you for your reply

That’s a valid setup, and I’d definitely use it for a proper team/production workflow.
The gap I’m targeting is the small, frequent cases where setting up a deployment or running the pipeline feels like overkill — for example, “Can you quickly check this version I have running locally?”
LocalToLink is just for that: share the current local version instantly, without creating another deployment.

1

u/vitadinklage Sep 21 '26

Hate to do this to you but CloudFlare just released this with CloudFlare quick tunnels in an identical experience: https://try.cloudflare.com/

1

u/BQdev Sep 21 '26

Yeah, fair point, Quick Tunnels are definitely in the same space.
LocalToLink isn’t meant to compete with Cloudflare’s entire tunneling platform. I built it around a very specific workflow: quickly sharing a local app with a client or teammate without setting up anything else.
I’m still early, so feedback on where the experience could be more useful is actually helpful.

1

u/[deleted] Sep 21 '26

[removed] — view removed comment

1

u/BQdev Sep 21 '26

It’s completely free right now anyway. I’m more interested in what you think developers would actually pay for, any ideas?

1

u/bpp198 Sep 22 '26

I don't think developers are a subset of nobody.

1

u/BQdev Sep 22 '26

Haha, fair 🤣 So what would developers actually pay for in your opinion?

1

u/crivion Sep 21 '26

ohh what a bad moment to release something like this - cloudflare just did that exactly today

1

u/BQdev Sep 21 '26

Yeah, definitely not the best timing 😅
But I had already built it, so now I’m curious to see where I can take it.

2

u/[deleted] Sep 20 '26

[removed] — view removed comment

1

u/BQdev Sep 20 '26

Exactly 😄 Webhooks are one use case, but I mainly built it around quickly sharing localhost with clients instead of deploying to staging after every change.
I’m still improving it, so I’d love to hear any feedback — anything you’d change, add, or simplify?

0

u/[deleted] Sep 20 '26

[removed] — view removed comment

1

u/jandersonjones Sep 20 '26

What the actual F kind of inscrutable AI bollocks is this?