A modern, mobile-first personal workout manager built with Next.js. Track your workouts, personal records, achievements, and body measurements.
by Asrap
- Monthly workout statistics
- Water intake tracker (resets daily)
- Training mode selector (Strength/Hypertrophy/Endurance)
- Daily quest system
- Hourly motivational quotes
- Weekly workout plan (Upper/Lower body split)
- Exercise tracking with sets/reps
- Rest timer with audio cues
- Video tutorials for each exercise (YouTube embed)
- Swim day tracking
- 55 achievement badges across 4 difficulty levels
- Sound notification on unlock
- Categories: Workouts, Streaks, PRs, Swimming, Time-based, Body parts
- Workout history calendar
- Personal Records (PR) tracking with CRUD
- Body measurements tracking
- Streak counter
- Language switcher (Indonesian 🇮🇩 / English 🇺🇸)
- Reset all data with confirmation
- Light/Dark theme toggle
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- State: React Hooks + localStorage
- Deployment: Vercel-ready
- Node.js 18+
- npm or yarn
# Clone the repository
git clone https://github.com/yourusername/switchgym.git
# Navigate to project
cd switchgym
# Install dependencies
npm install
# Run development server
npm run devOpen http://localhost:3000 in your browser.
npm run build
npm run startsrc/
├── app/ # Next.js App Router pages
│ ├── page.tsx # Homepage
│ ├── schedule/ # Workout schedule
│ ├── progress/ # Progress & achievements
│ ├── pr/ # Personal records
│ └── measurements/ # Body measurements
├── components/ # Reusable components
│ ├── BottomNav.tsx
│ ├── RestTimerModal.tsx
│ ├── VideoTutorialModal.tsx
│ ├── SettingsModal.tsx
│ └── AchievementNotification.tsx
├── contexts/ # React contexts
│ ├── ThemeContext.tsx
│ └── LanguageContext.tsx
├── data/ # Static data
│ ├── schedule.ts # Workout plan
│ ├── timer.ts # Training modes
│ └── quotes.ts # Motivational quotes
└── lib/ # Utilities
└── storage.ts # localStorage handlers
- Push to GitHub
- Connect repository to Vercel
- Deploy automatically
This project is open source and available under the MIT License.
Asrap - Creator & Developer
Made with ❤️ and 💪