ngrok is a reverse proxy that creates a secure tunnel on your local machine along with a public URL you can use for browsing your localhost site. It captures and analyzes all traffic over the tunnel for later inspection and replay.
with ngrok you can do expose any http/tcp service behind a NAT or firewall to the internet on a subdomain of ngrok.com, Inspect all http requests/responses that are transmitted over the tunnel and Replay any request that was transmitted over the tunnel.
This is useful for developing any services which consume webhooks (HTTP callbacks) by allowing you to replay those requests or demoing an app at a hackathon without deploying. The most common usage of ngrok sets up a tunnel to localhost using the random hostname ngrok provides by default, e.g., 5a3e3614.ngrok.com.