A premium, all-in-one fitness ecosystem designed for precision workout tracking and high-performance analytics.
Performance Tier: Ultra-Optimized • Cross-Platform • Real-time Cloud Sync • 120Hz Native Animations
- About GymGo
- Platform Availability
- Key Features
- System Architecture & Tech Stack
- Repository Structure
- Installation & Setup
- Author & Support
GymGo is an athlete-focused fitness tracking platform created to eliminate friction from workout logging, calorie management, and progressive overload tracking. Built with React Native (New Architecture), Expo, and Supabase, it pairs a smooth mobile companion app with a lightning-fast web showcase powered by Vite 8.
| Platform | Deployment State | Target Architecture |
|---|---|---|
| Official Web Portal | Live | Static Vite 8 bundle deployed on Netlify Edge (gymgo.milanwebportal.com) |
| Android Application | In Development | React Native 0.81 with EAS Build and Google Health Connect integration |
| iOS Application | In Development | Expo 54 universal build with Apple HealthKit support |
- Smart Workout Logging: Friction-free set, rep, and weight entry with automated rest timers and history recall.
- Precision Nutrition Budgeting: Calorie and macro target tracking with fast-entry meal logging and historical charts.
- Performance Analytics: Volume distribution graphs, 1RM estimates, and progressive overload forecasting via ChartKit.
- Real-Time Cloud Synchronization: Instant profile, workout, and metric replication backed by PostgreSQL and Supabase Auth.
- Fluid 120Hz Interface: Built with Reanimated 4 and NativeWind (Tailwind CSS) for stutter-free gesture responses.
- AI-Assisted Recommendations: Integrated Google Generative AI routines for intelligent workout adjustments.
flowchart TD
User[Athlete / User] -->|Mobile Experience| MobileApp[React Native Mobile App]
User -->|Web Showcase & Portal| WebApp[Vite 8 Web Application]
subgraph Mobile Client Architecture
MobileApp --> Navigation[React Navigation v7 Stack & Tabs]
MobileApp --> StateLayer[Zustand Global Store]
MobileApp --> UI[NativeWind Tailwind & Reanimated]
end
subgraph Backend & Cloud Layer
MobileApp <-->|Real-time Data Sync| Supabase[(Supabase PostgreSQL)]
MobileApp <-->|AI Routines| GeminiAI[Google Generative AI]
end
subgraph Production Hosting
WebApp --> NetlifyEdge[Netlify CDN Hosting]
end
- Mobile Framework: React Native 0.81, Expo 54, React 19
- State Management: Zustand 5
- UI & Styling: NativeWind (Tailwind CSS 3.3), Lucide React Native, Reanimated 4
- Web Portal: Vite 8, PostCSS, Tailwind CSS
- Backend & Authentication: Supabase (PostgreSQL, Realtime, Row Level Security)
- AI Engine: Google Generative AI SDK
GymGO/
|-- Application/ # React Native / Expo mobile application source
| |-- components/ # Reusable UI widgets and layout components
| |-- navigation/ # Tab and Stack navigation configs
| |-- screens/ # Workout, Nutrition, Analytics, Profile screens
| |-- services/ # Supabase and AI client services
| |-- store/ # Zustand global state slices
| `-- App.js # Application entry point
|-- Website/ # Vite-powered web showcase and landing page
| |-- dist/ # Production build output
| |-- index.html # Landing page with interactive showcases
| `-- vite.config.js # Vite 8 build configuration
|-- netlify/ # Netlify deployment rules and redirects
`-- README.md # Project documentation
- Node.js 20.x or 22.x LTS
- npm or yarn
- Expo Go app (on physical phone) or Android Studio / Xcode simulator
- Navigate to the mobile application directory:
cd Application - Install dependencies:
npm install
- Start the Expo development server:
npx expo start
- Scan the QR code with Expo Go (Android) or the Camera app (iOS) to launch the app.
- Navigate to the website directory:
cd Website - Install dependencies:
npm install
- Start the local preview server:
npm run dev
- Build for production:
npm run build
Hi! I am Milan, a 20-year-old student and web developer from Serbia. GymGo was created to simplify the way athletes and fitness enthusiasts track workouts and nutrition without ad bloat or subscription paywalls.
If GymGo helps you stay consistent with your training goals and you want to support my late-night coding sessions, you can buy me a coffee!
Every contribution helps keep cloud sync free, maintains database servers, and accelerates new mobile releases. Thank you!
Developed and maintained by Milan Petkovski.
- Website: https://gymgo.milanwebportal.com
- Main Portal: https://milanwebportal.com
- Contact Email:
contact@milanwebportal.com - Support: Support via PayPal
This project is licensed under the MIT License.