I’ve been using ngrok for years.
It’s great… until it isn’t.
The moment I wanted to use my own domain, I hit the paywall. And not a small one.
For something that feels like it should be basic.
The problem
My typical workflow:
- run a local server
- expose it for webhooks or client demos
- sometimes share it with teammates
ngrok works well for that.
But:
- custom domains require a paid plan (that's the main one)
- tunnels expire (on free tier)
- pricing adds up for something I use frequently
The breaking point
At some point, I realized:
I’m basically paying just to map a domain to localhost.
That didn’t sit well with me.
So I went down the rabbit hole.
What I built
I ended up building a small tunnelling tool for myself:
It lets me:
- expose localhost over HTTPS
- use my own domain
- run behind NAT without extra setup
I’ve been using it daily for a few months now, and it’s been stable enough to rely on.
Things that were harder than expected
A few things surprised me while building this:
- Handling connections reliably under unstable networks
- Managing TLS cleanly for custom domains
- Keeping latency low enough for real-time use
This turned out to be more of an infrastructure issue than I initially expected.
Why I’m sharing this
I originally built this just for myself, but I figured others might be hitting the same friction.
If you’re using ngrok (or Cloudflare tunnels), I’d be curious:
- What do you like/dislike?
- What would you want improved?
Happy to get feedback — good or bad.
Top comments (0)