Skip to content
CORY OLSSON
Menu
My projects / Motorcycle software

MotoGarage.

Running in my homelab · In development

The garage memory I wanted.

LubeLogger wasn't giving me what I needed for Larry, so I started building my own motorcycle maintenance app. Service history, parts, receipts, tools, and scheduled maintenance—all in one place.

MotoGarage showing Larry's maintenance scheduler, a scheduled engine oil change, mileage and date, and completion controls.
Maintenance Scheduler — scheduled engine oil change.
01 / In the garage

Keep the history.

MotoGarage service history showing dated maintenance entries for speed bleeder, front wheel, fork installation and bearing work.
Service history — work logged on Larry.
Service, parts, mileage

Every job has a record.

I can record the work, mileage, dates, installed parts, and documents for each motorcycle. Larry's front-end rebuild is already logged in the app.

02 / Receipts and inventory

More than an oil log.

MotoGarage batch receipt upload with automatic extraction controls.
Batch receipt upload and extraction.
MotoGarage tool inventory showing saved items, SKUs, edit controls and purchase history.
Tool inventory and purchase history.
03 / The stack

Under the hood.

Frontend

React + Vite

JavaScript/JSX and CSS.

API

FastAPI

Python, Uvicorn, and Pydantic v2.

Data layer

PostgreSQL 18

SQLAlchemy 2 and Alembic migrations.

Deployment

Docker Compose

Ubuntu VM on Unraid; Nginx serves the frontend.

04 / Development

Working and evolving.

Built

In the app.

  • Motorcycle garage with mileage, service history, and parts tracking
  • Document uploads, receipt extraction, and review workflow
  • Tool and shop-supply inventory with purchase history
  • Maintenance schedules based on miles, time, or both
  • Mark Completed action and owner/editor/viewer access controls
Up next

On the roadmap.

  • Link schedule completion with service-history creation
  • Maintenance overview across bikes and reminders
  • Further improvements to receipt and inventory linkage