I love lifting barbells and programming.
I got sick of having my data stuck in fitness apps so I started logging my lifts in Google Sheets - but the charting options were quite limited.
So I made Strength Journeys to own my barbell data in Google Sheets but have beautiful visualization and analysis.
It’s also been my learning journey for React and Next.js.
The tech stack is:
- Javascript and Next.js 14.2.x (mostly pages router) on Vercel
- shadcn/ui components (including the beautiful Recharts wrapper - I used chart.js for a while before that)
- Vercel AI SDK using chatGPT 4o API - we have an AI wrapper where you can talk to your data and get lifting advice and motivation
- NextAuth for Google oauth to read your Google Sheet
- useSWR for data fetching (this has been really fun to make client data refreshes smooth and taught me alot about how React hooks work)
- Geist font - I really love this beautiful font, especially on mobile
- Have just started adding articles via sanity.io. (it was great to see how static props and SSG works - kind of magical how fast these pages load)
- open source GPL license, code on Github
I wanted to create as many helpful strength calculators and lifting tools as possible, but the real magic happens if you log your lifts in Google Sheets. You give us access using a simple date-journal format, and the app does the rest, visualizing and analyzing your data without storing anything. Everything happens on the client side, with API routes simply passing data from your Google Sheet to your browser.
I’m kind of obsessed with Vercel’s speed—it blows my mind to see the page load in under 300ms. I’ve had lots of fun learning Next.js through this project.
I’d love any feedback - from both lifters and programmers.