A workout tracking app built for progressive overload training using Lyle McDonald's Generic Bulking Routine (GBR).
- 💪 Track workouts with sets, reps, and weights
- 📊 Progressive overload charts and history
- ⚙️ Manage and customize exercises
- 📱 Mobile-first responsive design
- 🔐 Simple password authentication
This app is designed around the Generic Bulking Routine (GBR) by Lyle McDonald, an Upper/Lower split done 4 days per week:
| Day | Workout |
|---|---|
| Monday | Upper 1 |
| Tuesday | Lower 1 |
| Thursday | Upper 2 |
| Friday | Lower 2 |
The GBR focuses on moderate volume (6-8 sets per muscle group per session) with a mix of heavy compound movements (6-8 reps) and higher-rep accessory work (10-12 reps). For full program details, see Lyle's article on hypertrophy programs.
- Next.js 15 (App Router)
- TypeScript
- Vercel Postgres
- shadcn/ui + Tailwind CSS
- Recharts
- Node.js 18+
- Vercel account (for Postgres database)
-
Clone the repository:
git clone https://github.com/nclandrei/iron.git cd iron -
Install dependencies:
npm install
-
Set up environment variables:
cp .env.example .env.local
Configure the following:
WORKOUT_PASSWORD: Your login passwordSESSION_SECRET: Generate withopenssl rand -base64 32- Vercel Postgres connection strings
-
Seed the database:
npm run seed
-
Start the development server:
npm run dev
Deploy to Vercel:
- Push to GitHub
- Import project in Vercel dashboard
- Add environment variables (
WORKOUT_PASSWORD,SESSION_SECRET) - Vercel auto-provisions the Postgres database
- Run
vercel env pull .env.local && npm run seedafter first deploy
MIT