Skip to content
← Apps & tools

Bike Garage

A desktop app to manage bikes, components and consumables, with wear thresholds in kilometres and ride import from GPX files, all stored in a local SQLite database.

Role
Author
When
April 2026 to September 2026
Stack
Electron, React, Vite, SQLite, Recharts, Leaflet

Context

Bike Garage tackles the same problem as VeloMetric, keeping track of what wears out on a bike, but as a desktop app that works with real ride files instead of manual entries. Everything stays on the computer: there is no account and no cloud sync.

What I built

  • Bikes and components. Several bikes, each with a name, picture and notes, and the components fitted to it (chain, cassette, brakes and so on) with brand and installation mileage.
  • Consumables with thresholds. Each consumable has a kilometre limit, and a progress bar shows how much of it has been used.
  • Ride import. GPX files are parsed in the app to extract distance, elevation, heart rate and power; rides are listed with their metrics and drawn on a Leaflet map.
  • Dashboard. Aggregate statistics with Recharts.

Architecture

The app follows the usual Electron split. The main process owns the SQLite database (through better-sqlite3) and exposes a narrow API through a preload script, so the React interface, built with Vite, never touches the file system or the database directly. The schema has four tables: bikes, components, consumables and activities. npm run build packages a Windows executable.

Status

A personal tool; the interface is in Italian.

← All projects