Changelog

Follow up on the latest improvements and updates.

RSS

This Month in Iron is live (new flagship feature)
The PR Analyzer now includes a full This Month in Iron experience built to help you see if your month is actually being won, not just worked through. Win the month, win the year.
  • A month verdict system that tells you where you stand right now (Month Won, Month Crushed)
  • Big Four month checks for strength and tonnage in one clear table
  • Smart “matched vs passed” context so progress is easier to interpret
  • Designed to keep you doing the big four lifts for month and years to come.
image
Strength Calculator got a major visual overhaul
  • New visual algorithm range bars (overview + zoomed detail)
  • Strength standards integrated directly into the bar experience
  • Better mobile readability, tooltip behavior, and label spacing
  • Cleaner inline bio flow and stronger copy/share UX
  • Better layout hierarchy so key numbers are easier to scan
image
Lifter status badges + progression tiers (late Friday night, now included)
Your lift pages now rank your status as a lifter with clearer progression feedback. We have a range of scientific tiers you can earn.
  • A redesigned
    Lift Journey card
    with expanded tier progression
  • Badge-style tier ranks to show where you stand and what comes next
  • Animated progress treatment so advancement feels earned and visible
  • Cleaner thresholds and chart skeleton/loading behavior for a smoother experience
image
Home, analyzer, and session UX polish
  • Big Four home cards now surface more useful monthly strength context
  • Recent session cards are cleaner across breakpoints, with easier “show one more” flow
  • Compact set/pill layouts are easier to read and compare
  • Analyzer card ordering and chart presentation improved for faster scanning
  • Some new cards: "
    Classic Lifts
    " where we show you some of your favourite lifting memories:
image
Themes and feedback systems expanded
  • New "Blueprint" theme/background plus more background polish
  • Mini feedback prompts now appear in key areas (analyzer, visualizer, AI assistant, lift journey)
  • A few short articles added
  • Improved feedback tracking detail to better capture your feedback (PLEASE GIVE FEEDBACK!)
image
Keep lifting and giving feedback.
The world's best e1rm calculator is now even besterer.
Simplified and polished calculator UI
  • Cleaner layout and spacing
  • Improved readability of labels and controls
  • Better mobile/desktop behavior across the page
  • New all-in-one E1RM algorithm slider/line
Replaced the old formula radio-style selection with a visual comparison bar
  • Shows all supported E1RM formulas on one line
  • Lets you quickly compare estimates and tap/click a formula to select it
  • Improved mobile label merging and popover interactions so crowded labels stay usable
  • Automatic Big Four strength ratings (always visible)
image
Your estimated 1RM now automatically shows strength level ratings for:
  • Back Squat
  • Bench Press
  • Deadlift
  • Overhead Press
image
Ratings are benchmarked using your athlete bio data (age, sex, bodyweight)
UI was refined with better tooltips/popovers, layout, and inline bio settings
Two new programming tables
  • Rep Max Projection Table
    (projects estimated weights across rep ranges)
  • Percentage Table
    (100% down to lower percentages for programming)
image
These make the calculator more useful for planning sets, percentages, and training blocks
Copy / Share Improvements
  • Improved
    copy result UX
    (clearer success feedback)
  • Added
    per-lift copy buttons
    on Big Four strength bars
  • Copied text now includes more useful context (including shareable calculator link)
Supported E1RM Algorithms (all shown in the comparison slider)
  • Brzycki
  • Epley
  • McGlothin
  • Lombardi
  • Mayhew
  • OConner
  • Wathan
