Live network intelligence
Know when the
network is ready.
A tiny, zero-dependency signal for building experiences that adapt to the connection—not assumptions.
No tracking. No payload downloads. Just tiny connectivity probes.
CONNECTION STATUS
Ready to scan
Run a check against geo-diverse endpoints
ENDPOINT ACTIVITY
Waiting to scan
- Every contacted endpoint will appear here.
›
await checkInternet()
Built for the messy internet
One signal.
Better decisions.
Blocked domains, captive portals, slow satellite links—real networks are complicated. Your interface doesn’t have to be.
01
Geo-diverse by design
Global endpoints race in parallel. Region-aware probes join automatically where they matter.
02
Useful, not vague
Get the winning probe, timings, failures, and a machine-readable outcome reason.
03
Clean by default
Losing requests are aborted instantly. Bring your own AbortSignal for lifecycle-safe UI code.
Drop-in intelligence
Three lines to an adaptive experience.
app.js
import { checkInternet } from "is-fast-internet";
const result = await checkInternet();
document.body.dataset.quality = result.isFast
? "rich"
: "lite";