Changelog
What is new in RepSheet. Updated whenever something ships.
- A morning reminder at 8 AM Eastern asks if yesterday was alcohol-free, and signed-in visitors on the home page go straight to the dashboard
- Add push notification toggle for morning reminders
- Drag a training day to another weekday
- Skipping an exercise now auto-advances to the next page
- Rest timer stops on completion instead of auto-restarting
- Retitle first carousel slide to "Create a Trackable Plan with a Picture"
- List every shipped change, including plain-titled merges
- Sign-up names the free 10-day trial, and support says when you get a reply
- Show a signing-in state after the Google popup closes
- Drop a photo on the home page and see your plan before you sign up
- Train on a rest day, and file a loose workout back under its program
- Supersets: pair two exercises and log them as one block with rest after each round
- The first review from a RepSheet user now sits above pricing
- Photo reads are capped at three a day, with a plain message when the cap is hit
- An old sign-in no longer shows a repeating refresh error
- A photo that cannot be read now says so in plain words and offers a retake
- Photo reads are capped at 10 a day on the trial and 50 a day on paid, with a plain message when the cap is hit
- The rest timer alarm is three beeps
- The home page no longer promises a 12-week program; your plan is as long as the source
- The Uneed launch badge is twice the size so the text can be read
- Show the Google Health card to the owner while the scope is unverified
- Hide the Google Health connect card while the scope is unverified (issue #135)
- Show the founder's no-alcohol streak on the public training log
- Reorder exercises on the program page with up and down arrows
- Align signed-in nav beside the logo (issue #128)
- Fit the exercise chart axis to the data so increases are visible
- Branded Google sign-in via GIS renderButton (issue #117)
- Embed week_plans so the program filter applies
- Settings card matches the posture card layout
- One warm-up at 10-20 reps, drop the forehead hold, card headings at card size
- Share the image only, and tidy the public log
- Share card - a PNG of your finished workout for the share sheet
- Swallow forbidden cookie writes during server-component render
- Google sign-in via branded ID-token flow (issue #117)
- Replace em dashes with double hyphens in card copy
- Reject today/future dates in the toggle server action
- No-alcohol streak card, settings toggle, and streak-day store
- Optional posture warm-ups on training days (issue #113)
- Include Breathing Sessions in the history and totals
- Surface persistent server rejections on save (issue #110)
- Hide weight/volume modes for duration-only exercises
- Warm the router cache so repeat navigation skips the skeleton
- Add Blog and Changelog to the shared footer links
- Drop blocking auth round trips on public routes
- Skip the account chooser when login_hint is present
- Pre-select the login Google account via OAuth login_hint
- Keep workout cards reachable when the program is deleted
- Render dash for null streak instead of fabricated 0
- Markdown variants, content negotiation, bot-visit measurement
- Native-feel CSS pass
- Public changelog page and header link
- Customer Zero - publish owner's live training log
- Add "What RepSheet isn't" block beside the benefit cards
- Auto-log completed workouts on opt-in
- OAuth connect flow + per-user token storage
- The credit on the landing page
- Date-gate the Uneed launch badge for Sept 10-12
- Add no-questions refund line to the shared subscribe panel
- Add the hand-entry promise to the formats FAQ answer
- The credit on the landing page
- Add Wind-Down Breathing as a second 10-minute session type
- Lengthen breath phase cues so the inhale is feelable on Android
- App icons refresh on installed devices
- Faster workout parsing
- Demo workouts only use weights the picker can actually produce, and the tablet card is centred
- Re-shoot the session carousel still and promote it to slide 2
- Select the bodyweight columns on history and volume
- Count bodyweight sets toward volume
- Stop throwing away bodyweight on save
- Put 8 and 12 on the weight wheel, stack the nudge on mobile
- One header on every public page, and no theme flash between them
- Quiet the field for the FAQ, and even up the footer
- The credit on the landing page is clickable again
- One CTA pill at one size, short label on phones
- Keep the landing page a landing page when signed in
- The rep picker, the upload scroll, and the credit on the landing page no longer stick
- Name the brand on the pages, not in the header
- Bring the public pages into the landing page's visual world
- A stored set is completed or skipped, never neither
- Pick duration on minutes + seconds wheels
- Duration is a real field, with its own thumb wheel
- "Last" panel follows the exercise, not the day
- Give tablets the phone layout, and unpin the breath counter
- Retire the dumbbell from every exported asset
- Drifting wordmark in the footer, and a readable return ramp
- One definition of "visible" in the scroll reveal
- One FAQ answer open at a time, and pass AA on all of them
- Landing page animations no longer skip on first scroll
- Landing sections reveal one at a time, with their own pace
- Tally mark replaces the dumbbell as the logo
- Violet field with a glow, wider return ramp
- Tally-mark background texture, bidirectional reveals
- Scroll cue stays anchored, the field draws cleanly with each stroke
- Lead-in before the first cross-out, longer beat between reps
- The wordmark fills with the scrolling colour field
- Restore mobile header nav on public pages, centre FAQ answers on open
- Breathe: guided recovery breathing sessions
- Hold a screen wake lock while a workout timer runs
- Bare squats/lunges are not forced to the loaded lift
- Exercise Canon: name cleanup + duplicate prevention
- Exercise edit/delete icons visible on touch devices of any width
- Emailed sign-in code so installed apps can authenticate
- Accent color cycling via logo tap + accent-colored hero strike
- Page transitions feel smooth when you move between public pages
- Floating rest pill breathes at recovery tempo while running
- Move-up nudge judges the last session against the current prescription
- Last panel no longer brands unfilled sets "skipped"
- Saving a bodyweight set no longer fails validation
- Longer placeholders fit the rep picker without clipping
- Finish the rep/weight scroll wheel and define where it opens
- Full-bleed opaque dumbbell home-screen icons
- Consistent press feel + hand cursor on every button, app-wide
- Preserve source 'Max' reps instead of rewriting to 'AMRAP'
- Nudge demo video down so the RepSheet wordmark clears the dynamic island
- Hero says 'No more spreadsheets.', gym-built benefit card, 3-day-trial CTA, app-wide button press pop
- Stop cropping the demo video; unify phone mockup
- Replace HeroSteps with a muted looping product-demo video
- Polish the upload flow and demo video
- Shorter dates on the volume chart
- Toggle the Reference weight between suggested and previous in the move-up banner
- One-tap complete-target button on each set row
- Session recap in the completed-workout share text
- Per-exercise Equipment override (per-hand dumbbell weight)
- Show selected-image thumbnail in uploader before parse
- Classify parse errors and never hang the spinner
- Progress bar uses the ink color, not the purple accent
- Snap move-up suggestion to plate-friendly ladder
- Add Manage billing button for subscribed users
- Show next exercise name in nav counter
- In-app contact form at /contact
- Smooth-scroll the Home and Pricing nav links
- Add Terms of Service page at /terms
- Add Privacy Policy page at /privacy
- Lock in landing copy (title, pricing, feature card, carousel)
- Rework Why + pricing copy, static benefit cards, one-word RepSheet
- Hero copy rewrite with measured "20 seconds" claim
- Add pricing section reusing the billing plan card
- Purple share card for programs
- Rebrand to one-word RepSheet
- Slide-4 image + wiggling flip-card hint
- Redesign exercise progress page
- Make the RPE info tappable on mobile
- Logger polish: prescription descriptor, first-time target, auto-scroll to Finish, swap/skip fixes
- Carousel mobile polish, hero copy, restore in-session swap
- Mobile-first polish for logger, nav, dashboard, and landing
- Trial-based access, no public pricing, single paid plan
- Mobile vertical scroll-reveal hero
- Sharpen hero headline + subcopy
- Violet brand accent on the primary token
- Footer as a strong, shareable close
- Hero step diagram, mobile menu, footer + nav polish
- Sign-up page + Start tracking CTA + sticky header
- Landing page redesign
- Hero Get Started button signs you in with Google
- Per-exercise completion, progress bar, gated Finish
- One exercise per page with counter and arrow nav
- Autosave workouts as drafts with resume and Complete button
- Skip an exercise during logging, with optional reason
- Share program progress with AI
- Add /move free movement timer
- Swapped exercises keep their name in your log
- Move-up nudge improvements + missed workout catch-up link
- Last-workout mini charts on progress page + swap bug fix
- Next workout card clickable, program dot color, rest/weeks edit guards
- Program exercise add/remove, workout log exercise swap + UX polish
- Exercise swap picker + root loading skeleton
- Nudge weight bump when previous session hit top reps at sub-8 RPE
- Show all exercises on volume breakdown, mark skipped sets
- Replace per-exercise rest timers with floating rest timer and audio notification
- Timer no longer fires twice; current-set highlight and pause-to-record
- Add next workout preview card to dashboard
- Show previous workout reference when logging
- Add progress feature with program completion bar and exercise tracking page
- Landing page share preview image
- Share completed workout to X with stats drop and total volume reps
- Public shareable program links with image preview
- Workout volume badge and dedicated per-set volume breakdown page
- Double volume for unilateral exercises marked each leg per side and similar patterns
- Sets-reps vs duration toggle in exercise editor with mode-aware save
- Count down duration timer from the high end of the range
- Detect duration exercises by duration field or broader keyword list including hold and hang
- Navigation guard dialog for dirty program edits with bulk save and discard
- Warn on unsaved workout logger changes with save or discard dialog
- Haptic feedback on set completion and rest timer done with iOS Safari support
- In-app rest and duration timers with 90s default rest and range parsing
- Show link to existing clone instead of clone button when revisiting source program
- Community program cloning, exercise editing, cardio normalization
- Show program quota on dashboard for starter users
- Update community programs feature description on billing page
- Active programs, community programs, duration estimation, parser fixes
- Remove forced camera capture, allow file picker on mobile
- Error handling for upload/parse, accept all image types
- Mobile camera support, subscription gate, fresh workout form
- Gate all app routes behind active subscription
- Highlight active nav link in header
- Correct X handle to dividend_solo
- Mobile responsive header, dashboard, and chart
- Install RepSheet as an app on your phone
- Add back-to-program link on workout log page
- Edit program (name, weeks, rest periods), delete program
- Quality-of-life improvements and chart fixes
- Add dashboard stats, progress charts, nav links, fix redirect
- Add workout logging with RPE tooltip
- Add screenshot upload, AI parsing, and program creation
- Initial project setup with landing page