Strong friends don't let friends use any other calculators.
kg/lb Unit Switching — Now Works Everywhere
This was the big one this week. Previously, toggling between kilograms and pounds only affected the calculators. Now it's truly global — switching units instantly updates your charts, PR displays, tonnage totals, strength standards, and year recap across the entire app. Your preference is also remembered between visits.
As a bonus: the app now auto-detects your preferred unit from your data on first load. If most of your logged lifts are in kg, it defaults to kg — no manual setup needed.
image
And to make the toggle a little more fun: switching units now fires a small emoji confetti burst from the button. The emojis cycle through themed sets so it's never quite the same twice.
Dashboard — Consistency Grade Circles
Your training consistency grades are now displayed as visual circles right on the home dashboard, so you can see your weekly and monthly consistency at a glance without navigating to the Analyzer. Hover over any circle for a tooltip with more detail, or click to go straight to the full Consistency section.
image
Consistency fairness fix: The weekly grade window now has a one-day buffer, so you don't get penalized first thing in the morning before you've had a chance to train. If a session is about to age out of the window and drop your grade, the tooltip will now warn you — "lift today to keep your grade" — rather than the previous unhelpful message.
Strength Standards Chart — Focused and Motivating
The mini strength standards chart (visible on lift insight pages) previously showed all standards from Beginner to Elite regardless of your level. It now shows only the standards you've already reached, plus exactly one next target to aim for. No point showing Elite to someone just starting out — the chart is now cleaner and more encouraging.
image
Chart Hover — Smoother and More Responsive
Hovering over a chart to see the session details card is now noticeably smoother. The sync between chart hover and the session card below now uses a smarter approach that scales with how much data you have, keeping things snappy whether you have 50 sessions or 5,000.
Feedback Widget — More Visible and Contextual
The feedback button (bottom-right of most pages) got a polish pass. It's more visible, shows different prompts depending on which page you're on, and has a wider variety of messages to keep it feeling fresh rather than repetitive.
image
Articles — Now Shareable
Article pages now have share buttons, making it easy to send a strength training article to a friend or training partner.
Under the Hood
A significant dependency upgrade landed this week: Next.js was updated from version 14 to 16, and React from version 18 to 19. These are the core frameworks the app runs on. The upgrade brings performance improvements, better memory usage, and keeps the app on a supported, secure foundation. A number of chart regressions introduced by the update were caught and fixed before release. Several other libraries were also updated, and three unused packages were removed to keep things lean.
As always — if something looks off after this week's changes, a hard refresh (Ctrl+Shift+R / Cmd+Shift+R) usually clears it up. And use the feedback button to let us know!
image
Keep lifting.
Another big week of AI led coding. I have moved from Cursor IDE to Claude Code for a trial.
New feedback system is now live
: a floating micro-feedback widget is now available, plus thumbs up/down feedback on article pages.
UI/UX polish across key pages
:
- New
Popular Lifts accordion
in Analyzer (cleaner mobile behavior, simplified columns).
image
- Stronger
heatmap experience
with richer tooltips, volume-based colors, better share overlay timing, and clearer share-ready messaging.
image
- Improved
standards slider
with new 2Y/5Y/10Y ranges, clearer notch styling/tooltips, and “PR” naming improvements.
image
- We report strength ratings for various user sets throughout the app. Make sure you have entered your age/bodyweight/sex in the nav-bar to get these accurate.
image
- Multiple mobile/layout improvements (session cards, icons, nav tweaks, spacing, breakpoint tuning).
  • Theme and visual updates
    :
- Added and refined the
Starry Night
theme.
- Improved theme/logo consistency and reduced motion support.
image
Backend and data-platform updates (grouped)
  • Major Google Sheet state refactor
    :
- Consolidated sheet state into a single
sheetInfo
model.
- Split parsing vs metadata sync responsibilities in the main data hook.
- Moved toast UI behavior out of the data hook into layout-level handling.
- We now use a new Google provided File Picker package.
  • Analytics refactor
    :
- Unified GA helpers under
ga*
naming.
- Centralized event tags and preserved legacy names.
- Simplified event debugging with
debug_mode
.
  • Observability improvements
    :
