Skip to guide

Dev Tunnels alternative: Groundhog compared with Dev Tunnels and ngrok

Looking for a Dev Tunnels alternative?

If Dev Tunnels’ 5 GB monthly cap or changing addresses get in your way, Groundhog gives your local app a free public HTTPS address that you name yourself, with no monthly data cap and no warning page for visitors. Per-minute and concurrent-request limits apply. ngrok’s free plan is another option, with 1 GB of data and 20,000 requests a month.

Groundhog, ngrok’s free plan and Dev Tunnels compared

ComparedGroundhogngrok free planDev Tunnels
Monthly dataNo limit1 GB. Paid plans start at $10 a month.5 GB per user. No paid option.
Monthly requestsNo limit. 6,000 a minute per workspace.20,000No monthly count. 1,500 a minute per port.
Your addressYou choose it, such as my-tunnel.groundhog.unifinity.comOne assigned domain you can’t change, such as your-name.ngrok-free.appGenerated, such as l3rs99qw-3000.usw2.devtunnels.ms. Changes if the tunnel is replaced.
What visitors see firstYour appA warning page on browser requestsAn anti-phishing page on the first browser visit
Request body size100 MBNot stated in ngrok’s free-plan limits16 MB
TeamsWorkspaces with owners, members and invite linksOne user on the free planAccess for a Microsoft Entra tenant or GitHub organization
.NET AspireNuGet package; uses the tunnel’s key from user secretsCommunity Toolkit package that runs ngrok in a containerOfficial package; uses the devtunnel CLI and your signed-in account

When is Groundhog the better fit?

When you’ve hit the Dev Tunnels 5 GB monthly cap, when webhook or OAuth callbacks break because the address changed, or when visitors are confused by a warning page. Groundhog also suits teams that want a shared dashboard showing each tunnel’s live requests, headers and bodies.

When is Dev Tunnels the better fit?

When you rely on port forwarding built into Visual Studio or VS Code, when you want access limited to your Microsoft Entra tenant or GitHub organization, or when your traffic stays well under 5 GB a month and the address rarely matters. Groundhog forwards HTTP and WebSocket traffic only; it doesn’t carry other TCP protocols.

What are Groundhog’s limits?

There’s no monthly data or request cap. To keep the shared service fair, each workspace can store 50 tunnels and start 6,000 requests a minute, each tunnel can have 200 requests in progress, request bodies can be up to 100 MB, and your app has 100 seconds to start a response. Capacity is best effort.

The Groundhog CLI needs the .NET 10 SDK. With .NET Aspire, the NuGet package connects from your AppHost instead.

How does ngrok’s free plan compare?

ngrok’s free plan includes 1 GB of data and 20,000 HTTP requests a month and one assigned domain you can’t change. Browser visitors see a warning page first. ngrok’s paid plans raise these limits, starting at $10 a month.

Move your app from Dev Tunnels to Groundhog

Groundhog has no monthly data cap. Its limits apply per minute and to requests in progress instead: for example, 6,000 new requests a minute per workspace and 200 requests in progress per tunnel, with request bodies up to 100 MB (Dev Tunnels allows 16 MB). See every limit.

The command that replaces devtunnel host -p 5000 is groundhog host my-tunnel --port 5000.

  1. Sign in and create a free workspace.
  2. Create a tunnel named, for example, my-tunnel, and copy its connection key. Names are unique across Groundhog, so pick your own.
  3. Install the CLI, which needs the .NET 10 SDK:

    Install Groundhog

    Shell
    dotnet tool install --global Groundhog.Cli --version 0.4.0-preview.7
  4. Enter the key privately in your terminal. Then, with your app running on port 5000, connect it, using your app’s real port:

    Connect your local app

    Shell
    groundhog host my-tunnel --port 5000

    Your app is now at https://my-tunnel.groundhog.unifinity.com, and that address stays the same each time you connect.

  5. Replace the old Dev Tunnels address with the new one in your OAuth and webhook settings, then send one test sign-in or delivery.

Using .NET Aspire? Connect from your AppHost instead.

Sources

Sources reviewed . Provider behavior and limits can change.