Back to Projects
AI Strength & Conditioning Coach

THRØVE

One continuous program. A new workout every day, each one built on what you've already done.

WodSpark could spit out a workout. But a workout isn't a program - I wanted something that remembers Monday when it writes Friday.

CrossFitDumbbellBodyweight
THRØVE home screen showing today's workout
THE ARC

WodSpark was a generator. A good one. THRØVE is a coach.

A generator hands you a workout and forgets you. A coach remembers Monday when it writes Friday - and keeps going from there. These are separate products. The arc is what happens when “good enough” stops being enough.

THE COACHING

Every workout has a voice

Here's where most fitness apps lose me. The workout shows up as a list. Three rounds of this, four sets of that, go. It's a spreadsheet that happens to make you sweat.

Warmup10 min

Thruster build-up, 5-5-3. Empty bar, then 65, then 85 - feel the catch.

The WOD8 min · 21-15-9

Unbroken on the 21 if you can. Breathe at the top, not the bottom.

★ Signature Moment

“The round of 15 thrusters. The first round was adrenaline. This is the truth. If you hold on here, the 9s are yours.”

Cooldown4 min

Slow walk, couch stretch, dead hang. Let the spring unwind.

THRØVE programming screen showing detail phases
ProgrammingWeek built on the last
WHAT IT DOES

It doesn't pick a workout. It programs your week

A generator gives you a workout. You ask, it answers, it forgets you the second you close it. Tomorrow it starts over from nothing. That's WodSpark, and WodSpark is good at exactly that.

But a workout isn't a program. A program knows what you did Monday when it writes Friday.

So I built a coach.

THRØVE has an actual coach under the hood - built on the way top programmers in the industry actually periodize training, not a random-exercise shuffle. Before it writes your next block, it reads two things: the preferences you set, and the week you just lived. What you hit. What you skipped. What's been beat to death and what hasn't been touched. Then it programs forward.

And it never resets. It's one continuous calendar, not a stack of disconnected weeks. Every day is built on every day before it. Push too hard Tuesday and Thursday knows. Miss legs for two weeks and the coach notices before you do.

That's the whole thing, honestly. I got tired of tools that generate. I wanted one that remembers. THRØVE remembers Monday when it writes Friday - and then it remembers Friday when it writes next Wednesday, and it just keeps going

THRØVE library screen showing workout history
LibraryFull rolling history
TRAIN YOUR WAY

Three disciplines. One coaching system.

CrossFit

Full barbell + rig programming. Periodized strength, conditioning, and skill work built around what your box actually has.

Dumbbell

Serious training with just dumbbells. Not a downgrade from CrossFit - a different discipline with its own programming logic.

Bodyweight

No equipment, no excuses. Gymnastic progressions and conditioning that scales to any fitness level, anywhere.

HOW IT'S BUILT

The model never decided what good is. I did.

Every AI fitness app pings a model when you open it. Tap, wait, spinner, here's your AI workout - and somewhere a meter is running on every single tap. THRØVE doesn't do that.

Here's the part I'm quiet about.

I didn't call Claude once and read the results. I sat with it for weeks, one workout at a time, like a head coach sending back an assistant's programming until it's right.

Claude drafted, then graded its own work against a hundred-point rubric and rewrote itself when it fell short. Then I read every survivor. The full hour, not just the flashy part. Approve, fix, or kill.

But here's the part that's mine. Every correction became law.

  • “Too many carries on a Friday, I know I'll skip it.”
  • “No wall slides.”
  • “Program for the room, not the podium.”

Thirty of them, each one a rule the next workout had to obey.

The model never decided what a good workout is. I did. One correction at a time, until it knew what I wanted.

Nothing shipped on its word. It shipped on mine. It's good because I corrected it into being good.

Then I shut the model off.

What you tap into already passed. Local embeddings find the right workout for where you are, your phone serves it, done. No round trip. No spinner. No meter running.

The coaching is real. The compute bill basically isn't.

THRØVE home screen showing today's workout session
Today's SessionNamed workout, coach brief
THRØVE library screen showing workout history
LibraryFull rolling history
THRØVE search screen for finding past workouts
SearchSemantic workout lookup
THRØVE programming screen showing weekly phases
ProgrammingWeek built on the last
BUILT WITH
Next.js 15Postgres + pgvectorONNX local embeddingsClaude API (on-demand only)ZodBetter AuthReact 19TanStack QueryVitest (2,200+ tests)Live App