What's new

903 releases over 84 days of shipping, newest first. Now on v5.145.48.

SUNDAY, AUG 30, 2026 ยท 3 RELEASES

  1. Full-Resolution Stories, A Real Before/After Reveal, Editors You Can See

    v5.5.0
    • ๐Ÿ“ธ Story photos are now full quality: every card was rendering the 400ร—400 upload thumbnail โ€” a center-cropped square โ€” which is why they looked pixelated on a good screen and why edges were missing before any framing. Stories now use a 1600px, aspect-preserving version generated from your original (created on first view, then cached)
    • ๐Ÿชž The summary card's before/after is a full-width reveal: drag the divider to sweep between the two photos, each at the card's entire width instead of half. The 9:16 / 1:1 downloads capture the reveal wherever you leave it
    • ๐ŸŽฏ Fit mode pans when zoomed: drag to put the subject where you want, and the photo only moves along an axis where it overflows the frame โ€” so the blurred margins stay equal and you can still recenter
    • ๐Ÿ” Photo picker tiles never shrink below ~112px no matter the layout, and the framing editors are half/third-width instead of thumbnails, so you can actually see what you're framing on desktop and mobile
  2. Coming Off: One Tap From Cycle End To A Scheduled Protocol

    v5.4.0
    • ๐Ÿ“… The last-dose date is now derived from your cycle instead of guessed. Pick your bulk or cut and it walks your dosing rhythm back to the real final day โ€” a Mon/Wed/Fri protocol on a cycle ending Sunday the 20th gives you Friday the 18th, worked out for you
    • ๐Ÿ› Fixed the date defaulting to weeks in the PAST. It used the newest END DATE across your schedules, but anything you are still running has no end date โ€” so it landed on the last protocol you had already FINISHED
    • โšก One tap: โ€œSchedule my PCTโ€ saves and books the whole protocol โ€” hCG, your SERM, every dose โ€” straight onto your calendar, Today screen, Active Levels and adherence. No second visit to this page
    • ๐ŸŽฏ Derived dates no longer invent a dose. The stack anchor is the latest dose across every compound, so a daily oral running to cycle end would previously have put a phantom injection on a day you do not inject
    • โœ‚๏ธ Removed the counterfeit-products warning. It was built on analyses of seized black-market product, which is not where this appโ€™s users get their pharmaceuticals
    • โœ‚๏ธ Removed the trial-evidence lecture. Leading with โ€œno measurable differenceโ€ leaned on a study that only checked at 3 months and 1 year โ€” by which point most men have recovered either way, so it could not detect the speed difference that is the entire point of running PCT
    • ๐Ÿ” Still there: the clearance maths, the evidence tiers, the bloodwork schedule, and the red flags that actually need acting on
  3. Equal Margins At Every Zoom

    v5.3.4
    • ๐Ÿ› Fit-mode photos that had a saved zoom were still off-center: the zoom scaled about the old top-aligned focal point, so the photo slid down and out of the frame โ€” bar on top, none below, body clipped at the waist. Fit now zooms about the center as well, so the blurred margins stay equal at any zoom. Fill still pans and zooms around the point you drag to

SATURDAY, AUG 29, 2026 ยท 2 RELEASES

  1. iPhone Upload Tap: Focus-Free, And Traced

    v5.3.3
    • ๐Ÿ“ฑ Follow-up to 5.3.2 for the iPhone report that the upload chooser still needed several taps: a tap no longer moves keyboard focus onto the upload control (the only thing that differed between the first tap and the ones that worked), and the control opts out of double-tap zoom. Keyboard users still Tab to it and see the ring
    • ๐Ÿ” On phones, every tap on an upload control is now traced (touch โ†’ click โ†’ change, what was under the finger, focus and zoom state) into the console capture that rides along with a bug report. If a picker still needs more than one tap: tap it once, then file a bug report from the same page โ€” the trace comes with it
  2. Photo Upload Works On iPhone Again

    v5.3.2
    • ๐Ÿ“ฑ Tapping the photo upload zone on iPhone opens the photo picker again. Every upload control was a hidden file input triggered from script, and iOS WebKit (Safari and Chrome alike) had stopped opening the chooser for it โ€” the tap silently did nothing. The real control now sits under your finger on the Photos page, the lab report uploader, the bug reporter's Screenshot tile and the story music picker
    • ๐Ÿ› The bug reporter's Screenshot tile attaches images on the phone again (same fix)
    • โŒจ๏ธ Keyboard users: Tab lands on the upload zones and Enter/Space opens the picker, with a visible focus ring

THURSDAY, AUG 27, 2026 ยท 1 RELEASE

  1. Summary Photos Back, Even Margins, Accents That Actually Accent

    v5.3.1
    • ๐Ÿ› Fixed the summary card's before/after photos rendering invisible after the Fit-mode change (the frame collapsed to zero height on that card only)
    • ๐ŸŽž๏ธ Fit mode always centers the photo now, so the blurred margins are equal top and bottom (or left and right). Photos saved with the old top-aligned framing were pinning to the top and showing a single bar
    • ๐ŸŽจ The accent color selector finally does something: it re-themes the card borders, the card glow, the timeline rail and nodes, and every primary-colored element โ€” not just the couple of green highlights it used to touch
    • ๐Ÿงช Share Compounds is a collapsed dropdown with the on/off switch in its header ("5 shared"), and Journey Photos collapses too โ€” a long protocol no longer takes over the settings sheet
    • ๐ŸŽš๏ธ The music clip range is one trimmer bar with in/out brackets (drag either, tap inside to preview from there, arrow keys to nudge) instead of two separate sliders

