Speed Test
Personal Project — Summer 2026
A self-hosted alternative to third-party speed test services, this single-page app measures download speed, upload speed, and ping directly against the server hosting this site — with live-updating results and connection details (visitor IP and server identity) so you know exactly what you're testing against.
Ping is measured via five sequential requests, discarding the warm-up request and
reporting the median round-trip time. Download throughput streams a generated
payload via the Streams API, reading it incrementally for live progress; upload
throughput sends a generated payload via XMLHttpRequest, using
upload.onprogress for live readings. An Express server serves the page
and API from the same origin.
Highlights
- Download, upload, and ping measurements (Mbps / ms) against this site's own server
- Live progress updates at least once per second during transfer phases
- Connection details: visitor public IP and server location/identity
- Responsive layout from 320px and up, with clear error/retry handling