IoT: 2. Feature & Growth Ideas (May 2025) - FrankRay78/NetPace GitHub Wiki
Notes from a research session exploring how to grow NetPace's user base.
NetPace's Distinctive Position
NetPace is not in direct competition with projects like Speedtest Tracker. The key distinctions:
- Single binary, zero setup — runs anywhere without Docker, a database, or a web server. Directly fills the gap Speedtest Tracker's maintainer explicitly said he won't support (bare-metal/LXC installs).
- Scriptable and CI-friendly — clean CSV/JSON output, quiet mode, non-zero exit codes. Fits shell scripts and pipelines in a way a web dashboard never will.
- Developer-first library design —
ISpeedTestService,SpeedTestStub,FaultySpeedTesteretc. allow unit testing against a speed test abstraction. No other tool in this space offers this. - Only well-maintained cross-platform .NET speed test library on NuGet.
Feature Ideas (from community research)
The following came from analysing the Speedtest Tracker v2 discussion thread (Aug 2025–Apr 2026, ~24 comments) and general research into the space.
1. LibreSpeed Provider (--provider librespeed)
Implement ISpeedTestService against the LibreSpeed open-source server protocol as an alternative to Ookla.
Why: Ookla's self-hosted server requires company registration and Ookla approval — not available to individuals. LibreSpeed is fully self-hostable (Docker, one command) with no gating. Users can spin up a server on a VPS in their chosen datacentre and point NetPace at it via --server https://my-vps.example.com, giving a fixed, consistent test endpoint for repeatable results over time.
LibreSpeed CLI supports --server-json / --local-json for custom server lists and --interface for network interface binding. LGPL licensed, no concerns implementing against the protocol.
Audience: Privacy-conscious users, homelabbers, multi-WAN users, anyone wanting reproducible results.
2. Jitter Measurement
Surface jitter (standard deviation across latency samples) alongside the existing latency figure.
Why: NetPace already runs multiple latency samples for server selection — the data is there. Jitter is the metric that matters for VoIP and gaming, and is a frequently requested addition in the space.
Effort: Low.
3. Packet Loss
Report packet loss percentage from the Ookla test result.
Why: The data is already in the Ookla dataset. Multiple users in the Speedtest Tracker v2 thread asked for it specifically.
Effort: Very low.
4. --interface Binding
Allow tests to be bound to a specific network interface (e.g. --interface eth1).
Why: The most recent comment in the Speedtest Tracker v2 thread (Apr 2026) made a detailed case for this. Users with multi-WAN setups (two ISP connections, dual-WAN routers) currently need two separate tool instances. A source interface hint lets the firewall policy-route the test traffic, enabling per-WAN measurements from a single NetPace install.
Audience: Homelab users, small businesses with failover connections.
5. Threshold Alerting (--alert-below)
Exit with a non-zero code and print a warning when results fall below a specified threshold.
Why: Highly requested across the space. For a scriptable CLI this is the right primitive — no notification infrastructure needed, just an exit code that scripts and cron jobs can act on.
Example: netpace --alert-below-download 50mbps
6. ARM and Native AOT Binaries
Expand the GitHub Actions release matrix to produce ARM64 binaries and native AOT builds.
Why: ARM is where self-hosters actually run things — Raspberry Pi, Apple Silicon, Oracle Cloud free tier, AWS Graviton. Native AOT removes the .NET runtime dependency and reduces startup time, which matters for scripts and cron jobs. Largely a CI matrix change.
Positioning Notes
- Lean harder into "no Docker, no setup, just a binary" in the README — this is the gap Speedtest Tracker won't fill and it resonates with the Proxmox/homelab crowd.
- The NuGet library with test doubles is the feature that most clearly differentiates NetPace from every other tool in this space. Worth surfacing more prominently.
- LibreSpeed provider +
--interfacebinding together address the multi-WAN homelab use case end-to-end.