A modern workout and fitness progress tracker built for lifters who want a clean, fast, and distraction-free experience. Log workouts, monitor strength progression, manage training templates, and visualize long-term performance through an intuitive interface.
GymPro is a full-stack fitness tracking application built with React, TypeScript, Vite, Tailwind CSS, and Supabase.
The application focuses on simplicity, performance, and scalability while providing everything needed to track workouts, estimate one-rep maxes, manage exercises, and analyze training progress.
- Log workouts with sets, reps, and weight
- Automatic workout volume calculations
- Built-in rest timer
- Personal Record (PR) detection
- Complete workout history
- Built-in exercise library
- Custom exercise creation
- Workout templates and routines
- Search and filtering
- Estimated One Rep Max (1RM)
- Strength progression
- Volume analytics
- Interactive charts
- Body weight tracking
- Email & Password authentication
- Secure user accounts
- Protected routes
- Session management
- Cloud synchronization
- Persistent workout history
- CSV / JSON export
- Backup and restore support
- React 19
- TypeScript
- Vite
- Tailwind CSS v4
- Motion
- Base UI
- Radix UI
- shadcn/ui
- Lucide React
- Supabase
- PostgreSQL
- Supabase Authentication
- Recharts
- dnd-kit
src/
├── components/
├── pages/
├── hooks/
├── lib/
├── services/
├── types/
├── utils/
└── assets/
- Node.js 20+
- npm
git clone <repository-url>
cd gym-progress-tracker
npm installCreate a .env file in the project root.
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_keyStart the development server:
npm run devBuild the project:
npm run buildPreview the production build:
npm run previewRun TypeScript checks:
npm run lintGymPro uses Supabase PostgreSQL as its primary database.
Core entities include:
- Users
- Workouts
- Exercises
- Workout Templates
- Personal Records
- Body Measurements
Supabase provides:
- Authentication
- PostgreSQL Database
- Row Level Security (RLS)
- Real-time capabilities
- REST and client APIs
| Command | Description |
|---|---|
npm run dev |
Start the development server |
npm run build |
Create a production build |
npm run preview |
Preview the production build |
npm run lint |
Run TypeScript type checking |
GymPro is designed around a few core ideas:
- Minimal interface
- Fast interactions
- Responsive design
- Clean data visualization
- Long-term progress tracking
- Scalable architecture
- AI workout recommendations
- Progressive overload insights
- Nutrition tracking
- Calendar view
- Offline support
- Workout sharing
This project is licensed under the MIT License.