I couldn't figure out what to do at the gym
Not the motivation part. I was there, ready to go. But standing in front of a squat rack trying to program a workout from scratch? Every single day? I had writer's block for workouts
So I did what any engineer would do. I opened ChatGPT and said "build me a workout generator"
The First Version Was Barely a Thing
October 2025. Vite + React. A movement library, a randomizer, some CSS. It would spit out a CrossFit WOD so I didn't have to think. Deployed to GitHub Pages. Done
Except it wasn't done. It was never done
I showed it to a couple friends
"Only CrossFit?"
That one question changed everything. Because the answer was obvious - the template system I'd built wasn't CrossFit-specific. It was a workout structure. AMRAP, EMOM, Tabata, For Time - those are just formats. Swap the movements and you've got a gym workout. Or a home workout. Or yoga. Or calisthenics
Same engine. New templates and movements for each type. By November I had seven workout types and the thing had a name - WodSpark
The Workouts Were Meh Though
Generating random workouts is easy. Generating good ones is a completely different problem
I'd get a workout and it would be all pull. Deadlifts into pull-ups into rows. My lats were filing a restraining order. So I built a push/pull balancing algorithm - track what the workout is loading and distribute it
Then grip. Two consecutive grip-heavy movements in the same workout and your forearms are toast by round three. Nobody programs like that in a real gym. So the generator shouldn't either
These weren't features on a roadmap. They were problems I found by actually using the thing every morning. The app got smarter because I kept showing up
Then It Took Over My Life
The timer came next. Once you're using your own app for real workouts, you need a real timer. Then the Morning Storm - a daily challenge with a global leaderboard. Then workout history. Then shareable workout cards. Then a dual-skin CSS system because desktop and mobile needed completely different vibes
By December I was 82 commits deep in a single month. Here are some actual commit messages:
"Millions of updates."
That was the whole message. What updates? Who knows. Not me, apparently
"Zustand updates. Woof!"
I was migrating state management mid-feature while building a timer, redesigning the desktop layout, and fixing a GPU crash. At the same time
"Before social flare. Major UI updates. It's so pretty :)"
"Finally fixed the horrible regenerate issue."
"Massive desktop redesign." "Massive desktop redesign."
Two commits, same message, same day. Two completely different redesigns
The app was legitimately good. The way I was building it? Absolute mess
Swipe Animations While Grocery Shopping
One of my favorite moments though - I wanted chained swipe animations. Workout cards that cascade into each other for a single visual wow. The timing had to be perfect or the whole thing felt janky
Getting that right manually would have been a nightmare. But Claude Code with Chrome MCP could see the browser. So I added a few timing logs to the terminal, told Claude what I wanted, and left to go grocery shopping
Came back with groceries. The animations were done. Flawless timing, every transition chained exactly right
That's when I realized the tools had leveled up. But my process hadn't
Vibe Coding Was Killing Me
Here's the thing nobody talks about with AI-assisted development. The "small prompt, wait, small prompt, wait" loop? It burns your entire life
You sit there. Type a prompt. Wait. Review the output. Type another prompt. Wait. Fix what it broke. Type another prompt. Wait. You're technically building things faster than ever, but you're also sitting there for all of it
I was spending full evenings babysitting code generation. The app was getting better but I was getting fried. Adhoc vibe coding was not doing it for me anymore
Something had to change
The Power Upgrade
The breakthrough wasn't a new tool. It was a new workflow
What if I spent 30 minutes planning an entire feature in detail - every chunk, every file, every acceptance criteria - and then let the AI build it overnight?
That's it. That's the whole insight. Stop babysitting. Start planning
I built a system that breaks features into stories, stories into chunks, and chunks into implementation specs detailed enough that an AI agent can build them autonomously. Validation gates catch quality issues. Checkpoints track every change. Tests gate every build
The first time it touched WodSpark was February 18th. And the git history changed overnight
Before:
"Millions of updates." "Fixed mobile center load." "Lots of bug fixes!" "CSS updates"
After:
"checkpoint: before chunk 1 - fix-desktop-shuffle-overflow" "checkpoint: before chunk 3 - premium-history-cards" "complete: enhance-history-empty-state (story 5/8)"
Every change tracked. Every feature planned. Every commit meaningful
The Numbers
| Period | Commits | Vibe |
|---|---|---|
| Oct 2025 | 38 | "first commit" energy |
| Nov 2025 | 68 | feature avalanche |
| Dec 2025 | 82 | beautiful chaos |
| Jan 2026 | 81 | great features, messy process |
| Feb 2026 | 44 | structured, intentional, shipped |
February had fewer commits than any other month. And it shipped more. Desktop polish cycle - 9 stories, all completed. Shareable workout cards. Premium history cards. App Store and Google Play submission. Privacy policy. Bug fixes with actual test coverage
44 commits that did more than the 82 in December
WodSpark Is on the App Store Now
The app that started because I couldn't figure out what to do at the gym is on the App Store. 7 workout types. 75+ formats. Push/pull balancing. Grip-aware generation. A daily challenge with a global leaderboard. A timer with haptic feedback. Offline support. Push notifications
All 7 native features passed device testing on the first try
From One Project to All of Them
Here's what's wild though
When I was building WodSpark, that was it. One project. All my attention. And I still couldn't keep it organized
The system changed the math completely. Plan a feature in detail, let agents build it, use that time to plan the next one. Everything staggered, everything spinning
Since building craft I've shipped a personal site with scroll animations and a blog. A knowledge mining system with RAG pipelines and creator personas. An expert council that routes technical questions across domains. A memorial chatbot built from 27,263 of my mom's text messages. And the plugin itself keeps getting better with every project that runs through it
All of it managed through the system that started as "please stop me from committing 'Millions of updates'"
Not because I found more hours. Because the hours I had started compounding
The best tool I ever built started because I couldn't write a decent commit message



