Skip to content

wulfland/Repstack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

284 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Repstack - Open Source Hypertrophy Training Application

License: MIT

๐ŸŽฏ Vision

Repstack is an open source alternative to commercial hypertrophy training applications, inspired by evidence-based training principles from Renaissance Periodization. Our mission is to make scientifically-backed muscle building programs accessible to everyone, completely free.

๐Ÿš€ Project Goals

  • Open Source & Free: Core functionality will always remain free and open source
  • Progressive Web App: Runs seamlessly on all platforms (iOS, Android, Desktop, Web)
  • Science-Based: Built on proven hypertrophy training principles
  • Privacy-First: Your training data stays with you - works offline
  • Community-Driven: Built by lifters, for lifters

โœจ Features

Phase 1: Core Training Engine โœ…

  • Personalized training program generator
  • Auto-regulation based on user feedback (pump, soreness, recovery)
  • Progressive overload tracking
  • Mesocycle management (4-6 week training blocks)
  • Deload week scheduling
  • Exercise library with user-created exercises and categories (machine, barbell, dumbbell, bodyweight, cable)

Phase 2: Enhanced Experience โœ…

  • Workout logging and history
  • Progress tracking and analytics (1RM, volume, personal records)
  • Custom exercise creation
  • Template library (programs for upper/lower, push/pull/legs, full body splits)
  • Volume landmarks and recovery indicators
  • Exercise substitution recommendations

Phase 3: Advanced Features โœ…

  • Offline-first PWA capabilities
  • Data export/import
  • Training insights and visualizations
  • Multiple training styles (hypertrophy, strength, hybrid)
  • Equipment-based program filtering
  • Mobile and desktop responsive design

Future: SaaS Layer (Optional, Paid)

  • Premium coaching features
  • Advanced analytics
  • Team/coach management
  • Cloud sync across devices
  • Community features and challenges

Note: The core application will always remain open source and free. SaaS features will be optional add-ons.

๐Ÿ› ๏ธ Technology Stack

Framework & Build:

  • React 19 - UI library
  • TypeScript - Type safety
  • Vite - Fast dev server and build tool

PWA Capabilities:

  • vite-plugin-pwa - PWA configuration and service worker generation
  • Workbox - Service worker management
  • IndexedDB - Local data storage via Dexie.js

Code Quality:

  • ESLint - Code linting
  • Prettier - Code formatting
  • TypeScript strict mode - Type checking

๐Ÿ’ป Development Setup

Prerequisites

  • Node.js 18.x or higher
  • npm 9.x or higher (comes with Node.js)

Installation

  1. Clone the repository

    git clone https://github.com/wulfland/Repstack.git
    cd Repstack
  2. Install dependencies

    npm install
  3. Start the development server

    npm run dev

    The app will be available at http://localhost:5173/

Available Scripts

  • npm run dev - Start development server with hot reload
  • npm run build - Build for production
  • npm run preview - Preview production build locally
  • npm run lint - Run ESLint
  • npm run lint:fix - Fix ESLint errors automatically
  • npm run format - Format code with Prettier
  • npm run format:check - Check code formatting
  • npm run type-check - Run TypeScript type checking
  • npm run test - Run unit tests with Vitest (watch mode)
  • npm run test:run - Run unit tests once
  • npm run test:coverage - Run tests with coverage report
  • npm run test:e2e - Run end-to-end tests with Playwright

PWA Features

The app includes full Progressive Web App capabilities:

  • โœ… Offline Support - Service Workers cache assets for offline use
  • โœ… Installable - Can be installed on any device (iOS, Android, Desktop)
  • โœ… Local Storage - IndexedDB stores user data locally
  • โœ… Responsive - Mobile-first design that works on all screen sizes
  • โœ… Fast - Optimized build with code splitting

๐Ÿ“– Complete Offline Functionality Guide - Learn how Repstack works 100% offline

Testing PWA Features

Local Development:

  • PWA features are enabled in development mode
  • Service Worker registers automatically
  • Test offline mode by stopping the dev server after initial load

Production Build:

npm run build
npm run preview

Then open in your browser and test:

  1. Install the app (look for install prompt)
  2. Go offline (DevTools โ†’ Network โ†’ Offline)
  3. App should still work

Project Structure

