← Back to site
Changelog
Updates, improvements and fixes — newest first.
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