Know your
network.
Not just speed — quality. Latency, bufferbloat, packet loss, application readiness. Open source, no tracking, no ads.
Three ways to test.
Different questions need different measurements. Pick the mode that matches what you want to know.
Quality
Single-connection test with bufferbloat detection and quality scoring. Measures what your connection actually feels like for everyday use.
Best for: Understanding your actual experience
Speed
Parallel-connection test that saturates your link to find maximum throughput. The number your ISP advertises.
Best for: Checking what you pay for
Application
Tests tailored for streaming, gaming, and video calls. Measures the metrics that matter for each activity.
Best for: Knowing what your connection handles
Why this exists.
More than speed
Your 500 Mbps connection feels slow? It's probably latency or bufferbloat, not bandwidth. We measure the metrics that actually determine your experience.
Open source & self-hostable
Your infrastructure, your data. MIT licensed. Run the test server on your own network for internal benchmarking, or use our public servers. No accounts, no tracking.
Works everywhere
Browser, CLI, Go library — same protocol, same server. Automate network quality monitoring in CI, run ad-hoc tests from your terminal, or embed tests in your own app.
This is just the start.
netprofile begins with speed and quality testing, but we're building the open-source toolkit for understanding your internet connection. Network diagnostics, monitoring, traceroute visualization, ISP comparison, historical trends — all open, all yours.
Want to help shape what comes next? Join us on GitHub.
Built in the open.
Three repositories, one protocol. Pick the tool that fits your stack.
Test server. Go + Docker. Handles bandwidth, latency, and WebRTC signaling.
docker run -p 3000:3000 ghcr.io/netprofile/qoe:latestView on GitHub →Browser client library. TypeScript. ESM. Works in any framework.
npm install @netprofile/qoe-jsView on GitHub →Go client library + CLI. Same protocol. Automate testing from your terminal.
go install github.com/netprofile/qoe-go/cmd/qoe@latestView on GitHub →Quick start
import { QOEClient } from '@netprofile/qoe-js'
const client = new QOEClient()
client.setServer({ httpUrl: 'http://localhost:3000', ... })
const results = await client.runQualityTest()
console.log(results.download.bandwidthMbps, 'Mbps')