AI in Education

I Built My Own Fitness App and It Didn't Kill Me (Much)

I'm not a developer. But I shipped a full fitness app — AI coaching, a swim builder, exercise demos, Firebase sync, and a live URL — using nothing but vibe coding and stubbornness.

Chad's Challenge
Personal — not publicly available

Let me paint you a picture.

It's early 2026. Every fitness app on the planet wants $29.99 a month to tell you to drink water and "trust the process." My Apple Watch is judging me. My gym bag smells like broken promises. And I'm sitting there thinking — what if I just built my own?

Not because I'm a developer. I'm not. Not even close. But we're living in the most interesting moment in human history when it comes to what a regular person with an idea and a bit of stubbornness can pull off. So I did it. I vibe coded a full fitness app — with AI coaching, a swim builder, exercise demo images, Firebase sync, and a live deployment on the web — and I'm here to tell you exactly how it went, warts and all.

What Even Is Vibe Coding?

If you haven't heard the term, welcome to June 2026 where "vibe coding" is now officially a thing people say in meetings without irony. The concept is simple: you describe what you want in plain English to an AI, it writes the code, you react to what you see, and you keep going.

You're not writing syntax. You're not debugging semicolons at midnight. You're having a conversation with a very fast, very patient collaborator who happens to know React, TypeScript, Firebase, Tailwind CSS, and about forty other things you've never heard of.

The skill isn't coding anymore. The skill is knowing what you want and being able to describe it clearly.

Which, if you're an educator, communicator, or just someone who's spent time thinking carefully about problems — surprise, you already have that skill.

The Idea: An App Built For Me, Not For Everyone

Here's my problem with every fitness app ever made: they're built for a fictional person. Some 28-year-old with perfect recovery, unlimited time, and a burning passion for gamified streak badges.

I swim. I lift. I do Zone 2. I have a neck. Some days I'm a 9/10 ready to crush it, some days I'm a 3/10 and I just need to walk and eat protein. I wanted an app that understood that person — not a template.

So I started by writing out what I actually needed:

That list became my brief. And I started talking to AI about it.

Chad's Challenge — full app view showing the Today dashboard, metrics, and workout planning interface
Chad's Challenge running on the web — readiness score, daily metrics, workout planning, and AI coaching, all in one dark, purpose-built interface.

Layer 1: The Foundation (And The Humbling)

The first version was rough. I mean rough in the way that a kindergarten painting is rough — you can tell something's there, you're just not sure what.

But it worked. There was a screen. There were tabs. Data was saving. The AI had written a React app with TypeScript and Tailwind CSS — a proper modern stack — and I had contributed exactly zero lines of code myself.

What I did contribute was every single decision:

This is the job. You're the creative director. The AI is the fastest junior developer you've ever had. Your value is taste, judgment, and knowing when something's off.

Layer 2: The Stack (Free Tier Is Real)

One thing I want to be really clear about: you don't need to spend money to get started.

ToolWhat It Does
React + Vite FREE The app framework. Runs locally on your machine during development.
Tailwind CSS FREE The visual styling system. Makes dark mode and clean layouts fast.
Firebase FREE TIER Cloud database + Google auth. Generous free tier. Canadian data regions available.
GitHub FREE Version control. Where your code lives between sessions.
Netlify FREE TIER Hosting + auto-deploy. Push to GitHub, app updates automatically.
Gemini AI FREE TIER Powers the Coach feature inside the app. Free tier available.

The pipeline once it's set up? Chef's kiss. I make a change, write a two-line note in GitHub Desktop, hit push, and Netlify deploys it automatically. I don't touch a terminal. I don't run build commands. It just happens.

Layer 3: The Details That Made It Real

Once the foundation was solid, I started pushing into territory that felt genuinely new.

The AI Coach. This isn't a chatbot bolted on. It knows my training protocol, my current phase, what day it is, and what I told it about my morning. I can say "I slept 5 hours, my shoulder is tight, and I have 45 minutes" and it will plan my day around that. That's not a template. That's coaching.

The Coach screen: describe your day — sleep, stress, available time — and get a real plan back. Not a generic recommendation. An actual response to your actual situation.

