Real-time CPU, memory, disk, network, and hardware telemetry in a native desktop app β Rust backend, React UI, no Electron.
| Area | Details |
|---|---|
| CPU | Overall load, per-core average, 60s sparkline |
| RAM | Used / total / available, swap usage |
| Disk | Per-drive usage with progress bars |
| Network | Combined and per-interface throughput (KB/s or Mbps) |
| Hardware | Temperature sensors (when available), laptop battery status |
| System | Uptime, swap summary in header |
| History | Rolling 60-second charts for key metrics |
| Tray | Minimize to tray on close, live tooltip, Show / Quit menu |
| Settings | Poll interval, speed units, always on top, transparent window, autostart |
| Alerts | Desktop notifications for high CPU, RAM, or disk usage |
| Export | Download metric history as CSV or JSON |
Closing the window hides Vanta to the system tray instead of quitting the app.
Pre-built Windows installers are published on GitHub Releases:
.msiβ Windows Installer.exeβ NSIS setup
Releases are not created on every commit. See CI & releases below.
| Layer | Technology |
|---|---|
| Desktop shell | Tauri 2 |
| Backend | Rust Β· sysinfo Β· battery |
| Frontend | React 19 Β· TypeScript Β· Vite |
| Styling | Tailwind CSS 4 Β· custom glassmorphism UI |
| Charts | SVG sparklines (no chart library) |
- Rust (stable)
- Node.js 22+
- pnpm (version from
packageManagerinpackage.json) - Tauri prerequisites for Windows
git clone https://github.com/KetusDev/Vanta.git
cd Vanta
pnpm install
pnpm tauri devpnpm tauri buildInstallers are written to src-tauri/target/release/bundle/.
Two separate GitHub Actions workflows:
| Trigger | Action |
|---|---|
Push to main |
β Runs |
Pull request to main |
β Runs |
Push tag v* |
β Does not run (Release workflow handles tags) |
| Other branches | β Does not run |
What it does: pnpm build + cargo check on Windows (~5 min).
What it does not do: build installers or publish a GitHub Release.
| Trigger | Action |
|---|---|
git push origin v1.0.0 |
β Runs |
Regular commit on main |
β Does not run |
What it does: full Tauri build and uploads .msi / .exe to a new GitHub Release.
The tag must match the app version in src-tauri/tauri.conf.json (e.g. version 1.0.0 β tag v1.0.0):
git tag v1.0.0
git push origin v1.0.0Monitor progress under Actions β Release, then check Releases for download links.
vanta/
βββ src/ # React frontend
β βββ components/ # Metric cards, settings, UI primitives
β βββ hooks/ # useMetrics, useSettings
β βββ lib/ # formatting, alerts, export
β βββ types/ # Shared TypeScript types
βββ src-tauri/ # Rust backend
β βββ src/
β β βββ lib.rs # Tauri commands, tray, metrics polling
β β βββ metrics.rs # Serializable metric structs
β βββ tauri.conf.json
βββ .github/workflows/
β βββ ci.yml # Validate on push / PR
β βββ release.yml # Build & publish on tag
βββ docs/PLAN.md # Original implementation notes