- Added clearer pipeline/timing logging and improved failure logging paths.
Important note
Because of the backend/data-loading refactors this week, some users may see occasional sheet-loading hiccups. If that happens, please try reconnecting your Google Sheet and send feedback through the in-app widget so we can fix edge cases quickly.
image
Keep lifting!
The big one!
We've launched
Strength Unwrapped
— a Spotify Wrapped-style yearly recap for your lifting journey. Unwrap your year in beautiful, swipeable, shareable cards that celebrate your strength training achievements.
image
What's Inside:
  • Portrait cards
    optimized for Instagram sharing — show off your gains!
  • Swipeable carousel
    with smooth animations powered by Motion
  • 9 recap cards
    covering your entire year:
-
Title Card
: Staggered word reveals, gradient year display, confetti fireworks 🎆
-
Sessions Card
: Your workout count with circular grade badges and streak highlights
-
Tonnage Card
: Total volume lifted with Big Four breakdown bar chart
-
Most-Trained Lift
: Deep dive into your favorite exercise (sets, reps, gym sessions)
-
Consistency Card
: Your training consistency grade
-
PR Highlights
: Notable lifts and lifetime PRs split into separate cards
-
Seasonal Pattern Card
: See when you trained most throughout the year
-
Closing Card
: Encouraging wrap-up message
  • Year selector
    to browse multiple years of data
  • Previous year comparison
    on Sessions and Tonnage cards (shows in December for current year)
  • Demo mode
    with sign-in prompts for unauthenticated users
  • Skeleton loaders
    for smooth loading experience
  • Empty state phrases
    that encourage and motivate
This is a
beta feature
— we're iterating based on your feedback. Try it out at
/strength-year-in-review
\!
---
🎨 UI & UX Improvements
Session Analysis Card Overhaul
image
  • Visual hierarchy
    : e2RM-based highlighting — PRs and highest e1RM sets stand out
  • Larger strength level text
    : Your strength level is now more prominent
  • Improved layout
    : Cleaner header, better exercise block grouping, session tonnage comparison
  • Tonnage range slider
    : Filter sessions by volume range
  • Enhanced tooltips
    :
- Notes tooltip on StickyNote icon
- Video tooltip with truncated URLs
- Bold "Note:" prefix for workout notes
  • Better highlighting
    : Highlighted sets get bigger fonts and padding
  • Session rating
    : Now shown in card description with nuanced PR tiers and adlibs
Consistency Card
  • Grade thresholds
    : Extracted and improved calculation logic
Visual Improvements
  • Big Four Lift Cards
    : Updated grid layout for better responsiveness
  • Standards Slider
    : Tooltips with tuple info, hover highlights, improved copy
  • Icon update
    : Anvil icon in SectionTopCards
  • Plate animations
    : Plates slide onto barbell with Motion library animations
  • Feature cards
    : Scroll-triggered icon animations, theme chart colors
  • Big Four SVG
    : Subtle rotation wobble when stats load
Layout & Spacing
  • Carousel centering
    : Restored proper centering when authenticated
  • Unified auth layouts
    : Consistent layout for authenticated and demo states
---
🔧 Technical Improvements
Code Organization
  • Component extraction
    :
    SessionExerciseBlock
    component for reusable exercise displays
  • Local storage patterns
    : Documented SSR-safe usage patterns
  • Year recap refactoring
    : Decentralized cards, moved processing code out of
    src/lib
Performance & Caching
  • Session rating cache
    : Uses
    useLocalStorage
    for performance, invalidates on tuple count changes
  • Processing utils
    : Enhanced with better date handling and session analysis
Date & Timezone Fixes
  • Local date handling
    : Fixed timezone issues across multiple components:
- AI lifting assistant, heatmap, months highlights, visualizer-mini
- Time range select, section-top-cards, use-timer, consistency-card
- TODAY badge and cutoff dates (fixes Australia timezone issues)
  • Date formatting
    : Migrated to
    date-fns
    library for consistent date handling
---
🐛 Bug Fixes
  • Heatmap card
    : Fixed broken html3canvas-pro usage after recap migration
  • Seasonal Pattern Card
    : Made bar chart visible (was hidden)
  • PR ranking
    : Fixed tie-breaking — later dates rank worse when lifts tie
  • Year comparison
    : Only shows previous year comparison in December for current year
  • Duplicate styles
    : Fixed duplicate style props in seasonal-pattern-card
  • Grade jump calculation
    : Fixed consistency grade jump calculation
  • Session momentum
    : Fixed to count unique days (was double-counting)