SATURDAY, AUG 29, 2026 ยท 2 RELEASES

  1. Atlas: What Was NOT In Your Blood, And Real Panel-To-Panel Comparisons

    v5.3.0
    • ๐Ÿงช Atlas no longer credits a compound you weren't on. When you confirm a panel's protocol on the Labs page, every compound you left out โ€” and anything you started after the draw โ€” is now spelled out to the coach as โ›” NOT in the bloodstream for that panel, in the main context, in lab history and in comparisons. Before, only the confirmed list was shown and Atlas bridged the gap from "currently taking" on its own (the Retatrutide-and-glucose incident)
    • ๐Ÿ“Š "Compare this to my previous / mid-cycle / pre-cycle bloodwork" is now a real comparison: a new compare_lab_panels tool returns every shared marker with its exact change (ฮ” and %), what rose, fell or held, range flags on both sides, markers only in one panel, the confirmed protocol at each draw, and exactly what started, stopped or changed dose between the two draws โ€” so a change can only be pinned on something that actually changed. It understands latest, previous, oldest, pre-cycle, "2 panels ago" and dates
    • ๐Ÿงญ One rule for "what was on board": lab history now uses the same shared derivation as the Labs page and the main context, and confirmed names match schedule names through their aliases (HCG โ†” HCG (Human Chorionic Gonadotropin), Anavar โ†” Oxandrolone (Anavar))
    • ๐Ÿ”ง A custom Mon/Wed/Fri schedule is no longer reported to the coach as having "drifted" from MWF
  2. Lab Upload: Ratios Have No Unit, Equivalent Units Aren't Mismatches

    v5.2.2
    • ๐Ÿงช Lab PDF upload works again for reports with ratios: Albumin/Globulin, Chol/HDL and other dimensionless results no longer stop the whole panel with "Unit required" โ€” a ratio is just a number. The confirm table, manual entry and the in-place editor all accept a blank unit now, and blank stays blank on the history and trend surfaces (no dangling space)
    • โœ… No more false "Expected K/uL" warnings: Quest's Thousand/uL and Million/uL, LabCorp's x10E3/uL, mL/min/1.73m2 for eGFR, IU/L vs U/L, uIU/mL vs mIU/L and the other equivalent spellings are recognised as the same scale. The โš  still appears for a real unit change (ng/dL vs nmol/L) and when a marker we know carries a unit came through blank โ€” but it is advice, never a blocker
    • ๐Ÿ“ˆ Trend charts no longer split one marker into "mixed units" because two labs spelled the same unit differently
    • ๐Ÿงน A stray "(calc)" note on a unit is trimmed instead of dropping the marker, and the extractor is told to copy units exactly as printed and leave ratios blank
    • ๐Ÿ›  npm run labs:extract -- report.pdf replays a report through the exact upload pipeline offline (same prompt, model and parsing), so a misbehaving report can be diagnosed without the app

THURSDAY, AUG 27, 2026 ยท 2 RELEASES

  1. Shared Template Page: Phone Polish

    v5.2.1
    • ๐Ÿ“ฑ On phones, an exercise name that filled the line left its how-to โ†— icon stranded alone on the next line; the icon now stays glued to the last word. The stats tiles keep their numbers on one baseline ("Muscles" instead of a wrapping "Muscle groups")
  2. Share A Template, Import It In One Tap, Duplicate Before You Tweak

    v5.2.0
    • ๐Ÿ“ฅ Shared template links are finally useful: a signed-in viewer gets an Import button (top right and at the bottom of the page) that copies the whole routine โ€” every exercise, order, set and rep target, cardio blocks, notes โ€” into their own templates and opens it for editing. Before, the page told you to "import" but there was nothing to click; the only way in was rebuilding it one exercise at a time
    • ๐Ÿงฌ Imports are safe to share with anyone: custom exercises you made are copied into the importer's library so nothing shows up as "Unknown exercise", the copy is named "Push Day (from Mike)" so they know where it came from, and importing twice gives "(2)" rather than a twin
    • โœจ The shared template page is redesigned: a proper header with who shared it, a stats ribbon (exercises, total sets, muscle groups, cardio minutes), muscle-mix chips at a glance, and one clean exercise list with the targets in their own column โ€” instead of a dozen loose boxes with wrapping badges. Viewing your own link shows "Open in my library"; signed-out visitors get sign-up plus a sign-in link that brings them straight back to the template
    • ๐Ÿ“‹ Duplicate a template from its editor: one tap makes "<name> (copy)" and opens it, so you can rename and rework your new Thursday while the original stays untouched (and stays on your schedule) for reference. Copies of copies count up โ€” "(copy 2)", never "(copy) (copy)"

WEDNESDAY, AUG 26, 2026 ยท 2 RELEASES

  1. Nothing Gets Cut Off Anymore

    v5.1.2
    • ๐Ÿ–ผ๏ธ Story photos now Fit by default: the whole photo sits inside the 3:4 frame with a blurred copy of itself filling the margins, so a double-bicep shot keeps both arms. The old behavior cropped anything wider than the frame and the crop tool could only zoom in โ€” it never could have brought the arms back. Fill (crop-to-frame) is still a toggle per photo
    • ๐ŸŽš๏ธ Story settings are tidier: Background Music and Frame Your Photos are collapsed dropdowns (the music header shows the current song), framing editors are thumbnails instead of half-screen panels, and the checkpoint photo picker is finally tall enough to see photos on desktop (up to 8 columns)
  2. Protocol Changes After The Finish Photo Count Too

    v5.1.1
    • ๐Ÿ› A dose change or stop dated after your after-photo was dropped from the story entirely (an Anavar raise on Aug 5 with an Aug 4 finish photo simply never appeared). Compounds now span your full transformation window; changes after the finish photo show as a trailing node past Finish on the journey
    • โน๏ธ The "Stopped" marker is a filled stop square now โ€” the outline read as an unchecked checkbox

