Live network intelligence

Know when the
network is ready.

A tiny, zero-dependency signal for building experiences that adapt to the connection—not assumptions.

npm install

No tracking. No payload downloads. Just tiny connectivity probes.

signal-lab / live PRIVATE
CONNECTION STATUS Ready to scan Run a check against geo-diverse endpoints
LATENCY round trip
DOWNLINK browser estimate
PROBES geo-diverse
ENDPOINT ACTIVITY Waiting to scan
  1. Every contacted endpoint will appear here.
await checkInternet()
ZERO DEPENDENCIES ESM + COMMONJS TYPED API ABORTSIGNAL READY

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";
Copied to clipboard