← Back to site
Changelog
Updates, improvements and fixes — newest first.
Mar 25, 2026
Feature Bot Dashboard
lbs support — log and view everything in your preferred weight unit
  • Bot: Added a /settings weight unit preference — set to kg or lbs; PRBot now parses all logged weights in your chosen unit (e.g. "bench 185x5" logs 185 lbs if you're set to lbs)
  • Bot: All workout embeds, PR confirmations, and weekly summary DMs now display weights in your chosen unit
  • Dashboard: Added a Weight unit toggle (kg / lbs) in Profile & Settings → Preferences; changing it updates the display across the entire dashboard immediately on next load
  • Dashboard updates for lbs: recent workouts, workout modal (view & edit), share canvas, weekly volume chart, weekly summary stats, heatmap tooltips, training load values, muscle analytics, PR board, PR chart axis labels, leaderboard subtitle, welcome card messages, and all recap slides (strength, breakdown, PR list, goals) now respect the chosen unit
  • Recap "tonnes" highlight becomes k lbs in lbs mode (e.g. "10 k lbs lifted this week")
  • Bodyweight tracking and nutrition coach remain in kg as they use a separate logging flow
Mar 25, 2026
Feature Dashboard
Recap upgrades, smarter heatmap, achievement sharing & admin mobile fix
  • Monthly & yearly recaps now include a Workout Breakdown slide — shows each session type (Push, Pull, Legs, Cardio, etc.) with a colour-coded bar chart and total volume or distance per type; types with zero sessions are never shown
  • Monthly & yearly recaps now include a Time Invested slide — shows total hours trained, with a "that's X full days" line when the total exceeds 24 hours
  • Recap Consistency slide redesigned — main number is now a 0–100 rhythm score (weighted by week coverage, longest gap, and cadence) with a letter grade (A–F); adds a stats row showing best streak, longest gap, and active weeks out of total weeks
  • All new recap slides include share-card support via the existing canvas share flow
  • Dashboard heatmap now uses a smart window — starts from the week of your first workout instead of always showing 180 empty days; minimum 8 weeks always shown
  • Heatmap header redesigned: shows a large consistency % based on the last 4 weeks with a colour-coded trend arrow (↑ / ↓ / →) comparing to the previous 4 weeks; streak moved to a separate block with a divider
  • Achievements are now sorted — unlocked achievements appear first ordered by most recently achieved (with a level bonus for high-tier stacks), locked achievements follow ordered by how close you are to unlocking them
  • Clicking an unlocked achievement opens a detail modal with the category orb, unlock date, and a Share button that generates a canvas card (avatar, username, achievement name, date) and triggers native share on mobile or download on desktop
  • Removed "Highest PR" leaderboard tab
  • Welcome card now gives muscle-specific guidance on session days — if a muscle in today's recommended session is lagging it tells you to prioritise it; if one is still recovering it tells you to keep volume lower there
  • Admin dashboard tables are now mobile-friendly — horizontally scrollable, less critical columns (weigh-in, streak, joined date, volume) hidden at narrow breakpoints, search bar goes full-width on small screens
Mar 24, 2026
Fix Bot
Workout card redesign, PR badges & cardio fixes
  • Cardio workout cards now use a green accent throughout — top bar, avatar glow, stat labels and metric tiles — making them visually distinct from strength cards at a glance
  • Replaced emoji detail lines on cardio cards with styled metric tiles — emojis were rendering as garbled characters due to font support; Distance, Duration, Pace/Speed and Avg HR each now get their own tile with a green left border
  • Fixed: /recentworkouts was reading wrong field names for cardio stats — it looked for timeSeconds, avgHeartRate etc. instead of the actual schema fields durationSec, avgHr, paceSecPerKm and speedKmh; all cardio stats now display correctly
  • Duration on /recentworkouts now formats as 45m or 1h 30m instead of 45:00; stored pace and speed are used directly instead of always recalculating
  • Fixed: cardio workouts were saving the session start→finish timer as durationSec; now saves the duration the user actually logged (e.g. "ran 5km in 25min") — strength workouts continue to use the session timer
  • Fixed: Weight PR and Rep PR badges were never showing on workout cards — only Volume PR worked; root cause was a format mismatch ("100 kg" with space vs "100kg", and the multiplication character × vs the letter x); all three badge types now display correctly
Mar 23, 2026
Feature Design Fix Dashboard
Recent workouts redesign, welcome card improvements & cardio fixes
  • Recent workouts table redesigned — rows now have a colour-coded left accent bar (blue for push, purple for pull, orange for legs, green for cardio), coloured type pills, a two-line date column showing weekday and date, and volume/duration/kcal consolidated into inline stat chips; overall more compact so more sessions fit without scrolling
  • Welcome card now handles cardio workouts — instead of showing "0 kg logged" it shows the logged distance and duration (e.g. "5 km in 28m of running logged")
  • Welcome card now handles multiple sessions in a day — if you logged more than one workout today it aggregates total volume and distance and calls out the double/triple session
  • Fixed: recent workouts table was incorrectly treating all workouts as cardio after the earlier cardio fix; detection now uses workout type instead of the presence of a cardio field
Mar 23, 2026
Feature Fix Dashboard
Cardio activity filter, recap improvements & bug fixes
  • Cardio card now has an activity dropdown — when you've logged multiple types (running, cycling, etc.) a selector appears at the top of the card; picking an activity filters all stats, bests and charts to that activity only; streak always shows overall
  • Cardio workouts now display correctly in the recent workouts table and modal — distance is shown in the Volume column instead of a blank, and the modal shows a stats grid with distance, duration, pace and activity instead of an empty exercises list
  • Workout duration now loads correctly — the dashboard API was stripping durationSec before sending it to the client; it is now passed through so the Duration column and kcal estimates use real logged values
  • Recap slide navigation fixed — the Previous/Next buttons had no listeners when the recap was opened via the sidebar replay button with no new recaps pending; navigation now always works regardless of how the recap is opened
  • Weekly recap replayed on Monday now shows the previous week's data instead of the brand-new current week; the recap key is also aligned so "already seen" state is tracked correctly
  • Fixed: "This Week" session dots were misaligned by one day — the dots now use UTC date arithmetic throughout, matching the server-side heatmap date keys; future days of the week are shown faded
  • Fixed: "This Week" volume card used a rolling 7-day window instead of the current calendar week (Monday–Sunday); both the volume total and the vs-last-week comparison now use proper Mon–Sun boundaries
Mar 23, 2026
Fix Bot
Cardio stats & duration fixes
  • Fixed: /recentworkouts was not reading durationSec from the database — it was looking for timeSeconds/durationSeconds instead; duration now displays correctly as 45m or 1h 30m
  • Fixed: /recentworkouts was not reading avgHr — it looked for avgHeartRate/heartRate; heart rate data now shows up correctly
  • Fixed: pace and speed were always recalculated from distance and time, ignoring the stored paceSecPerKm and speedKmh fields; stored values are now used directly
  • Fixed: cardio workouts were saving the session start→finish timer as durationSec in dmRouter.js; now saves cardio.durationSec (the duration the user actually logged, e.g. "ran 5km in 25min") — strength workouts continue to use the session timer as before
Mar 22, 2026
Feature Fix Dashboard
PR progression, goal deadlines, achievement share cards & more
  • Exercise progression moved into the Personal Records table — click any exercise row to expand an inline chart showing your PR timeline and volume history; click again to collapse
  • The old separate exercise search card has been removed; all progression data is now one click away from the PR board
  • Goals now support a time period — choose from 2, 4, 6, 8, 12, 16 weeks, 6 months or 1 year when adding a goal; a countdown chip shows on the goal card with urgency colouring (orange under 2 weeks, red under 1 week or overdue)
  • Share card for completed goals — hit the share button on any reached goal to generate an achievement image showing the goal label, starting value, target hit, time taken and whether the deadline was beaten; same share options as workout cards (Download, Copy, X, native share)
  • Calorie burn estimate on every workout — each workout in the recent table and in the workout modal now shows an estimated kcal burn; uses actual logged duration when available, otherwise estimates from set count and workout type
  • Workout duration shown on cards — a new Duration column in the recent workouts table displays the logged session length; also shown as a pill inside the workout modal
  • Bodyweight goal linked to nutrition card — if you have an active bodyweight goal, the Adaptive Calorie Coaching card now uses it to set the goal direction (cut or bulk) and shows a purple target tag below the calorie figure
  • Fixed: weight-loss goals were being incorrectly auto-completed immediately after creation because the completion check used the wrong comparison direction for cut goals
  • Fixed: goal completion toast was clipped or hidden off-screen on mobile devices; now respects safe-area insets, wraps long labels and is always fully visible
Mar 22, 2026
Feature Dashboard
Notifications, workout sharing & goal completion tracking
  • Notification bell in the dashboard header — shows unread count badge; panel lists the last 30 days of activity including workouts logged, new PRs hit, achievements unlocked and goals reached
  • PR and achievement notifications are derived from your existing workout data — no extra logging needed
  • Mark individual notifications as read by clicking them, or clear all at once with "Mark all read"
  • Read state synced to your account so it persists across devices
  • Share button on every workout — generates a workout card image with your workout type, date, total volume and full exercise breakdown
  • Exercises that set a new personal record are highlighted in the share card with a PR badge and orange accent
  • Share options: Download PNG, Copy image to clipboard, Post to X (pre-filled with workout summary and PR callouts), or native OS share sheet on mobile
  • Goal completion now tracked on the dashboard — completed goals move to a "Reached" section with a checkmark and completion date; a toast notification fires when a goal is auto-detected as hit
  • Strength goal progress bars now pull from your actual PR history so the bar reflects your real best lift, not just the bot-synced value
  • Completed goals included in the weekly, monthly and yearly recap as a dedicated "Goals Reached" slide
Mar 22, 2026
Feature Dashboard
Edit & delete workouts, add goals from the dashboard
  • Workout edit mode — click any recent workout to open it, hit Edit to modify exercise names, set weights, reps; add or remove sets and exercises inline
  • Workout delete — delete button in the workout modal with a two-click confirmation to prevent accidental removal
  • Add goals from the website — "+ Add goal" button on the Goals card; choose Strength or Bodyweight, enter exercise name and target, saves instantly without leaving the dashboard
  • Remove goals from the website — × button on each goal row removes it with a single click
Mar 22, 2026
Feature Design
Waitlist, pricing overhaul & admin dashboard
  • Waitlist modal — join from the pricing section, optionally connect Discord account for priority access
  • Discord OAuth lite path for waitlist — links Discord identity without creating a full account
  • Newsletter opt-in at signup — integrated with Loops.so; welcome email sent automatically on join
  • Pricing section redesigned — Pro ($4.99/mo), Server Basic ($9.99/mo), Server Pro ($19.99/mo) with annual billing toggle showing monthly equivalent as the headline price
  • Billing toggle now reads "2 months free" instead of "Save ~33%"
  • Server tier badges updated — "Best for small servers" and "Most picked by server owners"
  • Coming soon buttons replaced with live "Join waitlist" buttons
  • Feature list text changed to white — was muted grey, looked broken
  • Server plan bullet dots now use their tier accent colour (purple / orange)
  • Beta banner reworded — "Early users get Pro free during beta — lock in your rate before launch"
  • Admin dashboard added at /dashboard/admin/ — user stats, server stats, daily workout chart, top exercises, retention and conversion insights
  • Dashboard caching — stale-while-revalidate via sessionStorage; return visits load instantly with a silent background refresh
  • Premium badge shown on dashboard header and full Plan card on profile settings page
  • Rear Delts correctly classified as pull day (was showing push day on welcome card)
Mar 22, 2026
Feature Design Dashboard
Commands page, goals dashboard card, 1RM in PR board & landing page updates
  • New /commands page — full command reference grouped by category with descriptions and detail for each command
  • Goals card added to dashboard — shows active goals set via /goal with progress bars; highlights 80%+ completion in green
  • PR board now shows estimated 1RM alongside best weight — calculated using the Epley formula from best set weight and reps
  • Commands section on landing page grouped into Logging, Progress and Profile & Settings with updated descriptions
  • Added /prs, /goal, /log, /streak and /settings to the landing page commands section
  • "How it works" step 3 rewritten — now emphasises the bot getting smarter over time (schedule learning, nudges, goal notifications)
  • DM demo updated — bot response now shows goal progress inline alongside PR detection
  • Pro features updated — added strength & bodyweight goal tracking and smart feature tips after sessions
  • Commands link added to site footer
Mar 22, 2026
Bot Feature Fix
/prs, /goal, /log commands, recap notifications, onboarding overhaul & goals integration
  • /prs command — view all personal records with estimated 1RM, paginated
  • /goal command — set strength and bodyweight goals and track progress over time
  • /log command — start a DM logging session directly from inside a server channel
  • Goals integrated into finish flow — notifies when a goal is hit or 80% reached
  • Weekly, monthly and yearly recap notifications — DM sent on recap day to active users only
  • Improved onboarding — guided first session with progressive prompts at workouts 1, 2 and 3
  • Rewrote /help — accurate, up-to-date command list replacing the old outdated version
  • Overhauled /profile — now shows PR count, achievements, last session, this week's workouts
  • PR Map backfill — personal records rebuilt from full workout history on bot startup
  • NSFW filter on exercise and workout names
  • Prompt to set a main server — shown once after first session, not repeated
  • Random feature tip messages — 20% chance after finishing a session, each tip shown only once
  • More dashboard links across all commands
  • Idle session reminder now has "Finish & save" and "Cancel" buttons instead of plain text
  • DM rate-limit queue for bulk sends — prevents hitting Discord limits during smart nudge and recap batches
  • Bug fix: streak double-increment on /profile fixed
Mar 21, 2026
Feature Dashboard
Weekly, monthly & yearly recap on the dashboard
  • Recap banner appears at the top of the dashboard when a recap is available (weekly on Sat/Sun, monthly at month end, yearly at year end)
  • Clicking "View recap" opens a full-screen slide show of your stats for the period
  • Slides are conditional — only shown if you actually tracked that data (no cardio slide if no cardio, no weight slide if no weigh-ins)
  • Slides: cover, strength summary, new PRs, cardio, bodyweight change, streak, closing
  • VS previous period comparison on strength and cardio slides
  • Keyboard navigation (arrow keys + Escape) and dot/arrow nav
  • Dismissal saved per-user so the banner does not reappear after closing
  • Multiple recaps queue correctly — dismissing monthly shows weekly banner next, not skipped
  • Goal-aware coaching messages added to every slide — bodyweight, strength, cardio, PRs, streak and closing all respond to the user's goal (bulk, cut, maintain, endurance)
  • Recap can be replayed anytime via the "View recap" button in the sidebar
  • Closing the modal no longer permanently dismisses the recap — only the banner X does
  • Fixed "Setup profile" showing on nutrition card even after onboarding was completed
Mar 21, 2026
Feature Design
Landing page improvements, pricing section & comparison table
  • Added pricing section with Free, Pro ($4.99) and Server Owners tiers
  • Added "Pricing" link to navbar
  • Comparison table: replaced Yes/No text with checkmarks and crosses
  • Comparison table: ~ for partial support, last row reworded to "Lives where you already are"
  • Comparison table: fixed mobile header clipping
  • Added calorie & nutrition card to dashboard preview mockup
  • Added "Calorie & nutrition insights" to feature pills in hero section
  • Nutrition card on dashboard: fixed mobile layout clipping
  • Weekly volume strip: fixed text clipping on mobile
  • Smart nudges toggle added to Profile & Settings page
  • Added changelog page
Mar 21, 2026
Bot Feature Fix
Workout duration tracking, server stats, exercise library & bug fixes
  • Workout duration tracking — bot now records how long each workout takes from start to finish
  • Dashboard links — dashboard is now mentioned at relevant moments: after a PR, in weekly summaries, smart nudges and achievement unlocks
  • Server stats — server documents now track total workouts and total volume; auto-incremented on every completed workout
  • Server identity — server name, icon and banner saved to the database and kept in sync automatically
  • Auto workout type detection improved — fixed "completed General workout" bug in server announcements; type detection now runs in all finish paths (DM and button)
  • Exercise library expanded — added 20+ missing exercises (Close-Grip Bench Press, Dumbbell Row, Lying Leg Curl, Glute Bridge, Bayesian Curl, Smith Machine Squat and more)
  • Leg type fix — workouts detected as "leg" were being saved as "legs", breaking the filter and emoji in /recentworkouts
  • Module path fix — fixed startup crash caused by workoutTypeSelect being moved; created utils/exercisesPool.js as single source of truth for the exercise list
Mar 20, 2026
Feature Dashboard
Profile & Settings page, nutrition card redesign, weekly volume strip
  • New Profile & Settings page at /dashboard/profile/ with fitness profile form, preference toggles and account actions
  • Nutrition card redesigned: horizontal kcal + stats layout, goal adjustment badge, bodyweight chart
  • Weekly volume replaced with slim CSS bar strip above recent workouts — removed separate Progress section
  • Progress section removed from dashboard and sidebar
  • Edit button on nutrition card to update goal and stats without re-doing full onboarding
  • Public profile and weekly DM summary toggles on settings page
Mar 20, 2026
Bot Feature Fix
New workout system, smart nudges, weekly recaps & embed revamp
  • Massive code cleanup and memory leak fixes across the entire bot codebase
  • New workout system — replaced old flow with a cleaner DM-based logging system with undo, session overview, weight suggestions and PR detection
  • Smart nudges — bot learns when each user typically logs and sends a personalised nudge if they haven't logged; also predicts likely workout type based on PPL rotation and day-of-week patterns
  • Emotionally rewarding logging — responses now acknowledge streaks ("10-day streak") and show proximity to PRs ("5 kg away from your Bench Press PR")
  • Weekly server recap — public summary posted in the server's share channel every Sunday: top volume, new PRs and streak leaders
  • Weekly personal summary — DM sent every Sunday with workout count, volume trend vs last week, new PRs and achievements
  • Weekly recap minimum threshold — server recap skips posting if fewer than 2 members were active that week
  • /settings command — users can now toggle weekly summaries, smart nudges and profile visibility from a single panel
  • Embed & UI revamp — modernised colors, set notation (80 kg × 5), footers and profile layout across all embeds
  • Bug fix: previous volume comparison was comparing a workout against itself (off-by-one)
  • Bug fix: finishing a cardio session with missing distance/pace/speed data would crash
  • Bug fix: cardio workouts were not incrementing the weekly streak
  • Bug fix: division by zero guard added in cardio metrics calculation
  • Bug fix: /streak crashed for all users due to missing BRUSSELS_TZ constant
  • Bug fix: manage workout exercises button threw a ReferenceError
  • Bug fix: /recentworkouts had an orphaned code block causing a crash on cardio workouts
  • Bug fix: strength training insights (buildStrengthInsightDM) were silently dropped due to a scope bug
Mar 19, 2026
Feature Dashboard
Onboarding flow, nutrition coaching and profile saved to database
  • Added onboarding flow for new users: collects name, age, height, gender, activity level, goal, experience and frequency
  • Onboarding only triggers after Discord login — scoped per user to prevent cross-user contamination
  • Onboarding data saved to MongoDB via /api/profile
  • Nutrition card now uses real profile data for TDEE calculation (Mifflin-St Jeor BMR)
  • Goal-aware calorie targets: bulk +300, cut -400, maintain, endurance +100
  • Welcome card uses onboarding name with Discord username as fallback
  • Card accuracy banners replace blur/lock overlay — cards stay fully visible with a progress indicator
Mar 18, 2026
Design Feature
Landing page overhaul: hero, DM demo, server owners section
  • Hero h1 updated to "Log Your Workout in 3 Words."
  • DM demo redesigned: shows partial name detection and weight memory between sets
  • Server owners section: new headline and owner-proof callout
  • Removed fake social proof stats (24,000+ workouts / 380+ servers)
  • Fixed all em dashes throughout landing page copy
  • Owner card grid fixed to even 3-column layout
  • Dashboard preview updated with muscle recovery, balance, training load and welcome card mockup
  • Added "Why Discord?" section
  • Added comparison table: PRBot vs Notes App, Hevy, MyFitnessPal
  • Added FAQ section
Mar 15, 2026
Dashboard
Dashboard loading animation and data performance
  • Added loading animation with logo and sliding card entrance
  • Parallel data fetching for faster dashboard load
  • Fixed card locking triggering before workout counts were loaded