Jonathan Contreras homepageJonathan Contreras
HomeAboutProjectsBlogSetupServicesContact

Jonathan Contreras

Full-Stack Developer building AI-powered tools and web products that solve real problems for real people.

Quick Links

HomeAboutProjectsBlogSetupServicesContact

Get in Touch

[email protected]

Houston, TX

GitHubLinkedInRSSResume

© 2026 Jonathan Contreras. All rights reserved.

Back to Projects

Fixr - Vehicle Maintenance Tracker

FIXR is a full-stack web application that simplifies vehicle maintenance by tracking service history and sending timely reminders. It features Fixy, an AI mechanic assistant powered by Gemini that provides easy-to-understand maintenance explanations, cost estimates, and DIY advice, plus Google Maps integration to find nearby mechanics.

Next.jsVercelJavaScriptConvexGemini APINextAuthResendTailwind CSS
Live DemoVideo Demo
Fixr - Vehicle Maintenance Tracker
<2s
AI Response Time
95%+
Reminder Accuracy
100+
Active Vehicles

The Problem

Vehicle maintenance is confusing and expensive. Most people don't know when to service their car, what maintenance actually means, or whether they're being overcharged by mechanics. Missed maintenance leads to costly repairs; unnecessary maintenance wastes money.

Existing solutions are either too technical (maintenance manuals), too generic (calendar reminders), or vendor-locked (dealership apps). People need a personal maintenance assistant that speaks plain English and keeps their specific vehicle history.

My Approach

I built FIXR as a personal vehicle maintenance companion that tracks service history, sends intelligent reminders, and provides AI-powered advice through "Fixy," a mechanic assistant that explains maintenance in everyday language.

The app uses a dashboard-first interface showing a vehicle health score, pending tasks, and AI-generated maintenance suggestions based on mileage and service history. Each suggestion includes cost estimates and the reasoning behind the recommendation.

Integration with Google Maps helps users find nearby mechanics with ratings and reviews. The AI assistant can analyze service quotes, explain technical terms, and help users decide whether recommended service is actually necessary.

Visual Showcase

FIXR Dashboard with vehicle health score and smart maintenance suggestions

The dashboard gives users an at-a-glance health score, pending task count, and AI-generated suggestions based on their vehicle's mileage and service history.

Fixy AI mechanic assistant answering a question about a 2021 Mazda3 at 70k miles

Fixy, powered by Gemini, gives vehicle-specific maintenance advice in plain language — not generic chatbot responses.

Dashboard showing overdue and upcoming maintenance tasks with priority badges and mileage progress

Tasks are automatically prioritized by urgency. Upcoming tasks include mileage progress bars showing how close the vehicle is to the service threshold.

Add Maintenance Task modal with due date, due mileage, priority, and cost fields

Users can create custom maintenance reminders with both date and mileage triggers. Priority is auto-calculated but can be manually overridden.

Add Service Record modal with provider, cost, mileage, and receipt upload fields

Logging a completed service captures provider, cost, mileage, and an optional receipt upload to build a full verifiable maintenance history.

Technical Deep Dive

Why Convex over Supabase or Firebase? Convex provides real-time reactivity with a better TypeScript experience. Queries automatically update when data changes, perfect for maintenance reminders that depend on mileage and time. The reactive queries mean no manual cache invalidation.

Why Gemini API? Google's Gemini excels at explaining technical concepts in simple terms and has strong reasoning for maintenance decisions. I crafted prompts that make it act as a helpful mechanic, not a generic chatbot. The system prompt includes car maintenance context, cost awareness, and safety-first guidance.

The reminder system uses Convex scheduled functions that run daily, checking each vehicle's maintenance schedule against current mileage and time since last service. Resend handles email delivery with customizable notification preferences.

NextAuth with database sessions provides secure authentication. I chose the Credentials provider for email/password auth, storing hashed passwords in Convex. Session tokens are HTTP-only cookies to prevent XSS attacks.

The Google Maps integration uses the Places API to search for mechanics within a configurable radius, filtering for high ratings and returning detailed information including hours, phone numbers, and user reviews.

Challenges & Lessons

Challenge: AI hallucinations about maintenance costs and schedules. Solution: Implemented a fact-checking layer that validates AI responses against manufacturer maintenance schedules and typical cost databases. The AI now cites sources for major claims.

Challenge: Users input mileage inconsistently (some regularly, some sporadically). Solution: Added mileage estimation based on time and average driving patterns, with clear UI indicators when using estimated vs. actual mileage.

Challenge: Email deliverability for reminders. Solution: Switched from SendGrid to Resend, implemented proper SPF/DKIM records, and added a digest option to reduce email volume (weekly summary instead of individual reminders).

Challenge: Mobile users needed quick access while at mechanics. Solution: Built a progressive web app with offline support for viewing service history, even without internet connection.

Key Lesson: AI is powerful for explanation and advice but needs guardrails for factual information. Users trust the app for maintenance decisions, so accuracy is critical.

If I rebuilt this, I'd add OCR for service receipts (snap a photo to auto-populate service details) and integration with OBD-II readers for automatic mileage tracking.

Want to see it in action?

Explore the live application or dive into the source code to see how it works.

Live Demo