# Features: Workout Logging UX Improvements **Project:** Gravl — PPL Workout Tracker **Researched:** 2026-02-15 ## Table Stakes (Must-Have) | Feature | Complexity | Dependencies | Notes | |---------|-----------|--------------|-------| | Input validation (no negative reps, weight min 0) | Low | None | Currently broken — allows any value | | Weight unit display (kg suffix) | Low | None | Missing — only placeholder text | | Mobile input layout (44px min touch targets) | Low | None | Currently compressed inputs | | Add/remove sets per exercise | Medium | Backend log changes | Fixed set count is rigid | | Pre-fill last workout's weight/reps | Medium | Progression API | Users need reference for what to lift | | Exercise search/filter | Medium | Exercise list API | Needed for custom workout builder | ## Differentiators (Competitive Advantage) | Feature | Complexity | Dependencies | Notes | |---------|-----------|--------------|-------| | Custom workout builder | High | New DB tables, new endpoints | Build workouts from exercise list | | Modify program workouts | Medium | Custom workout infra | Swap/add exercises mid-workout | | Rapid-fire set logging | Medium | Stepper inputs | Auto-advance, minimal taps per set | | Progressive overload visualization | Medium | History data | Show trend vs last workout clearly | | Rest timer with notifications | Low | Browser APIs | setInterval + Notification API | | Superset/circuit support | High | Schema changes | Group exercises for alternating sets | ## Anti-Features (Deliberately Avoid) | Feature | Why to Avoid | |---------|-------------| | Social features | Users hate mandatory social in workout apps | | Complex periodization | Overcomplicates a personal PPL tracker | | Video exercise demos | Storage/bandwidth cost, not core value | | Gamification (badges, streaks) | Distracts from simple logging | | AI workout generation | Scope creep — user knows their program | ## Priority for This Milestone 1. **Input fixes** — validation, units, layout (table stakes, low effort) 2. **Flexible sets** — add/remove sets (table stakes, medium effort) 3. **Custom workouts** — build from scratch + modify program (differentiator, high effort)