πŸš—

MyGarage

Self-hosted vehicle maintenance tracking application

What is MyGarage?

MyGarage is a self-hosted vehicle maintenance tracker. Add your cars, log services, track fuel economy, and get automated notifications when maintenance is due. It decodes VINs automatically, checks for recalls, and keeps all your receipts and documents in one place.

The app supports multiple users with OIDC/SSO integration (works with Authentik, Keycloak, etc.) so your whole household can manage their vehicles. Garage analytics show spending trends across all vehicles, while individual dashboards break down costs per car.

Everything runs on your own hardwareβ€”no subscriptions, no cloud accounts, your data stays yours. Take a photo of a receipt and OCR extracts the details. Export reports as PDF or CSV when you need them.

Technology Stack

Backend

  • β†’ Python 3.14+ with FastAPI 0.135.3 and Granian 2.7.3 ASGI server
  • β†’ SQLAlchemy 2.0.49 + SQLite (WAL mode) via aiosqlite 0.22.1 or PostgreSQL via asyncpg 0.31.0
  • β†’ Pydantic 2.13.0 for data validation and settings management
  • β†’ JWT auth with Argon2id hashing and OIDC/SSO (authlib 1.6.10)
  • β†’ NHTSA API for VIN decoding and recall checks (httpx 0.28.1)
  • β†’ Tesseract OCR for receipt scanning (PyMuPDF 1.27.2.2)
  • β†’ ReportLab 4.4.10 for PDF generation and matplotlib 3.10.8 for analytics charts
  • β†’ Multi-service notifications via aiosmtplib 5.1.0 for email delivery
  • β†’ APScheduler 3.11.2 for background jobs (maintenance alerts, recall checks, milestones)
  • β†’ LiveLink MQTT telemetry via aiomqtt 2.5.1 for WiCAN OBD2 devices

Frontend

  • β†’ React 19.2.5 + TypeScript 6.0.2 with Bun 1.3.12 runtime and Vite 8.0.8 bundler
  • β†’ Tailwind CSS 4.2.2 with custom garage theme and light/dark mode
  • β†’ React Router 7.14.1 for client-side navigation
  • β†’ TanStack Query 5.99.0 for server state management with automatic cache invalidation
  • β†’ Recharts 3.8.1 for interactive analytics charts
  • β†’ Schedule-X 4.4.0 for calendar UI β€” native TypeScript with React 19 support
  • β†’ date-fns 4.1.0 for date manipulation and formatting
  • β†’ Zod 4.3.6 + React Hook Form 7.72.1 for form validation
  • β†’ Lucide React 1.8.0 iconography and Sonner 2.0.7 for toasts
  • β†’ react-i18next 17.0.2 + i18next 26.0.4 for multi-language support
  • β†’ OpenAPI-generated TypeScript types via openapi-typescript, eliminating manual type drift

Project Statistics

~150,600
Total Lines of Code
~83,200
Python Backend
~67,400
TypeScript Frontend
20
Interactive Pages