A Progressive Web App (PWA) for tracking progressive strength training over a 12-week program. Optimized for mobile use in gym environments with poor connectivity, featuring a thumb-friendly interface with large buttons and minimal text input.
- Offline-First: Works without internet connection (critical in gyms with bad signal)
- Installable: Can be installed on phone like a native app without App Store overhead
- Thumb-Friendly: Large buttons, minimal typing, high contrast for gym use
- Progressive Tracking: Automatically calculates weight and rep targets based on 12-week program
- Circuit-Style Workouts: Complete all exercises in a set before moving to the next set
- Adjustable Rest Timer: Customize rest duration with ±15 second controls
- Dark Mode: Saves battery on OLED screens, easier to read in gyms
- Framework: Vue 3 (Composition API) with TypeScript
- Build Tool: Vite 7
- State Management: Pinia
- Routing: Vue Router 4
- PWA: vite-plugin-pwa
- Package Manager: Bun
- Node.js 20+ (or Bun runtime)
- Bun (preferred) or npm
bun installbun devbun run buildbun run deployTypeScript cannot handle type information for .vue imports by default, so we replace the tsc CLI with vue-tsc for type checking. In editors, we need Volar to make the TypeScript language service aware of .vue types.
HIGH-LEVEL-PLAN.md- Architecture, data models, progression algorithms, and implementation detailsWORKOUT.md- 12-week program structure and exercise descriptionsCLAUDE.md- Development guide and code style guidelines
Photo by Paweł Bulwan on Unsplash
Photo by Stavros Papadimitriou on Unsplash
Photo by Ambitious Studio* | Rick Barrett on Unsplash