Vibecode ngrok

track this build5 phases, 10 steps, beginner friendly
KINDA · weekend project
price $10/moyou'd save $120/yrbuild time one sittingcategory 🛠️ dev toolsreplaced by 0 people

A tunnel is an SSH reverse forward or a WireGuard peer plus a reverse proxy on a $5 VPS; that is a sitting. What you do not get is the global edge, the request inspector, and OAuth in front of the tunnel in one flag. cloudflared does most of it free.

the project pack5 files · written for this build, step by step
README.md
# ngrok · indie build

A tunnel to localhost on a VPS you already have: frp exposes a local port on a subdomain you own, Caddy terminates TLS, every tunnel is protected by default, and a local log shows and replays incoming requests. cloudflared does most of this for free; this is for owning the plumbing.

Estimated effort: **one sitting**. Work `BUILD_PLAN.md` top to bottom · every phase ends in a check that has to pass before the next one starts.

## Stack

| Part | Choice | Why |
| --- | --- | --- |
| Tunnel | frp (server on the VPS, client locally) | a mature reverse proxy, not a hand-rolled TCP forwarder |
| TLS | Caddy with a wildcard subdomain | one certificate for every tunnel name |

## Before you start

Have every one of these ready. The plan assumes them from step one.

- [ ] **A terminal and a code editor** · free
  - Why: Every step below is a command you type or a file you edit.
  - Get it: VS Code (code.visualstudio.com), Cursor or Zed. Open a folder for the project and use the editor's built-in terminal.
  - Verify: You can open a folder and run a command in its terminal
- [ ] **Git** · free
  - Why: History for your code, and the way most hosts deploy.
  - Get it: Install from git-scm.com or with your package manager, then run git init in the project folder once it exists.
  - Verify: git --version prints a version
- [ ] **Consider cloudflared first** · free
  - Why: Cloudflare Tunnel is free and covers most hobby use with one command. This build is for wanting your own box.
  - Get it: developers.cloudflare.com/cloudflare-one/connections/connect-networks
- [ ] **A VPS with a public IP** · about $5 a month
  - Why: The public end of the tunnel.
  - Get it: Smallest Ubuntu 24.04 instance.
- [ ] **A domain with a wildcard record** · free on a domain you own
  - Why: *.tunnel.yourdomain.com so each tunnel gets a name.
  - Get it: Add an A record for *.tunnel pointing at the VPS.
- [ ] **frp binaries** · free
  - Why: frps on the server, frpc on your machine.
  - Get it: Download the release for each platform from github.com/fatedier/frp/releases.
  - Verify: frps --version and frpc --version print
- [ ] **Caddy on the server** (optional) · free
  - Why: Automatic HTTPS in front of the Node process. Without TLS the browser features this relies on (and your visitors' trust) do not work.
  - Get it: On the VPS: follow the install steps at caddyserver.com/docs/install for Ubuntu. One Caddyfile with your domain and a reverse_proxy line is the whole config.
  - Verify: caddy version prints a version on the server

## Quick start

```sh
caddy hash-password
```

Then copy `.env.example` to `.env` and fill in the values it documents.

## Honest limits

This build deliberately does not replace:

- The global edge, OAuth-in-front with one flag, TCP and TLS tunnels: what ten dollars buys.
- the request inspector and replay
- OAuth and IP policies in front of the tunnel with one flag
- the global edge and its latency
- TCP and TLS tunnels without setup

If one of those is essential to you, that is the reason to keep paying for ngrok, and the README should say so rather than pretend.

$ choose a build depth, inspect the files, then open the complete pack in your agent

why people still pay

Because ngrok http 3000 is one command and the inspector shows every webhook body. Ten dollars for zero setup is a fair trade when a demo is in five minutes.

what you lose

xthe request inspector and replay

xOAuth and IP policies in front of the tunnel with one flag

xthe global edge and its latency

xTCP and TLS tunnels without setup

prior art · use these instead of building, if you'd ratherfrpfast reverse proxy for exposing local serverscloudflaredCloudflare Tunnel client, free tier covers most hobby use
share on X ↗"I just replaced ngrok ($10/mo) with one prompt"
the numbers

ngrok pricing

hobbyist$10/mo · monthly flat with included credit · $120/yr

free tierThe free plan gives 3 online endpoints, 1 GB of transfer and 20k HTTP requests a month on ngrok-branded domains.

verified 2026-09-04 · source ↗

questions
Is ngrok free?

The free plan gives 3 online endpoints, 1 GB of transfer and 20k HTTP requests a month on ngrok-branded domains. Paid is Hobbyist at $10/mo (checked 2026-09-04).

Vibecode ngrok

Kinda. The core of ngrok is buildable in a weekend with the prompt on this page, but there are real gaps: the request inspector and replay, OAuth and IP policies in front of the tunnel with one flag. Read the honest list above before committing.

How much does ngrok cost?

ngrok costs about $10/month (Hobbyist, checked 2026-09-04), which is $120 per year.

What do I lose by replacing ngrok?

Honestly: the request inspector and replay; OAuth and IP policies in front of the tunnel with one flag; the global edge and its latency; TCP and TLS tunnels without setup. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to ngrok?

Yes: frp (fast reverse proxy for exposing local servers), cloudflared (Cloudflare Tunnel client, free tier covers most hobby use). Using prior art is also vibecoding; the prompt is for when you want it exactly your way.