Nibble

- Year
- 2026
- Role
- Solo developer
- Status
- Shipped
- Stack
- React · TypeScript · Capacitor · Kotlin · Android
A speed test for mobile data: where the usual apps burn hundreds of megabytes a run, Nibble gets the same answer from a tenth of that — and shows every byte it spends. It also scores what the line is good for, from gaming to 4K.
Measuring without spending
Two paths cost nothing at all. The phone already counts every byte: Nibble reads those counters every two seconds and, while another app is downloading, records the speed it reaches. And latency, jitter and packet loss come from the TCP counters Cloudflare's edge reports in a response header — measured from JavaScript, jitter looked like 30 ms when the real figure was about one.
A budget, not a stopwatch
Downloads and uploads do not run for a fixed time. Each starts small and grows its chunks as it learns the line, leaves TCP slow start out of the result but not out of the bill, stops as soon as the readings settle, and cuts off hard when the budget is gone. A 100 Mbps line proves itself in a second and a half; waiting three would have spent the whole budget.
Under the hood
- 01A platform-independent measurement engine in TypeScript, covered by unit tests
- 02Capacitor on Android with a Kotlin plugin for usage stats and home-screen widgets in three sizes
- 03Scores anchored to real service requirements: streaming bitrates, competitive-gaming latency
- 04No backups of test history (it holds IPs), cleartext refused, nothing sent anywhere but the test