The exercise images. Rather than linking YouTube videos (which eat data, break, and feel like leaving the app), I wanted simple start-and-finish illustrations for every exercise. So I used AI image generation with prompts like this:

"Two-panel fitness reference image, dark studio background, black outfit athlete. Left panel: starting position of [exercise name], label START. Right panel: ending position, label END. Clean, photorealistic, professional training reference."

I generated about 45 images across my full exercise library. Each one took seconds. Because I controlled the prompt, every image has the same aesthetic — dark background, same athlete, same style. It looks like it was designed, not assembled.

The swim builder. I swim 2000m three times a week. The app generates structured pool sessions — warmup, main set, pull work, kick finish — based on distance and goal. Intervals, technique focus, recovery, endurance. It even times the rest periods. Nobody else was going to build that for me.

What's Running in Chad's Challenge
Readiness Score Upper / Lower / Sculpt / Full Body Plans 45+ Exercise Demos Swim Builder AI Coach Firestore Strength Logging Rest Timer Plan Protection GitHub → Netlify Auto-Deploy Canadian Data Regions

Layer 4: When It Breaks (And It Will)

Let me be honest about this part because every blog post about vibe coding glosses over it.

Things will break. Icons won't import correctly. A button will overwrite your whole week's plan without asking. The image framing will cut off the athlete's head. A rest timer will sit there doing absolutely nothing.

And here's the thing about those moments: they're all fixable. Every single one. Because you can describe what's wrong to your AI collaborator, it can see the code, and you can iterate.

The muscle tags on my exercises were wrong for weeks — "Leg Press" was labelled as a Chest exercise. Why? Because the code was checking for the word "press" before it checked for "leg press." A specific-before-generic ordering fix. Once I described the bug, it was fixed in minutes.

The rest timer now counts down. Turns amber. Goes green in the last 10 seconds. Tapping it again cancels. That whole feature? One conversation.

The iteration is the process. Don't expect version one to be the thing. Expect version one to be the foundation you build on.

Layer 5: The Mindset Shift

Here's what I think nobody talks about enough.

Vibe coding in 2026 isn't about replacing developers. It's about collapsing the distance between an idea and a working thing. That distance used to require months of learning, thousands of dollars of development, or both. Now it requires a clear description and some back-and-forth.

For educators especially, this matters enormously. We spend our careers translating complex ideas into language that lands. That's exactly the skill that makes vibe coding work. Precision in communication is the new syntax.

What you build doesn't have to be for everyone. It can be for you. Your workflow, your quirks, your swim practice and your neck situation.

The best software you'll ever use might be the stuff you build yourself, exactly the way you want it. And the best part? When you want to change it, you just ask.

What's Actually Running Right Now

As of June 2026, Chad's Challenge is live, deployed, and on my phone as a web app bookmark. It has:

Is it perfect? No. Does it do exactly what I need? Completely. Would it exist without vibe coding? Not a chance.

Your Turn

If you've read this far, here's what I want you to take away:

1

You don't need to be a developer. You need to know what you want, be able to describe it clearly, and be willing to stay in the conversation when things don't work on the first try.

2

Start small. Pick one problem in your life that no app solves quite right. Write down in plain language what the solution would look like. Then start talking to an AI about building it.

3

The free tiers are real. React, Firebase, GitHub, Netlify — you can build something that actually works and runs in the cloud for essentially nothing in the early stages.

4

The gap has never been smaller. Between "I had this idea" and "it's running on my phone" — that distance is now one conversation deep.

The only question is whether you're going to keep paying $29.99 a month for someone else's idea of what you need — or build your own.

I know which one I picked.

Want to see what's possible?

Chad's Challenge is a personal app — it's not public. But if you're curious about the build, the decisions behind it, or how vibe coding could work for something you're trying to solve, reach out. I like these conversations. chad.aigroove@gmail.com →

Chad Wadden

Chad Wadden

AI educator, reluctant app developer, and protocol-driven athlete. Chad's Challenge is his personal fitness app, built entirely through vibe coding sessions with AI. He swims, lifts, and occasionally gets his rest timer to work on the first try.

Get it in your inbox

Free, biweekly, unsubscribe any time.