Why ngrok?
Environment Independence
ngrok works everywhere. But more than that, it works the same everywhere.
You can run your services in AWS, GCP or Azure. You can run services in your on-prem data centers or on IoT devices like a Raspberry Pi. You can run your services on hosted container platforms like Heroku, Render or Fly. You can even run services on your laptop. ngrok works the same in any environment and on any network.
Unified Ingress
ngrok consolidates the traditional pile of ingress tools into one platform.
Traditionally, creating ingress for your application services requires stitching together multiple different software components. There's a reverse proxy, load balancer, API gateway, firewall, delivery network, WAF, application middleware, DDoS protection and more.
ngrok collapses these components into a platform with unified configuration and observability.
Production-Ready Sooner
ngrok helps you deliver your app to production sooner.
Making your app production-ready requires a lot of setup work to secure it with authentication, protect it from attacks and accelerate its traffic so that it's fast. ngrok does all of that automatically for you so you can focus on building your app and not networking configurations.
Reusable App Scaffolding
Don't build auth again. Or rate-limiting. Or other undifferentiated functionality. You can offload it to ngrok instead.
ngrok's module system enables you to spend less time building table-stakes functionality and more time building new features for your app instead. You and your team won't need to rebuild the same scaffolding systems over and over again.
Application-Layer Abstractions
ngrok helps you stop working with the assembly language of networking.
For as much as we've abstracted away developer complexity with high-level languages, we still expect software engineers to wrestle with arcane networking minutia. ngrok abstracts away the complexity of low-level concepts like CIDRs, ports and TLS Certificates and instead provides you with control over application primitives like authentication and request routing.
Contractual Safety
ngrok establishes contractual application control of your ingress platform.
Great software is built on well-defined contracts between components. As more business logic is pushed to proxies in front of the application, the contract between the reverse proxy and the upstream application becomes critical. Unexpected changes in behavior between them cause incidents. Traditionally, that contract is implicitly defined in IT tickets.
ngrok's Agent SDKs change that. Instead, the application itself defines via API exactly what operations it expects the ingress platform to perform on its behalf and how it expects to receive information about those behaviors.
This is a new, safer programming model where developers can safely offload additional functionality to the ingress platform without fear of the contract being broken.