Coffee Port vs ngrok
A different problem, solved well. ngrok gets a local port onto the internet; it has no opinion about which of your projects that port belongs to.
Shows only what is listening now
What it remembers
An ngrok agent endpoint lives for the lifetime of the process and forwards traffic to a port you name on the command line. Stop the agent and the endpoint is gone; nothing records what port 4012 was for.
Sources: ngrok: agent endpoints, ngrok: a static domain for every account. Checked .
What Coffee Port cannot do
It cannot see what is running. A web page has no way to list the sockets on your machine, and the way to get one — a daemon on localhost for the browser to talk to — would mean opening up the policy that stops a compromised page sending your decrypted ledger somewhere else. That is not a trade worth making for a list of process ids you can already get in a second.
So these are not rivals. ngrok answers what is on 3000 right now; this answers what 3000 is for. Most people who want the second one already have the first.
Point by point
| Point of comparison | ngrok | Coffee Port |
|---|---|---|
| What is listening right now | The endpoints it is running, in its own dashboard, along with every request that came through them. | Nothing. A web page cannot see what is bound to a port, and this one does not pretend to — pair it with any of the tools on this page for that half. |
| What it is for | Making a service on your machine reachable from the internet — webhooks, a demo for a client, a device on another network. | Knowing which of your projects owns which local number. |
| A port nothing is bound to | Nothing to forward, and nothing to record. | A ledger. A port stays in it whether or not anything is bound to it, so 4012 still says which project claimed it and why after three months of not being run. |
| Stable address | Every account gets one static domain free; more, and custom domains, are a paid plan. | Not applicable — nothing here is published anywhere. It records that a port is public, so you can see which of yours are exposed. |
| Choosing a new port | You tell it which port to forward. | Hands out the next free number by rule — 40xx for personal things, 41xx for client work, or whatever you write — and says which rule chose it. |
Which to use
Use ngrok when
- You need somebody outside your machine to reach the thing you are running. This is the whole job, and it does it well.
- You are testing a webhook from a service that cannot see localhost.
- You want traffic inspection and replay for the requests coming in.
Use Coffee Port when
- The question is which port to use, not who can reach it.
- You want a record of which of your ports are exposed and which are not.
- You want that record on days when no tunnel is running.
Questions
- Does ngrok remember my local ports?
- No. An ngrok endpoint forwards to a port you name when you start the agent, and it exists for as long as that process does. It keeps no record of which project a local port belongs to.
- Do I need ngrok if I have a port ledger?
- They do not overlap. Use ngrok when something outside your machine has to reach a service; use a ledger to decide and remember which local number that service is on.
- Is ngrok free for a static URL?
- Every account gets one static domain at no cost. Additional domains, custom domains and higher limits are on the paid plans — check their pricing page, which moves more often than this one.