> ## Documentation Index
> Fetch the complete documentation index at: https://ngrok.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Why ngrok?

> Learn why ngrok provides environment independence, unified ingress, and helps you deliver production-ready applications sooner.

## 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 high-level languages have abstracted away developer complexity, software engineers still 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.

## Pay as you go

Get started without a huge bill.

Unlike other networking software that has unpublished pricing that only enterprises can afford, anyone can get started using the paid features of ngrok with just a credit card.
ngrok's pricing is public and predictable: you pay only for what you use.

## Parity between development and production

ngrok eliminates bugs that arise from differences between local dev and production environments.

Many developers have felt the pain of something failing in production that worked while testing it locally.
Because ngrok works everywhere, you can run it on your local development environment exactly the same way you run it to deliver your production service.

## As-a-service

ngrok reduces your operational burden by operating the global delivery network
for you.

A global delivery network accelerates your application, but it's a real pain to
operate. Unlike deployable network software that you need to configure and run
yourself, ngrok is a completely managed global service. You can spend less time
operating networking infrastructure and puzzling over missing packets and more
time building value for your customers.

## Built for developers

ngrok puts developers in control with best-in-class developer tooling.

* First-class CLI to all functionality
* Native-language Agent SDKs
* HTTP API to automate configuration tasks
* Extensive documentation
* Programmatic events for observability and automation

## Global acceleration

ngrok accelerates your apps for global clients.

In addition to using its global server load balancing to improve speeds for
your application's clients by reducing TCP and TLS setup round-trip times,
ngrok also pushes any module behaviors you configure to ngrok's cloud service as well
so authentication, transformations, load balancing and more happen as close to
your customers as possible.

## Network micro-segmentation

ngrok finally achieves true per-workload layer 4 networking security.

Traditional networking architectures often permit applications to speak to each
other directly when they're colocated on the same network without going through
the ingress gateways which enforce auth and policy. This is ultimately the same
security risk that motivated Google to create its BeyondCorp zero-trust architecture model. ngrok
achieves true network isolation for applications without any complex networking
policy so that the only way to access them is via their endpoint URL, even if
they're running next to each other.
