๐Ÿ’ช FitnessTracker โ€” Your Complete Fitness Companion

A privacy-first Progressive Web App for tracking workouts, runs, walks, boxing, body metrics, and daily wellness โ€” all stored on your own server. No accounts, no cloud, no third-party data sharing.

Install it on any device. It works offline, syncs when you're back, and looks great in light or dark mode.
FitnessTracker icon
Platforms: iOS ยท Android ยท Desktop (PWA, installable everywhere)

Who it's for

FitnessTracker is for anyone who wants to take their fitness seriously without handing their data to a third-party service. No subscription fees, no ads, no accounts โ€” just you, your browser, and a lightweight server you control.

  • Home gym users โ€” track bodyweight, dumbbell, and flexibility workouts with 195 pre-loaded exercises (37 cardio, 116 strength, 42 flexibility)
  • Runners & walkers โ€” log runs and walks with distance, duration, and pace, with stats over time
  • Boxers โ€” log sessions with rounds, kcal/min, and notes; monthly breakdowns and PRs
  • Weight watchers โ€” chart your weight journey with goal tracking and BMI calculation
  • Wellness-minded people โ€” daily mood, energy, sleep, and stress check-ins with 8-week trends
  • Privacy-conscious fitness enthusiasts โ€” everything stays on your server; export/backup anytime

What it can do

๐Ÿ‹๏ธ Workouts

195 exercises across cardio, strength, and flexibility โ€” 5 circuit templates (Basic, Calisthenics, Beginner Calisthenics, Cardio, Dumbbells), Tabata mode with fixed 20s/10s intervals, configurable rounds, warmup/cooldown phases, and a full-screen workout runner with progress ring, audio cues, and text-to-speech.

๐Ÿƒ Run & Walk Tracking

Log runs and walks with distance, duration, pace, and randomized note prompts. Stats show total distance, best pace, and average pace over time.

๐ŸฅŠ Boxing Tracking

Log boxing sessions with duration, rounds, kcal/min, and notes. Track total sessions, hours, kcal, personal records, and monthly breakdowns with trend charts.

๐Ÿ“Š History & Stats

Session history with date range filters, activity-colored cards, weekday bar chart, and a GitHub-style contribution heatmap. JSON import/export of all your sessions. Streak tracking with total sessions, hours, and calories burned.

โš–๏ธ Health & Wellness

Weight tracking with goal progress bars and BMI calculator. Personal records across weight, measurements, performance, runs, walks, and boxing. Body measurements (waist, hips, chest, arms, thighs, neck) with before/after deltas. Daily wellness check-ins โ€” mood, energy, stress, sleep hours โ€” with 8-week trend charts. Health score (0โ€“100) combining BMI, workout consistency, streak, and measurements.

๐ŸŽ Apple Health Import

Import your Apple Health export ZIP โ€” workouts and health metrics are automatically parsed and added to your history, with a Workout Intensity scatter chart. No manual data entry needed if you're coming from an Apple Watch.

๐Ÿ“ฑ PWA & Offline

Installable on iOS, Android, and desktop. Works offline with service worker precaching. Push notification support via Web Push API. Swipe navigation, light/dark theme, audio mute, and selectable date format (D/M or M/D).

Screenshots

Workout tab with quick-log cards and templates:

FitnessTracker workout tab

Full-screen workout runner with exercise image, progress ring, and timer:

FitnessTracker workout runner

Exercise library with search and category filters:

FitnessTracker exercises

History with filters, activity chart, and session cards:

FitnessTracker history

Health dashboard with streaks, weight logging, and personal records:

FitnessTracker health

Stats dashboard with training mix and daily charts:

FitnessTracker stats

Tech Stack

React React 19 + TypeScript โ€” Modern component-based UI with full type safety
Vite Vite โ€” Lightning-fast build tool with HMR for development
Tailwind CSS Tailwind CSS v4 โ€” Utility-first styling with CSS variable-driven theme system
FastAPI FastAPI + Python โ€” High-performance async REST API with auto-generated OpenAPI docs
SQLite SQLAlchemy + SQLite โ€” ORM with Alembic migrations for safe schema evolution
Docker Docker Compose โ€” One-command deploy with Nginx reverse proxy, multi-arch builds
Node.js Playwright + Vitest โ€” End-to-end browser tests + unit tests (258 backend, 122 frontend, 38 E2E)

CI/CD

Every push to main triggers a full pipeline: lint โ†’ unit tests (backend + frontend) โ†’ E2E (Playwright) โ†’ Docker multi-arch build & push to GHCR โ†’ auto-deploy to the VPS via SSH.

Why I built it

I wanted a fitness tracker that didn't require an account, didn't sell my data, and worked on every device I own. Most fitness apps lock your data behind a subscription or push you into a specific ecosystem. FitnessTracker is the opposite: self-hosted, privacy-first, and fully open source. Your data lives in a SQLite file you can back up, export, or inspect anytime.

Source Code

The project is open source and available on GitHub