---
📊 Data & Analytics Improvements
Strength Ratings
  • Age-at-PR factor
    : Historical lifts now factor in your age at the time of the PR for more accurate strength ratings. You are not in high school anymore, so stop bragging about that boys bench press session.
  • Bio data integration
    : Added bio data support for strength rating calculations
  • Historical PRs
    : Properly distinguished from notable lifts using
    isHistoricalPR
    flag
Year Recap Data Processing
  • Deadlift multiplier
    : Added 2.5x volume multiplier for deadlift in most-trained and favorite badges
  • Lifetime PRs
    : Split into separate card from notable lifts
  • Previous year comparison
    : Added to Sessions and Tonnage cards with proper date logic
  • Empty states
    : Encouraging phrases for PR cards when no data available
Session Analysis
  • PR tiers
    : More nuanced PR classification
  • Strength level integration
    : Better integration with strength level calculations
  • Tonnage filtering
    : Range slider for filtering sessions by volume
---
🎯 Other Improvements
  • Momentum card
    : Sessions move up, brackets move out, math shows up — visual glow-up\!
  • Lifetime tonnage card
    : Unit-aware stats display
  • Weekly streak card
    : Improved logic and messaging
  • Training logging prompt
    : Updated text in SectionTopCards
  • Carousel position
    : Maintains position on year change, reanimates active card
  • Demo mode
    : Improved sign-in card and empty states throughout year recap
---
📝 Developer Experience
  • Code quality
    : Improved prop destructuring, better component separation
  • Local storage
    : Documented patterns and SSR-safe usage
---
Total changes: 44 files changed, 4,268 insertions(+), 950 deletions(-)
Keep lifting!
Lots of AI coding happening this week:
image
There may be BUGS. Please report any issues!
## Big Four Lift Cards with Personality
The home dashboard now shows
Big Four lift cards
with personality badges:
  • Did it today
    — Random labels like "Actually showed up", "Future you approves", "Zero regrets"
  • Favourite / least favourite
    — Which lift you do most vs least
  • Neglected lift
    — Tiers like "It's time", "Comeback ready", "Been a while" when you haven’t hit a lift in a while
  • Tonnage badges
    — "Tonnage king", "Volume monster", "Moving mountains" for your heaviest sessions
  • PR badges
    — Best ever, top 5, top 10 recently
image
Cards use staggered entrance animations and a responsive layout. The Big Four section is now more informative and motivating.
Beyond Elite on the Strength Slider
If your E1RM is above Elite, the strength slider now extends so your marker stays on the chart. Your strict press (and other lifts) stay visible instead of disappearing off the right.
Shareable Calculator URLs
The
One Rep Max Calculator
and
Strength Level Calculator
now sync state to the URL. Share a link and others see the same inputs and results. Advanced params (age, bodyweight, gender, formula) sync together so shared links restore the full state.
Session Analysis: Per-Lift Tonnage
The session analysis card now compares
per-lift tonnage
to your last 12 months. See how each lift’s volume in this session stacks up against your average. Session strength levels use the same Beyond Elite logic when you exceed Elite.
image
## Lift Summary Stats: Tonnage
On the big four lift pages, the summary stats now include
heaviest session
and
heaviest in the last 12 months
for each lift. Tonnage is now easier to track alongside PRs.
There is more tonnage info throughout the app. You can't always chase PRs but you can consistently push tonnage.
Home Dashboard Polish
  • SectionTopCards
    — Reusable stat cards with icons and accent colors
  • Skeleton loading
    — Smoother loading while data is fetched
  • Stats overlay
    — Fade-in after the hero transition
  • PageContainer
    — Consistent centering across pages (Tailwind v4)
