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

PeriodCommitsVibe
Oct 202538"first commit" energy
Nov 202568feature avalanche
Dec 202582beautiful chaos
Jan 202681great features, messy process
Feb 202644structured, 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

WodSpark - workout builderWodSpark - generated workoutWodSpark - Morning Storm challengeWodSpark - workout timer
Download WodSpark on the App Store

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