System Updates
Changelog and version history for StrengthNotes
Major import enhancements, SEO upgrades, and aesthetic additions:
- Garmin & Concept2 Deduplication & Completion: Imported and merged activities are now automatically marked completed (`completed=True`). Same-date activities offer side-by-side merge/skip controls and are unchecked by default to prevent accidental double-logging.
- Social Sharing & JSON-LD SEO: Generated a high-resolution OpenGraph preview card (`og-image.png`) and implemented JSON-LD structured data (`WebSite`, `Organization`, `BlogPosting`, `ExercisePlan`) across public pages.
- Retro Sports Science Artwork: Added Alan Couzens 1950s retro pop-art illustrations to the homepage hero and blog articles.
A massive leap forward for bodyweight strength tracking:
- Global Progressions: Introduced fully-fleshed progression trees based on the Reddit BWF Recommended Routine and Overcoming Gravity.
- Dynamic UI: Built a dynamic HTMX exercise selector that smartly reveals your progression options only when you select a calisthenics skill.
- Categorization Engine: Completely refactored the exercise dropdown to categorize movements by "Strength", "Cardio", or "Flexibility/Calisthenics" to remove duplicates and confusion.
- Notebook Aesthetic: Cemented the "Teal & Amber Notebook" theme across the app, stepping away from generic material design to create a unified, physical tracking experience.
- Optgroup Styling: Added bold, readable headers to exercise dropdowns so you can find exactly what you're looking for mid-workout.
Added native blogging capabilities and rich media integration:
- StrengthNotes Blog: Replaced static release notes with a dynamic, database-driven blog engine supporting Markdown and featured images.
- YouTube Form Check: Added the ability to attach YouTube video links to exercises.
- Responsive Embedding: Exercise detail pages now feature a sleek, responsive embedded YouTube player for easy form reference.
- Quick Access: Workout logging views now display a smart YouTube icon next to exercises that have a video attached, linking out for quick reference without cluttering the UI.
Massive UX enhancements for Cardio, Calisthenics, and Flexibility tracking:
- Smart Cardio Displays: Cleaned up cardio logging by removing confusing "N sets" tags and adding intuitive "N × Distance" multipliers for interval efforts.
- Dynamic UI Terminology: Renamed strength-centric labels ("Interval Count" -> "Count") for cardio sessions to make more sense.
- Clean Dashboard Summaries: Pure cardio workouts now gracefully hide irrelevant metrics like "Total Sets" and "Volume".
- Auto-Populating Quick Create: The backend now intelligently intercepts your chosen exercise type and auto-checks the correct tracking variables (e.g. Distance/Time for Cardio) when quick-creating exercises.
- Flexibility/Calisthenics Split: Built a dedicated 3-way rendering logic to flawlessly format static holds (Planks) and bodyweight reps across the app without cluttered zero-weight badges.
- Intelligent Rep Counting: Fixed the backend block calculator to only sum reps for exercises that actually track reps, keeping cardio block headers totally clean.
Major UI and Intelligence overhaul for the mid-workout experience:
- PR Badges: Added motivating PR (Personal Record) indicators that light up when you log a new best.
- Estimated 1RM: Real-time estimated 1-Rep Max (Epley formula) now displays on strength sets.
- Live Dashboard: Moved the Session Summary to the top of the page so it functions as a live scoreboard.
- Set Notes: Any notes added to a set are now clearly visible inline on the workout page.
- Volume & Set Tracking: Added real-time per-exercise set counts (e.g. "3 sets") and block-level rep summaries.
- Wizard Improvements: Fixed missing step indicators and improved the Quick Create form flow, especially on mobile.
- Quick Exercise Creation: You can now create a new exercise on-the-fly directly from the set logger or the top of the workout page. This includes a new 2-step wizard that lets you instantly configure your tracking variables (reps, weight, time, etc.) without leaving your workout.
Major Quality of Life and UX updates focused on tracking efficiency:
- Consistency Heatmaps: Added interactive 180-day daily heatmaps to the Goals page to visualize your daily momentum.
- Historical Context: Added a "Last Time" data block when logging sets so you instantly know your working weight from the previous session.
- Smart Forms: Creating a goal now smartly hides fields you don't need based on exercise type (e.g., hiding weight fields for cardio).
- Calisthenics Support: Added a dedicated Calisthenics Records section to the dashboard and Exercise Detail pages.
- Week in Review: The dashboard now features a high-visibility summary tracking the last 7 days of training.
- Set Duplication: Added a quick 1-click duplicate button for logging identical sets rapidly.
- UI Polish: Reorganized navigation menus, fixed scroll-anchoring issues, and improved unit (km/mi) awareness.
Complete StrengthNotes redesign. Transitioned to the new design system.
Added Body Weight chart to dashboard. Updated home page graphics for strength, cardio and calisthenics. Added disclaimer to sign up and login screens.
Initial release of Public Profile feature. Users can now share a dashboard displaying stats and workout feed. Redesigned public workout view and lists for better navigation. Updated link styling.
Added workout duration field to track overall workout time. Implemented searchable dropdown for exercise selection when adding a new set to improve user experience.
UI modernization & layout improvements. Updated base template with modern navbar and collapsible focus alert. Refactored workout view to use Bootstrap cards and improved set list readability. Converted Standards & Goals list to a responsive card-based grid layout.
Upgraded to latest Django version and link to public workouts.
Add ability to make workouts public for sharing.
Fixed a bug caused by adding HTMX when workout set has same set ID.
Worked more with HTMX on the update form. Got all unit tests working again with HTMX on set update form.
Added HTMX functionality to the set update form page.
Added cool down option for an exercise entry.
Added default exercise chart of total reps or total distance when clicking on exercise in workout view.
New chart for weekly training volume for strength based exercises.
Improved training log chart performance.
Added chartjs to chart various exercise parameters like reps, volume and distance.
Workout volume calculation is now in lb or kg depending on profile selection.
Added a focus header keep your training priorities in "focus".
Training log navigation styling changes and calendar modifications.
Training log now allows template workouts that can be built and used for creating new workouts.
Added confirm screens for weigh in and journal entries.
More work on rest countdown timer.
Added in workout rest countdown timer need to improve styling if I am going to keep that feature.
Exercise detail screen layout improvements. Database changes to require owner on workouts.
More work on training log workout screen aligning rows better via Bootstrap.
Cleaned up workout screen layout added an edit button and borders to help delineate between exercises.
Initial release of standards and goals feature. Goals are one time accomplishments for example deadlifting 400lbs. Standards are physical abilities you would like to be able to maintain. A couple of examples of strengthnotes.com standards would be the ability to run 3 miles, front squat 200 lbs, deadlift 300 for 5 reps. As we get older maintainable standards become more important than one time goals.
Fixed bug in total workout volume calculations.
Added total workout volume calculation to workout screen. Will also show if volume has increased or not from previous time workout was performed.
Added ability to add exercise anywhere in workout and other exercises will shift based on exercise id A1,B1 etc.
Upgraded Django and MySQL. Added top distance property so when a new distance is reached you will be notified.
Added calculations for highest weight lifted and fastest pace.
Added fields so workouts that are copied can be compared with previous workout performance. The current easiest way to track is to build your first workout and then copy it if workout is similar.
Added pace per minute to distance/cardio type training.
Add volume new record calculations to exercise history/details page. It will now show an up arrow when new volume record is reached for a workout.
Add volume calculations to exercise history/details page. Added additional test to the calculations for current volume.
Modified how exercise are classified between cardio vs strength.
Added ability to add a journal to each day allowing you to track non workout related life events.
Exercises now have field to determine if exercise is primarily cardio or strength. This will allow specific fields for cardio and or strength and better reporting.
Removed body weight tracking function for time being. Removed exercise progression bug so only users unique exercise progressions show up.
Bootstrap 5 upgrade to improve interface.
Beta release for public use after one year of learning Django, Bootstrap and Python to build a training log platform. At this point I have been logging consistently for 6 months working through bugs.
Initial coding and Git commit on Strengthnotes.com training log application