Tailwind v4 & Theme Tweaks
  • Migrated to
    Tailwind CSS v4
  • Theme variables instead of
    dark:
    variants
  • Animated backgrounds
    — Grid patterns for light/dark, flickering grids for neo-brutalism, warp effect for retro-arcade
  • Updated navbar and background grid styles
image
1000lb Club Calculator
  • Compact card layout
  • Improved copy functionality
  • Updated feature links and descriptions
AI Lifting Assistant
  • Layout and message styling updates
  • Better max-width and readability for assistant messages
  • Using new AI-SDK version (jumped 2 generations)
Accessibility
  • Improved
    aria-label
    s on dropdown menus
  • Drive picker button titles updated for clearer context
---
Backend & Data
  • Infer missing data
    — Date and lift type inferred from the previous row when cells are blank
  • Overhead Press → Strict Press
    — Normalized naming and other parser fixes.
  • Performance
    — Refactored session analysis card,
    buildParsedState
    , and lift type processing
  • Google Analytics
    — Sign-in click events for attribution
---
We’re aiming to give you the best visualizations and insights for your strength journey — to celebrate wins and see what’s working. Share feedback, report bugs, or suggest features:
Please feel free to buy me a coffee to help fund AI tokens.
Keep lifting.
New PR display on lift pages
  • Added a PR display component on the big four lift pages
  • Browse PRs by rep range (1RM, 3RM, 5RM, etc.) in an overview and detail view
  • Video links for PRs: YouTube and Google Photos URLs show thumbnails with play buttons
  • Strength rating badges on PR cards (Physically Active, Beginner, Intermediate, Advanced, Elite) using strength standards and athlete bio
  • On mobile/tablet, only key rep ranges (1RM, 3RM, 5RM, 10RM) are shown to keep the layout simple
image
We've Been Busy Hacking in the Background
We've been heads down working on a bunch of improvements. Here's what's new:
New Warm-up Sets Calculator
We've added a completely new free tool - the warm-up sets calculator! It helps you:
  • Generate progressive warmup sets for your barbell workouts
  • Calculate warmup weights and reps based on your top set
  • See visual plate breakdowns with color-coded diagrams showing exactly which plates you need
  • Choose your barbell weight (20kg/45lb standard, women's bar, or custom)
  • Select your preferred plate colors (great for powerlifters who want specific plate colors)
  • Add intermediate sets automatically when there's a large gap to your top set
  • Support for both kg and lb units
The calculator uses progressive warmup methodology to help you properly prepare for your working sets. No login required - it's completely free to use. The algorithm is still being refined - give feedback please!
image
AI Lifting Assistant Major Upgrade
We've completely refactored the AI Lifting Assistant:
  • Upgraded to AI SDK v6 with new ai-elements components
  • Added sources and reasoning to chat messages - now you can see where the AI gets its information and its reasoning process
  • Better message layout with improved readability
  • Improved suggestion rendering and conversation flow
  • Better scrolling and overflow handling
  • All users temporarily on GPT-4o-mini for faster, more cost-effective responses
Theme System Improvements
  • New custom logos for neo-brutalism and retro-arcade themes
  • Logos now automatically update based on your selected theme
  • Theme colors adjust dynamically based on user preferences
  • Improved spacing and radius variables throughout
Performance & Security
  • Optimized data processing with useMemo for liftTypes calculations
  • Automatic calculation of rawRows and topLiftsByTypeAndReps for better performance
  • Fixed security vulnerabilities
UI Polish
  • Better layout and spacing throughout the app
  • Refined styling for a more cohesive experience
We'd love to hear what you think! Please share your feedback, report any bugs, or suggest new features here: https://strengthjourneys.canny.io/
Keep lifting!
Inside the Analyzer we have better heatmaps:
image
The share button works but is kind of slow.
Keep lifting!
The analyzer session card now gives per lift and per session feedback on tonnage compared to your average over the last 12 months.
image
I'm using this to rely more on tonnage instead of PR chasing as a guide to strength progress.
Load More