Introduction
Have you ever felt your internet connection dragging, but you aren't sure if it's just a momentary glitch or a consistent pattern?
I built Velo, a desktop application that helps you track your network speed over time without the hassle of manually running speed tests in your browser.
In this post, I'll share why I built it, how it works, and the technology stack behind it.
Links
- GitHub Repository: github.com/kanywst/velo
What is Velo?
Velo is a network speed measurement tool designed to run as a desktop application.
It automatically runs a speed test once every hour to record your Download, Upload, and Latency metrics. It then visualizes this historical data on an interactive chart, allowing you to spot trends at a glance. You can, of course, trigger a manual measurement whenever you want.
Fun fact: The name velo comes from the Italian word veloce, which means "fast." Why Italian? Honestly, there’s no deep meaning—I was just looking for a name and thought it sounded cool!
Motivation
I noticed that my internet connection tends to get sluggish at night.
Usually, when this happens, I open FAST.com to check the speed. However, opening a browser and typing in the URL every single time is tedious. More importantly, a single test only tells me the speed right now—it doesn't help me understand the trend or prove that "yes, it is consistently slow every night at 9 PM."
I wanted an application that would automatically measure and record the speed periodically so I could analyze the patterns.
While I know there are similar applications and more feature-rich monitoring tools out there, I believe that reinventing the wheel is often the best way to learn.
Features
-
Speed Test: Measures download speed, upload speed, and latency using
speedtest-go. - Automatic Monitoring: Runs in the background and tests speed every hour.
- Visualization: Displays your network history on an interactive Time vs. Speed chart.
- Cross-Platform: Works on macOS, Windows, and Linux.
Tech Stack
To build this, I used Wails, which allowed me to write the backend in Go and the frontend using standard web technologies.
- Framework: Wails v2
- Backend: Go (v1.25+)
- Frontend: Vue.js (Node.js & npm)
-
Library:
speedtest-gofor the core measurement logic.
Getting Started
If you want to try it out or contribute, you can build it from the source.
Prerequisites
- Go (v1.25 or later)
- Node.js & npm
-
Wails CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
Installation & Running
-
Clone the repository:
git clone [https://github.com/kanywst/velo.git](https://github.com/kanywst/velo.git) cd velo -
Install dependencies:
# Backend go mod tidy # Frontend cd frontend npm install cd .. -
Run in Development Mode:
wails dev -
Build for Production:
wails build
The binary will be generated in build/bin.
Conclusion
Velo is a personal project born out of a simple need to verify my ISP's performance.
It is still very much a work in progress, and I suspect there are a few bugs lurking around! I plan to keep improving it and fixing issues as I find them.
Please give it a try and let me know what you think in the comments! If you find it useful (or just like the name), I would appreciate a star on GitHub.

Top comments (0)