Repstack/
โ”œโ”€โ”€ public/              # Static assets
โ”‚   โ”œโ”€โ”€ pwa-192x192.png  # PWA icon (192x192)
โ”‚   โ”œโ”€โ”€ pwa-512x512.png  # PWA icon (512x512)
โ”‚   โ”œโ”€โ”€ apple-touch-icon.png  # iOS home screen icon
โ”‚   โ””โ”€โ”€ robots.txt       # SEO robots file
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ components/      # Feature UI components
โ”‚   โ”‚   โ”œโ”€โ”€ common/      # Shared UI (toasts, dialogs)
โ”‚   โ”‚   โ”œโ”€โ”€ exercises/   # Exercise library management
โ”‚   โ”‚   โ”œโ”€โ”€ mesocycles/  # Mesocycle/program management
โ”‚   โ”‚   โ”œโ”€โ”€ onboarding/  # First-time setup wizard
โ”‚   โ”‚   โ”œโ”€โ”€ progress/    # Progress tracking & analytics
โ”‚   โ”‚   โ”œโ”€โ”€ settings/    # App settings
โ”‚   โ”‚   โ”œโ”€โ”€ templates/   # Pre-built training templates
โ”‚   โ”‚   โ””โ”€โ”€ workouts/    # Workout session logging
โ”‚   โ”œโ”€โ”€ layouts/         # Layout components
โ”‚   โ”œโ”€โ”€ hooks/           # Custom React hooks
โ”‚   โ”œโ”€โ”€ db/              # IndexedDB database setup (Dexie)
โ”‚   โ”œโ”€โ”€ lib/             # Utility functions and algorithms
โ”‚   โ”œโ”€โ”€ types/           # TypeScript type definitions
โ”‚   โ”œโ”€โ”€ test/            # Test utilities and helpers
โ”‚   โ”œโ”€โ”€ App.tsx          # Main app component
โ”‚   โ”œโ”€โ”€ main.tsx         # App entry point
โ”‚   โ””โ”€โ”€ index.css        # Global CSS
โ”œโ”€โ”€ e2e/                 # Playwright end-to-end tests
โ”œโ”€โ”€ docs/                # Documentation
โ”œโ”€โ”€ screenshots/         # App screenshots
โ”œโ”€โ”€ index.html           # HTML template
โ”œโ”€โ”€ vite.config.ts       # Vite configuration
โ”œโ”€โ”€ tsconfig.json        # TypeScript configuration
โ”œโ”€โ”€ eslint.config.js     # ESLint configuration
โ””โ”€โ”€ .prettierrc          # Prettier configuration

Database Schema

The app uses IndexedDB (via Dexie.js) with the following tables:

  • users - User profiles and preferences (experience level, units, theme)
  • exercises - Exercise library (user-created and built-in starter exercises)
  • workouts - Workout logs with sets, reps, and weights
  • workoutSets - Individual sets with reps, weight, and RIR data
  • trainingSessions - Auto-regulation feedback (pump, soreness, fatigue ratings)
  • mesocycles - Training blocks (4-6 week programs with split configuration)

See src/db/index.ts for the complete schema and src/types/models.ts for TypeScript interfaces.

Performance Targets

  • โšก Initial load: < 3 seconds on 3G
  • โšก Time to interactive: < 5 seconds
  • ๐Ÿ“ฆ Bundle size: Optimized for mobile
  • ๐Ÿš€ Lighthouse score: 90+ across all metrics

๐Ÿ“‹ Project Status

Current Phase: โœ… Core Application Complete โ†’ ๐Ÿš€ Refining & Expanding

The core application is fully functional with:

  • โœ… React + TypeScript + Vite
  • โœ… PWA capabilities (offline, installable)
  • โœ… IndexedDB for local storage (Dexie.js)
  • โœ… Responsive mobile-first layout
  • โœ… Code quality tools (ESLint, Prettier)
  • โœ… Production build pipeline
  • โœ… Unit tests (Vitest) and E2E tests (Playwright)
  • โœ… Onboarding wizard for new users
  • โœ… Exercise library with starter exercises
  • โœ… Workout session logging with auto-save
  • โœ… Mesocycle planning with split configuration
  • โœ… Progress tracking with 1RM calculations and personal records
  • โœ… Auto-regulation (pump, soreness, fatigue feedback)
  • โœ… Pre-built training program templates
  • โœ… Data export/import for portability
  • โœ… Dark/light/system theme support
  • โœ… Accessibility (WCAG 2.1 AA compliance)

Next Steps:

  • Exercise substitution recommendations
  • Advanced analytics and visualizations
  • Optional cloud sync (SaaS layer)

๐Ÿค Contributing

We welcome contributions! This project is in early stages, but we're excited to build this together with the community.

Please see CONTRIBUTING.md for guidelines on how to contribute.

How You Can Help

  • Requirements Definition: Help us define features and user stories
  • Design & UX: Design mockups and user flows
  • Development: Code contributions once architecture is defined
  • Testing: Test the app and provide feedback
  • Documentation: Improve docs and create tutorials
  • Exercise Content: Contribute exercise descriptions and form cues

๐Ÿ“– Documentation

๐ŸŽ“ Learning Resources

Interested in the science behind the app? Check out:

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

This means:

  • โœ… Free to use, modify, and distribute
  • โœ… Can be used in commercial projects
  • โœ… Can be used to create derivative works
  • โš ๏ธ Provided "as is" without warranty

๐Ÿ”ฎ Project Roadmap

  1. Phase 1 (Complete): Core training engine โ€” workout logging, exercise library, mesocycle planning
  2. Phase 2 (Complete): Progress tracking โ€” analytics, 1RM calculations, personal records, templates
  3. Phase 3 (Complete): PWA features โ€” offline support, installable, data export/import
  4. Phase 4 (In Progress): Polish & expand โ€” exercise substitutions, advanced analytics, optional cloud sync

๐Ÿ’ฌ Community & Support

  • Issues: Use GitHub Issues for bug reports and feature requests
  • Discussions: Use GitHub Discussions for questions and ideas
  • Contributing: See CONTRIBUTING.md for contribution guidelines

๐Ÿ™ Acknowledgments

This project is inspired by the work of:

  • Dr. Mike Israetel and the Renaissance Periodization team
  • The open source fitness community
  • Evidence-based training research

Disclaimer: This is an independent open source project and is not affiliated with or endorsed by Renaissance Periodization.


Built with โค๏ธ by the open source fitness community

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages