Ruckfecta Changelog
What we have shipped in Ruckfecta — new features, improvements, and fixes — newest first. Subscribe via the RSS feed at /changelog.rss to be notified the moment something new lands.
August 2, 2026 — Profile links now show your avatar when shared
- Sharing a public profile link to Facebook, X, Slack, or Discord showed no picture: the preview image pointed at the privately-stored avatar file, which social crawlers were never allowed to fetch. Public profiles now serve their avatar through a public endpoint, so shared profile links show the avatar — with no change needed to existing avatars. Private and leaderboard-only profiles still never expose their avatar.
August 2, 2026 — Shared cards now show their image on Facebook and other social apps
- Shared winner/recap card links were rendering with a blank preview on Facebook (and a broken image on the share page itself) because the card image URL pointed at a storage path that always returned an error. Card images are now served from a reliable public endpoint, so link previews, the share page, and the Download Image button all work — including for existing shared links.
- The Download Image button no longer silently saves an error file as a `.png`; if the image is unavailable it shows an error instead.
August 1, 2026 — Clubs can now sell event tickets in their own currency
- Paid club events are no longer USD-only: when setting a ticket price, hosts on a paid plan can now choose EUR, GBP, CAD, AUD, or NZD (as well as USD). Ticket prices display in the chosen currency everywhere — the event form, event lists, shared event pages, and checkout — and payment is collected in that currency. Existing events are unaffected. As with the price itself, the currency locks once anyone has paid.
August 1, 2026 — Club and event discovery now feels native outside the US
- Distances on club and event discovery (radius filter, "X away" badges, map popups) now show in kilometers for metric users — signed-in members follow their account unit preference, and visitors get a locale-based default.
- Event times now carry an explicit timezone label (e.g. "7:00 PM GMT+2") on the events list, event detail, and shared event pages, so viewers in other timezones aren't silently shown a different clock time.
- Event dates and times follow the viewer's locale (12-hour vs 24-hour, month/day order) instead of fixed English formats.
- The discovery map's initial view is now a neutral world view instead of always centering on the continental US.
July 31, 2026 — Admins now get alerted when signup emails start failing
- If verification, registration, or contact/feedback emails start failing repeatedly, an alert email now goes to the admin automatically — so an email outage is noticed within hours instead of weeks. The alert contains only failure types and counts, never personal data.
July 31, 2026 — Unsubscribing from a reschedule notice no longer cancels your spot
- Guests who click "unsubscribe" on an event rescheduled or location-changed email now just stop future event emails — their registration stays intact. A separate "Cancel your registration" link is offered for guests who can't make it.
July 31, 2026 — Approved join requests now land in your inbox
- When a club owner approves your join request, you now get an email with a direct link to the club — no need to open the app to find out. Respects your Club Invite Reminders email preference, with a one-click unsubscribe link.
July 25, 2026 — Join request decisions now come to you
- When a club owner approves your join request, your notification now links straight to the club so you can jump in right away. Declined requests get a gentler message with a link to browse other clubs.
July 25, 2026 — Guest attendees now get event reminder emails
- Guests who registered for an event (including paid ticket holders) now receive the same 24-hour and 1-hour reminder emails as members, with a calendar link and a one-click cancel-registration link.
July 24, 2026 — Recovered Garmin rucks keep their original pack weight
- When a Garmin import fails mid-save and an operator retries it, the recovered workout now keeps the pack weight you originally entered (and scores correctly), instead of coming back unweighted.
Features Shipped
Every new capability that makes its way into Ruckfecta — from leaderboard filters and embeddable widgets to club tools, Garmin sync upgrades, and operational dashboards — is logged here under a New section so you always know what is available today.
Improvements and Polish
Performance work, copy clean-ups, scoring refinements, and quality-of-life upgrades to existing features land in the Improved section of each entry. We surface them so the product stays predictable and so paying clubs can spot the changes that matter to them.
Fixes and Security Hardening
Bugs squashed, billing edge cases handled, and security vulnerabilities patched show up under Fixed. We log security work publicly once it ships so clubs, captains, and individual ruckers know exactly when an issue was resolved.