Velo: A Cross-Platform Network Speed Monitor Built with Go & Wails
Source: Dev.to
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:
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. The data is visualized on an interactive chart, allowing you to spot trends at a glance. You can also trigger a manual measurement whenever you want.
Fun fact: The name velo comes from the Italian word veloce, which means “fast.” I chose it simply because it sounded cool.
Motivation
I noticed my internet connection tends to get sluggish at night. Usually I open FAST.com to check the speed, but launching a browser each time is tedious, and a single test only shows the current speed—it doesn’t reveal trends.
I wanted an application that would automatically measure and record speed periodically so I could analyze patterns over time.
While similar tools exist, building my own was 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 network history on an interactive time‑vs‑speed chart.
- Cross‑Platform: Works on macOS, Windows, and Linux.
Tech Stack
- 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 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
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’s still a work in progress, and there are likely a few bugs lurking around. I plan to keep improving it and fixing issues as I find them.
Give it a try and let me know what you think. If you find it useful (or just like the name), a star on GitHub is appreciated.
