Accountability is hard when you’re transforming your body. It’s easy to skip workouts, fudge numbers, or only share the good days. That’s why honest tracking matters more than fancy integrations.
I use Hevy to track every workout - the best lifting app I’ve found. Every set, every rep, every weight gets logged honestly. No cherry-picking, no editing, just raw data.
Why Transparency Matters
When I started this transformation, I knew the biggest risk wasn’t failing once. It was lying to myself about consistency.
Most fitness content online is highlights. Perfect form, perfect lighting, perfect results. But real transformation happens in the messy middle - the deload weeks, the plateau grinding, the days when you show up but don’t feel strong.
Tracking everything honestly means I can’t hide from the data. Miss a week? It shows. Have a bad session? It’s there. Hit a new PR? That shows too, but it’s earned.
What I Built (And Why I Cut It)
I originally built a live Hevy integration into this site - webhooks, real-time workout feeds, progress charts, the works. Every time I finished a workout in Hevy, the data would appear on this site within minutes.
The original version of this site was built with Fresh, Deno’s web framework, deployed to Deno Deploy. Fresh uses an islands architecture - pages are server-rendered on each request, and only specific interactive components (islands) get hydrated with JavaScript on the client. The Hevy integration fit naturally into this model: the server could receive webhooks and fetch workout data on every request, while islands handled the interactive bits like progress charts and filtering.
The problem was island creep. The workout feed, progress charts, filtering UI, analytics widgets - each one was another Preact island shipping JavaScript to the client and hydrating on load. For what should have been a content site, I was accumulating a lot of runtime complexity.
I migrated to Astro with static output deployed to Cloudflare Pages. Astro supports islands too, but the migration was a chance to ask what actually needed to be interactive. The answer: almost nothing. The site is now pre-rendered HTML and CSS served from Cloudflare’s edge network.
That migration meant cutting the Hevy integration:
- SSR to static - Fresh server-renders pages on each request, which made live workout data easy. Astro generates static HTML at build time. No server to receive webhooks or fetch data per request.
- Island discipline - Astro lets you add islands, but moving frameworks was a natural reset. Instead of porting all those Preact components, I asked which ones actually earned their JavaScript cost. None of the workout widgets did.
- Scope creep - What started as a simple feed turned into charts, analytics, filtering, and detailed workout views. Cool, but not the point of this site.
- The tool already exists - Hevy itself is great at displaying workout history. I don’t need to rebuild it here.
Sometimes the best engineering decision is removing something that works but doesn’t belong. The site is faster, simpler, and cheaper to run without it.
Shout Out to Hevy
I’ve tried a lot of workout tracking apps, but Hevy gets it right:
- Clean, fast interface that doesn’t get in the way during workouts
- Great progression tracking with automatic PR detection
- Solid community features for sharing progress
- Reliable data export - your workout history stays yours
Thanks to the Hevy team for building a tool that keeps me honest.
The Accountability Effect
Tracking every workout honestly changes how I approach training. Knowing every session is on the record makes me more thoughtful about:
- Showing up consistently - gaps in the schedule are visible
- Proper form over ego lifting - bad reps don’t help long-term progress
- Honest logging - there’s no point in lying to a system designed for truth
It’s not about performing for an audience. It’s about building systems that make consistency easier than inconsistency.
Try It Yourself
If you’re working on your own transformation, consider adding some transparency:
- Track your workouts consistently (Hevy is great for this)
- Share your progress somewhere - blog, social media, with a friend
- Build systems that make honesty easier than hiding
You don’t need to integrate your workout tracker with your website. But you do need some way to stay accountable to the process, not just the results.
The numbers don’t lie, but they only matter if you’re honest about collecting them.