SATURDAY, AUG 22, 2026 ยท 1 RELEASE

  1. Polypharmacy-Proof: Titrations, Stops, And A Timeline That Respects Time

    v5.1.0
    • ๐Ÿ“ˆ The journey now understands dose changes: a compound titrated up or down shows a "Raised dose" / "Lowered dose" event with the before โ†’ after weekly totals (Oxandrolone 175 โ†’ 350 mg/wk), and compounds you stopped show "Stopped" where they ended. A schedule edited within two weeks reads as continuous, not a stop-and-restart
    • ๐Ÿงญ Protocol changes are clustered: everything within a two-week window (that doesn't cross a photo checkpoint) is one compact node with a count badge and a ledger of changes โ€” a week where you started six compounds is one swipe, not six, so the strip reads as time again
    • ๐Ÿ“œ The Protocol card scrolls: 10+ disclosed compounds no longer overflow the card, and the compound info panel stays on screen (its X was off-screen when the card overflowed)
    • ๐ŸŽฏ Fixed the pulsing info icon getting clipped at the right edge of the compound name

WEDNESDAY, AUG 26, 2026 ยท 1 RELEASE

  1. Strength Goals Complete When You Beat Them

    v5.0.8
    • ๐ŸŽฏ Fixed strength goals staying "active" after you beat them. With no stored start value (every goal created before 5.0), the checker took your first lift AFTER setting the goal as the starting point โ€” so a 335 lb bench against a 330 lb goal was read as "get back down to 330" and failed. Strength and FFMI goals are now always "reach at least the target"; body-fat goals default to "get down to" when the start is unknown
    • ๐Ÿ”” Achieving a goal now sends a notification (bell + phone push, in your coach's voice) with the target and what you actually hit โ€” before, only the one-time "Goal Achiever" badge fired, so every goal after your first was silent
    • ๐ŸŒ™ The nightly run re-checks every active goal against your current numbers, so a goal met while a check was missed can never stay open โ€” existing goals were re-evaluated with this release

TUESDAY, AUG 25, 2026 ยท 9 RELEASES

  1. One Metabolic Age Card

    v5.0.7
    • ๐Ÿ› Fixed the dashboard showing two "Metabolic Age" cards. v5.0.0 quietly added the raw Withings card to everyone's layout next to the metabolic-age card you already had โ€” the one that shows the same reading plus the gap to your actual age. The duplicate is retired and drops out of your layout on its own
    • ๐Ÿ•ฐ๏ธ The remaining Metabolic Age card shows your scale's reading even before you've added your age in Settings; the comparison appears once you do
  2. No More Redirect Loops, Ever

    v5.0.6
    • ๐Ÿ” 5.0.5 carried valid pre-5.0 sessions over correctly, but a browser holding an old cookie whose session had already expired still bounced between the dashboard and the login page. Root cause was older than 5.0: any cookie that exists but no longer validates (expired, revoked from another device, or stale) tripped the same loop. The login page now always renders when the app sent you there, and stale cookie values are cleared instead of copied โ€” so the worst case is the login form, once
  3. Old Sign-In Cookies No Longer Lock You Out

    v5.0.5
    • ๐Ÿ”‘ If you were signed in before 5.0.0, the site bounced between the dashboard and the login page until your browser gave up ("too many redirects") โ€” the only way out was clearing cookies. 5.0.0 changed the sign-in cookie's name, the app kept treating the old cookie as "signed in" and nothing ever removed it. The old cookie is now carried over automatically: a still-valid session just works with no sign-in at all, and an expired one takes you to the login page once
  4. Lab PDF Extraction Restored

    v5.0.4
    • ๐Ÿฉธ Uploading a lab PDF works again. The PDF reader's native helper (@napi-rs/canvas) was left out of the 5.0.0 server image the same way sharp's binding was, so every PDF upload since 5.0.0 answered "Failed to read PDF" โ€” the image now ships it, and a build-time check imports the PDF reader so this can't recur
  5. Share Links, Uploads, and Lab OCR Back

    v5.0.3
    • ๐Ÿš‘ Fixed share links, link-preview images, photo uploads, bug-report screenshots, and lab-report extraction all failing with a 500 since v5.0.0. The slimmed-down production image was missing sharp's native image binding (Next's file tracing dropped it). The image now ships the full sharp install and refuses to build at all if sharp can't load
    • ๐Ÿ›ก๏ธ A share page can no longer be taken down by the photo resizer: the preview image loads sharp only when it actually has photos to resize, so a resize failure means "no photos" on a transformation card โ€” never a broken workout link
  6. Settings Hydration Fix

    v5.0.2
    • ๐Ÿ•’ The timezone picker's UTC-offset labels are rendered identically on the server and in the browser (zero-offset zones read "UTC+00:00" everywhere), which removes the hydration error that fired on every Settings visit in 5.0.0
  7. Rollout Hotfix

    v5.0.1
    • ๐Ÿฉบ The DB-free /api/livez liveness endpoint introduced in 5.0.0 is now exempt from the sign-in gate โ€” the middleware was answering the kubelet's probe with 401, which kept 5.0.0 pods from ever passing their startup check
  8. The Big One: 240+ Fixes From A Full Platform Audit

    v5.0.0
    • ๐Ÿ Version 5 is the result of a top-to-bottom audit of every page, query, coach prompt, notification rule and deploy step. Every finding was fixed, tested and verified: this release closes 5 critical, 52 high and 180+ medium/low issues across security, data correctness, the coach, workouts, body tracking, compounds, labs, social features and the UI. You'll be asked to sign in once after the update
    • ๐Ÿ” Security: invite codes are enforced by the server (no way to register without a valid, unused code), sign-ups confirm you're 18+, and Settings has a new Security section โ€” change your password, see every signed-in device, sign out everywhere, or delete your account and every byte of your data yourself
    • ๐Ÿ”’ Sessions use a Secure cookie, every page ships clickjacking/MIME/referrer protections, rate limits are shared across the whole cluster, banning an account cuts its CLI keys instantly (keys now expire after 90 days), and share links only ever expose the sharer's own records and stop serving within five minutes of being revoked
    • ๐Ÿ“ธ Photo, song and lab uploads are verified by their bytes; photos are re-saved with GPS and device metadata stripped, so your originals never carry location data again
    • ๐Ÿ›ก๏ธ Every server action now verifies ownership of every id it's handed โ€” another user's custom compounds, supplements, exercises, sets and schedules can't be read or written by id, including through Atlas and the CLI
    • ๐Ÿ—‘๏ธ Deleting a workout removes the PRs it set and restores any record it had beaten โ€” no more phantom PRs on the dashboard, in Awards or in Atlas. Deleting a template clears it from your weekly schedule; deleting a compound or supplement schedule keeps the doses you already logged as off-schedule doses
    • ๐ŸŒ™ Evening entries land on the right day everywhere: doses, workouts, weigh-ins, calendar events, weekly grids, streaks, 'this week vs last week', strength curves and transformation stats all use your own timezone (pick it in Preferences โ€” it's auto-detected) instead of the server clock. A Sunday-night pin no longer vanishes or tempts a double log
    • โš–๏ธ Every 'current weight' surface โ€” dashboard, Body page, goals, nutrition, Atlas, photos โ€” agrees on which reading counts for a day (the earliest, i.e. your fasted weigh-in), and re-logging a weight no longer wipes that day's body-fat % or notes. Weights and measurements are stored at full precision, so the ยฑ0.1 lb drift between cards, chart and goals is gone
    • ๐ŸŽฏ Goals are achieved honestly: the smoothed trend has to cross the target (or two readings in a row), body-fat goals judge the same DEXA-calibrated number the Body page shows, strength goals use your heaviest real lift the moment you finish the workout, FFMI goals chart real FFMI, every goal remembers where you started, and the projection says 'at your current rate you reach 185 lbs around Oct 12'
    • ๐Ÿ‹๏ธ Workout logger: Start buttons open the workout you chose (or Resume the one already running), abandoned empty sessions are cleared away or can be discarded, a rest timer ticks in the header from the moment you log a set, the logger shows the number to beat, template targets fill in as you go (2/3 ร— 8-12), and the exercise picker opens on your recent lifts
    • ๐Ÿ› Fixed the phantom set (deleting a set in Edit Session no longer resurrects one you just logged), the delete-from-history 'not found' bounce, the 3.1-mile run that became 1.93 miles, the runaway '72h 15m' clock on a workout left open, and templates that saved '3 ร— 6' instead of '3 ร— 6-8'
    • ๐Ÿ“Š Training volume means one thing on every screen โ€” working and failure sets only โ€” the same rule behind volume-record notifications, the tonnage badge, challenge scores and shared workout cards. Late-Sunday sessions count toward the week you did them in, and workout history loads older sessions on demand
    • ๐Ÿ†• Adding a custom exercise warns when a matching one exists ('Bench Press' vs 'Barbell Bench Press') with a one-tap Use existing, so one lift's history and PRs never split across two names
    • ๐Ÿงฌ Active Levels and the Coming Off planner read one reviewed half-life per compound, so they can never disagree. 50+ peptides (Retatrutide, Semaglutide, Tirzepatide, HCG, Ipamorelinโ€ฆ) now carry cited half-lives and appear in Active Levels; compounds with no real human pharmacology (trenbolone esters, Anadrol) are shown as 'Not modelled' with the reason instead of confident curves
    • ๐Ÿงน Purged fabricated catalog data: 121 compounds no longer share 12 copy-pasted side effects, duplicate entries (HCG, MK-677, TB-500, Semaglutide, Tirzepatide, PT-141, MT-2, CJC-1295) are merged with your schedules and logs moved to the survivor, GLP-1s are dosed in mg (typing '2' for Retatrutide no longer records a 1000ร— smaller dose), and aromatization is recorded for 13 more compounds
    • ๐Ÿ’พ PCT plans can be saved: keep your dates, add the protocol to your schedules in one tap, withdraw it just as easily, and 'Recalculate' shows exactly which dates would move before anything changes. 'None โ€” wait it out' now shows the low-testosterone gap it leaves open
    • ๐Ÿ“… Ending a supplement schedule asks when you actually stopped instead of stamping today and inventing missed doses; cycles can be ended on the day they really ended (from the app, the coach or the CLI); doses can't be logged for days that haven't happened yet
    • โšก Atlas streams its answer word by word โ€” no more staring at bouncing dots โ€” and shows 'Looking up your lab historyโ€ฆ' while it works. Replies are saved the moment they finish (closing the tab mid-answer loses nothing), stuck providers time out cleanly, edits and regenerations no longer duplicate your question, and every action card shows up when Atlas proposes several changes
    • ๐Ÿง  Atlas remembers what it looked up last turn, re-confirms memories older than 90 days instead of building on them, never saves near-duplicate notes, and treats notes and memories strictly as facts about you โ€” never as instructions. The Memories page lets you edit or resolve any note
    • ๐ŸŽ™๏ธ Atlas Voice works again in production, follows the same accuracy rules as text (stopped compounds aren't 'current', labs are read against the doses you were on at the draw), and the browser can no longer change the coach's instructions or voice mid-session
    • ๐Ÿฉบ One clear disclaimer rule per coaching mode; Natty+ mode no longer sees anabolic compounds through lab attribution and says when attribution is incomplete; cycle progress starts at Day 1 / Week 1; coach edits to schedules only accept real units and frequencies, so a bad value can never break the Compounds, Today or Next Dose pages
    • ๐Ÿ—ฃ๏ธ Re-running the setup interview keeps your history (active items are ended, never deleted, and the confirm dialog spells out exactly what changes); onboarding after 8 pm no longer creates a cycle and weigh-in dated tomorrow; '2 tablets daily' and 'creatine Mon/Wed/Fri' land as valid schedules
    • ๐Ÿ”” Your notification preferences now govern everything Atlas surfaces (muting a category also silences PR celebrations, the 1,000 lb club and badge unlocks), nothing pushes your phone more than once every six hours except health warnings, and challenge results, accepted challenges and new group members arrive in the one feed without duplicates
    • ๐Ÿ… Badges are honest: a corrected set or weigh-in un-earns a badge it awarded, body-weight-ratio badges use your trend weight, FFMI 25 needs two readings over the line, and the 1,000 lb / 1,200 lb clubs use one exact line (453.6 / 544.3 kg) and recognise your lifts however you named them ('Conventional Deadlift', 'Paused Bench Press') while variations stay out
    • ๐Ÿ Milestones can't slip through the cracks โ€” workout #100, a 30-day weigh-in streak or a 6-week training streak is celebrated even if two sessions landed in one day or the nightly run was missed; adherence nudges count only the days each schedule was actually due; new goal-deadline insights warn a week ahead
    • ๐Ÿงช Bloodwork alerts and charts match markers properly: 'fasting glucose' is no longer AST, 'Hemoglobin A1c' is not Hemoglobin, VLDL isn't LDL, and 'ESTRADIOL,ULTRASENSITIVE', 'Testosterone, Total' and 'Total Testosterone' chart as one series. Labs shows your whole history (older panels no longer drop off past ~100 results), trend dots are judged against each result's own reference range, and mixed-unit markers let you pick the unit to plot
    • ๐Ÿ“„ Lab uploads no longer fail because of one unreadable line: qualitative results are listed as skipped, '<0.5' keeps its '<', long PDFs say which pages weren't read, re-uploading the same report updates the panel instead of doubling every marker, and you can fix a wrong OCR digit in place
    • ๐Ÿ“ก Withings: readings you correct or delete in the Withings app propagate on the next sync, 'Import Full History' pulls your entire scale history, token refreshes are serialized so two syncs can't break the connection, an expired authorisation shows Reconnect instead of 'Sync failed' forever, disconnecting really unsubscribes, and DEXA calibration can use the scan date
    • ๐Ÿฅ— Nutrition targets always add up: cycle overrides re-balance fat and carbs from the final calories, TDEE is labelled as an estimate with its activity multiplier (set activity level and date of birth in Preferences), and protein is prescribed on lean mass when your body fat is known. Food entries can be edited and logged for past days
    • โœ๏ธ Body measurements can be corrected or removed; weigh-ins, measurements and goal deadlines can't be dated in the future or on impossible days; abandoned goals can be reactivated; the weigh-in log shows Manual vs Withings
    • ๐Ÿ“ธ Weight and body fat on progress photos are the numbers the body chart draws through that day โ€” exact when you weighed in, otherwise marked '~' with the weigh-ins they were read between. Photos that anchor a transformation story are protected, and the comparison view is one tap from the gallery
    • ๐Ÿ”— Shared Links shows every link with an Active / Revoked / Expired badge and what it points at; links can expire in 7, 30 or 90 days or never; sharing the same item twice reuses the live link; sharing a template warns that its notes are public
    • ๐Ÿ† Challenge scores are computed from the workouts you actually completed between the dates (editing, deleting or re-dating a session updates your score everywhere), Gym Streak counts training days in your timezone, 'Beat My Workout' keeps its target fixed at the session you picked, leaderboard ties share a rank, and accept/resolve/join are safe under load โ€” no 3-person challenges, no over-capacity groups, no duplicate 'You won'
    • ๐Ÿ‘‘ Groups: every member can see who's in the group, admins can promote another admin, leave once someone else runs it, or delete the group; invite problems ('group is full', 'already a member') say so instead of bouncing to a blank page
    • ๐Ÿง‘โ€๐Ÿซ New Settings โ†’ Coaching card lists who can see your data (one-tap revoke) and who you coach; the consent screen spells out exactly what a coach sees; coaches see and set a client's numbers in their own units
    • ๐Ÿ•’ Transformation stories refresh their stats automatically when newer weigh-ins, workouts, records or badges arrive and show 'Stats as of <date>'; share previews always show your before/after photos (WebP and huge originals included) and load far faster; 'Save 9:16' / 'Save 1:1' exports fill the image
    • ๐Ÿ“ฆ Data export now includes lab results and panel protocols, every workout set, personal records, compound and supplement schedules and logs, food logs, badges, Atlas memories and chat history โ€” in your units, with a unit column
    • ๐Ÿค– CLI: back-filled workouts and injections are dated to when they happened (PRs, streaks and the serum model follow), measurements are stored and returned in your unit system (a 34-inch waist is no longer saved as 34 cm), delete tools preview and only act on confirm: true, and get_lab_history returns the protocol that was on board at each draw
    • ๐Ÿž See every bug you've reported and its status under Settings โ†’ My Bug Reports; reports never capture API keys, tokens, passwords or email addresses from console errors
    • ๐Ÿ› ๏ธ /goals loads again (the crash since v4.56.0 can't come back), Recent PRs and Strength Curve show kg for metric users, goal progress reads 0% when you drift away from the target (not 100%), Adherence never exceeds 100%, and Weekly Volume shows last week's sets instead of a blank card on Monday morning
    • ๐ŸŸข One colour rule for changes: on a bulk a gain is green everywhere, on a cut a loss is green everywhere, waist/hips shrinking on a cut is green too โ€” and every coloured change also reads 'on track' / 'off track' to screen readers
    • ๐Ÿงญ Every empty widget says what to do next (Log a weigh-in, Start a cycle, Connect your Withings scale, Upload bloodworkโ€ฆ), Withings-only cards stay hidden until a scale is connected, real error pages keep the sidebar and offer Try again / Report a bug, and loading skeletons appear while pages fetch
    • ๐ŸŽ Installed to your iPhone home screen (the web app โ€” not an App Store app): header and sheets clear the status bar and home indicator, proper home-screen icon, browser chrome colour follows your theme. Push taps reliably open the right page, subscriptions renew in the background, and logging out disconnects push on that device
    • ๐ŸŽจ Light theme works properly (visible borders, table lines and dividers; readable change badges), secondary text meets WCAG AA on every dark theme, 'Reduce motion' is respected across the app and landing page, and the Labs pages follow your theme
    • โ™ฟ Every icon-only button in the app has a screen-reader label, number fields open the numeric keyboard, touch targets meet 44 px, story tap zones are real buttons, and arrow keys no longer flip story cards while you're typing in the settings sheet
    • โ†ฉ๏ธ Nothing destructive happens on a bare tap anymore: deleting a set, exercise, workout, template, weigh-in, food entry, measurement, goal, photo, schedule, transformation, song, client or coach always confirms โ€” and most offer Undo
    • ๐Ÿ”— Opening a link while signed out (push notification links included) brings you back to that page after you log in; the sidebar highlights the section you're in on sub-pages and remembers whether it was collapsed
    • โšก Faster everywhere: dashboard charts load in their own chunks and no longer re-mount after page load, workout history, the Calendar and the exercise picker fetch in a handful of queries, exercise how-to steps load only when you open the demo, the notification bell stops polling while the tab is hidden, and 38 new database indexes back the hot paths
    • ๐Ÿ“ฆ Runtime and libraries upgraded โ€” Node 22 LTS, Next 15.5.23, better-auth 1.7, drizzle 0.45.2, sharp 0.35, ws 8.21 โ€” clearing 31 open security advisories; /api/health now reports the running version and commit
  9. Long Atlas Threads Keep Their Answers

    v4.62.1
    • ๐Ÿ› Fixed Atlas answers flashing for a split second and vanishing once a conversation passed 50 messages. The thread reload was fetching the oldest 50 messages instead of the newest, so everything after #50 โ€” including the answer that had just streamed in โ€” was hidden. Long threads now show every message, and nothing was lost: answers Atlas gave in the meantime were saved and now appear
    • ๐Ÿง  Atlas reads the most recent 200 messages of a thread for context, not the oldest 200, so very long conversations can't drift back to answering months-old questions
    • โšก Added a thread/timestamp index on chat messages so long threads load fast

MONDAY, AUG 24, 2026 ยท 3 RELEASES

  1. Last Time's Numbers Follow The Exercise

    v4.62.0
    • ๐Ÿ‹๏ธ The "Last (date): โ€ฆ" line in the workout logger now follows each exercise instead of the template. Duplicate a template, rework it for a new mesocycle, run a deload week, or start an ad-hoc session โ€” every lift you've done before still shows the sets, reps, and weight from the last time you did it, so you know exactly where to pick up
    • ๐Ÿ“… Each exercise carries its own date, and when the numbers came from a different workout than the one you're running, the line names it (e.g. "Last (Aug 17 ยท Justin Shoulders Day): 10ร—225, 8ร—225 lbs")
    • โž• Add an exercise mid-workout and its history appears immediately โ€” no need to leave the session to look it up
    • ๐Ÿ†• Exercises you've never logged before say so plainly instead of showing a blank
  2. Dashboard Clarity + Share Cards With PRs

    v4.61.0
    • โš–๏ธ The lean/fat breakdown moved from the Lean Mass Trend card to the Weight Trend card, where it belongs: right under your weight change you see how much of it was lean and how much was fat, and the two always add up to the number above them. The lean card is just lean now โ€” headline, change, chart
    • ๐ŸŽฏ Weight Velocity no longer calls months of history an 'early read'. Weekly-ish weigh-ins over a month are a real trend: the card widens to a 6-week window for sparse loggers and rates those reads as confident. When data really is thin it says what the estimate is built on ('Trend estimate ยท 7 weigh-ins over 25d') instead of telling you to weigh in more
    • ๐Ÿ› Fixed Active Levels listing compounds you stopped months ago at '0 mg active' (NAD+). A compound with nothing running and nothing left in your system isn't active โ€” it drops off the card and the full chart together
    • ๐Ÿ‹๏ธ Shared workouts use the sharer's units everywhere: the link preview image and the share page. A lbs lifter never sees kg again (kg lifters keep kg)
    • ๐Ÿ† Share previews and pages now show your PRs: a PR count box plus a trophy line with the biggest lift of the day โ€” exercise, weight ร— reps, and whether it was a weight PR or a rep PR
  3. Synthwave Landing Page

    v4.59.0
    • ๐ŸŒ† The landing page got a full rebuild: retrowave sun and grid horizon, gradient headline, animated dashboard and Atlas previews, and a feature grid that finally covers what the platform does today (Active Levels, lab OCR, Transformation Wrapped, the exercise library, badges, groups, coaching, the agent CLI)
    • ๐ŸŽจ Synthwave is now the default theme anywhere a visitor has not picked one: the landing page, new accounts, and share links
    • ๐Ÿ› Fixed shared workouts, templates, and transformations always rendering in green. The share page applied the creator's theme through a CSS class that did not exist, so it fell back to the old default. Your links now wear your theme

SATURDAY, AUG 22, 2026 ยท 7 RELEASES

  1. Compound Info Opens On Click, Not Hover

    v4.58.4
    • ๐Ÿ–ฑ๏ธ The compound pharmacology panel no longer springs open on hover โ€” click (or tap) the name to open it, the X to close it. One interaction model everywhere, no surprise modals
    • โœจ In place of the caption, the affordance is visual: compound names carry a dotted underline and a blue info glyph that pulses once when the card appears โ€” an invitation to press, without a label spelling it out
  2. Side Effects That Belong To The Compound

    v4.58.3
    • ๐Ÿ› Fixed the compound library showing the same generic side-effect list โ€” gynecomastia, blood clots, priapism, serotonin syndrome โ€” on 120 unrelated peptides and compounds (Retatrutide, BPC-157, TB-500, Semaglutideโ€ฆ). It came from a site-wide template in the enrichment scrape, not from any compound's actual profile
    • โœ… Retatrutide and HCG now carry accurate, compound-specific side-effect lists (Retatrutide's from its Phase 2 trial profile: GI effects, injection-site reactions, heart-rate increase, skin dysesthesiaโ€ฆ). The other affected compounds show no side-effects section until real data is curated โ€” nothing is better than wrong
    • ๐Ÿ›ก๏ธ The scraper now rejects template lists so this can't come back on a re-run
  3. Journey Strip Sizing Fix

    v4.58.2
    • ๐Ÿ› Fixed the new journey timeline rendering each photo at full card width (and the card growing far past the screen): item widths are now measured from the strip instead of percentages of its max-content wrapper
  4. The Journey Is An Actual Timeline Now

    v4.58.1
    • ๐Ÿงญ The Journey card got a proper timeline: one continuous rail runs across the whole strip, each checkpoint is a glowing node with its photo hanging beneath, and protocol events are slim flask markers on the rail with just a date, "Started", the compound and its weekly dose โ€” no more boxed cards
    • โœจ The rail draws itself when the card comes up, the nodes pop in one after another, and a brighter accent segment lights the rail up to wherever you've swiped. Respects reduced-motion
    • ๐Ÿ” A compound that started on the story's first day now reads "Started" rather than "On board"
  5. Forgot To Log Yesterday's Workout? Pick The Day

    v4.58.0
    • ๐Ÿ“… Start Workout now has a Workout Date field at the very top. It defaults to today, so nothing changes for a normal session โ€” but pick yesterday (or any earlier day) and the workout is saved to that day, not the day you got around to logging it
    • ๐Ÿ—“๏ธ Every workout also shows a date control in its header โ€” on the live logging screen and on a finished workout's page โ€” so a session that landed on the wrong day can be moved with one tap; its personal records move with it
    • โฑ๏ธ A workout logged after the fact doesn't pretend to know how long it took: no elapsed timer ticking since yesterday, and no made-up "0m" in your history, calendar, or share card. Workouts timed live keep their real duration even if you re-date them
    • โ–ถ๏ธ If you already have a workout in progress, the Start screen says so up front with a Resume button instead of silently opening it when you tap a template
  6. Protocol Events On The Journey, And A Scrollbar That Behaves

    v4.57.1
    • ๐Ÿงญ When compounds are shared, the Journey strip now shows them as events between your checkpoints โ€” "Started Retatrutide 3 mg/wk", then "Started Testosterone Enanthate 600 mg/wk ยท Oxandrolone 350 mg/wk" โ€” plus "Stopped" when one ended mid-story and "On board" for anything already running at the start
    • ๐Ÿ› Fixed the odd white scrollbar that popped in and out on the scrollable cards (Personal Records, Badges, the compound info panel): the track is now transparent with a faint thin thumb that matches the theme
  7. Tap A Compound, Learn The Pharmacology

    v4.57.0
    • ๐Ÿ”ฌ On the Protocol card, every compound name is now tappable (hover on desktop): a panel slides over the card with what it is, its effects, how it works, half-life, anabolic:androgenic ratio, derivative class (DHT, 19-nor, testosteroneโ€ฆ), aromatization, chemical formula and molecular mass, side effects, and notes โ€” straight from the compound library
    • ๐Ÿงฌ Works for peptides too: Retatrutide shows its Eli Lilly origin, triple-agonist mechanism, C223H343F3N46O70 formula and 4,845 g/mol mass; HCG shows the LH-mimic mechanism and its indirect estradiol effect
    • ๐Ÿ”’ Still allow-list only: reference info rides along only for compounds you chose to disclose, and it's library data โ€” nothing about you

FRIDAY, AUG 21, 2026 ยท 6 RELEASES

  1. Journey Feedback Round: Phases, Weekly Doses, Two-Column PRs

    v4.56.1
    • ๐Ÿ” A story spanning a cut AND a bulk now shows both phases on its cycle card ("22-week Cut, 12-week Bulk", each with dates) instead of only the longer one, and its KPIs are colored as a recomp โ€” total weight direction is neutral, lean up and fat down are the wins
    • ๐Ÿ’‰ The Protocol card quotes what lifters actually quote: the cumulative weekly dose (200 mg ร— 3/wk = 600 mg/wk, 500 IU ร— 3/wk = 1,500 IU/wk) with the per-administration schedule underneath โ€” no more TRT-looking numbers for a real protocol
    • ๐Ÿ‹๏ธ Personal Records is now two columns โ€” Heaviest Lifts and Rep Records โ€” each sorted heaviest-first and scrollable, so weight records are never crowded out by a week of rep PRs
    • ๐Ÿงญ Journey checkpoints now break each step's change into weight, lean mass, fat mass, and body-fat %, so +50 lbs reads as +35 lean / +15 fat instead of looking like you just got heavier
    • ๐Ÿ’พ One Save Changes button saves everything in the story settings โ€” music, accent, checkpoints, framing, and compounds โ€” together. Previously the per-section save reloaded the page and discarded an unsaved song change
    • ๐Ÿ… Badges card fits a big haul: past six badges it switches to a dense three-column grid that scrolls
  2. The Elite Tier: 15 New Badges For People Who Already Have The Other 15

    v4.56.0
    • ๐Ÿ… 15 new elite badges, built for daily users who've cleared the original set: PR Immortal (250 PRs), 1,200 lb Club, 1.5ร— Bodyweight Bench, Double Bodyweight Pull, Five Million Pound Club (lifetime tonnage), Two-Fifty Club, Half-Year Machine and 52-Week Machine (26/52 straight weeks with 3+ workouts), Never Skips Leg Day (100 lower-body sessions), FFMI 25, Thirty Ten-Ks, Quarterly Bloodwork, Chronicle (20 photo days), Stack Discipline (2,500 supplement doses) and Five Hundred Pins
    • ๐Ÿ“Š Locked badges now show a live progress bar and the real numbers โ€” "2.7M / 5M lbs", "137 / 250 workouts", "23.4 / 25 FFMI" โ€” so every elite badge is a chase you can watch, not a surprise
    • ๐Ÿ”” Every badge unlock now lands in the notification bell as well as the toast, and badges earned while you're not in the app (a Withings weigh-in that tips FFMI, the nightly run finding a supplement milestone) arrive as a phone push
    • โš–๏ธ Badges that depend on the scale are checked on every weigh-in; photo uploads, lab entries and injection logs check too, so the badge fires at the moment you earn it
    • ๐Ÿ—‚๏ธ Awards page regrouped: Personal Records, Strength Standards, Goals, Consistency, Health & Protocol, Community โ€” and the challenge-win badges finally show up there instead of being earned invisibly
    • ๐Ÿงฎ Strength standards are computed from your real standing maxes against your latest logged body weight, in your units; FFMI uses the same offset-adjusted number as the body page card
  3. Journey Card: Edges Flip, Middle Swipes

    v4.55.1
    • ๐Ÿ› On the new Journey timeline card, tapping the screen edges beside the photo strip didn't advance the story โ€” the strip was layered over the tap zones. The edges flip slides again; the middle of the strip is for swiping
  4. Multi-Phase Journeys, Framing, And The Protocol Card

    v4.55.0
    • ๐Ÿงญ Multi-step transformations: add any number of checkpoint photos between your before and after โ€” the end of a cut before the bulk, mid-bulk, wherever the story turned. They become a swipeable left-to-right timeline in the story, each with the weight and body fat at that moment and the change since the previous checkpoint
    • ๐Ÿ” Add checkpoints to transformations you've already made โ€” no need to recreate anything. New section in the story settings
    • ๐Ÿ“ˆ The Body Metrics chart now shades each phase โ€” cut, bulk, recomp โ€” straight from your cycle history, so a year that went 211 โ†’ 166 โ†’ 216 reads as two phases instead of one confusing line
    • ๐Ÿ–ผ๏ธ Frame every photo yourself: drag to reposition and zoom inside the exact 3:4 frame the story uses. No more auto-crop lopping off a double-bicep. Works at creation and in settings, and applies everywhere the photo appears
    • ๐Ÿงช Optional Protocol card: choose, compound by compound, what to show on a story. Off by default, nothing is ever included unless you tick it, and it applies to your share link too โ€” so the close-friends version and the family version can be different stories
    • ๐Ÿ–ฅ๏ธ Desktop stories finally fill the screen: on laptops and monitors the story frame scales up to your window height instead of sitting at phone width
  5. Uploaded Songs Show Up When You Create, Too

    v4.54.3
    • ๐Ÿ› Fixed the Create Transformation screen only listing the built-in songs: uploaded music (yours and admin-shared) only appeared when editing a story afterwards. The create screen now uses the same full catalog as the settings sheet
    • ๐Ÿ—‚๏ธ The create-screen picker groups the list โ€” built-ins first, then "Added by admins", then "Your uploads" โ€” so shared tracks are easy to spot
  6. The Clip Trimmer Is Back

    v4.54.2
    • ๐Ÿ› Fixed the song clip-range controls (start/end time) not appearing in the transformation settings after selecting a song โ€” they only showed up once you'd pressed preview
    • ๐Ÿ”ฌ Root cause: the track length was read from the audio element after it had already been torn down, so the trimmer was being told the song was 0 seconds long and hid itself. The length is now captured the instant it loads, and in-flight loads are held until they finish
    • โœ‚๏ธ Start/end trimming now appears the moment a song is selected โ€” built-in or uploaded โ€” no preview required

THURSDAY, AUG 20, 2026 ยท 1 RELEASE

  1. Custom Dose Badges Are Safe to Tap

    v4.54.1
    • ๐Ÿ›ก๏ธ Tapping a +dose badge no longer deletes it instantly โ€” it now opens a dialog showing the dose details with explicit Keep / Remove buttons
    • โ†ฉ๏ธ Even a confirmed removal is recoverable: the toast now has an Undo button (10s) that re-logs the dose on the same day
    • ๐Ÿ’‰ If you lost a custom dose to the old one-tap behavior, it's been restored
What's new โ€” AnabolicAdvisor