| | |

I Tried to Build an App With AI. Here’s What Actually Happened.

When I first heard the term “vibe coding,” I’ll be honest, I thought it sounded a little weird. I didn’t really know what it meant for a while. I hadn’t realized I’d been doing it at work when I used Copilot to write JavaScript code for my Airtable automations or helping me enhance my Github pages website.

I found out how advanced AI applications have gotten after user testing an internal tool at my company. I was amazed how I could provide a prompt and it could seemingly build my idea. The concept intrigued me: building an app by describing what you want rather than writing traditional code, letting AI handle the technical heavy lifting. If they can build something this functional at my company, there must be tools out already there for this.

So I decided investigate tools already out there and try building my own wellness app using AI.

Spoiler: It didn’t go how I expected.

The App Concept: Your Wellness Mirror

I wanted to create something that would help people get a fuller picture of their wellness. Not just how they see themselves, but how the people who know them best see them too.

The concept was straightforward: users would rate themselves across the 8 pillars of wellness—Physical, Emotional, Social, Intellectual, Spiritual, Occupational, Financial, and Environmental. Then they could invite friends and family to rate them on those same dimensions. The app would show the gaps: where you’re harder on yourself than others see you, where you might have blind spots, and where everyone agrees.

I explained the idea to ChatGPT, had it help me think through the functionality I wanted in the app, had it ask me questions to make sure it understood my vision, and finally craft a prompt to use in the different app building tools.

ChatGPT came up with the name “wellness mirror” because the apps reflects back not just your own perspective, but how you show up in the world according to the people around you.

Tool Shopping: Finding the Right Platform

Before settling on a tool, I tried several options to see what would actually work for someone like me—comfortable with tech but definitely not a developer.

Bubble was my first stop. It looked powerful, but I quickly realized the AI features were pretty minimal. Most of the building still fell on me—dragging, dropping, setting up logic manually. It felt like learning a whole new platform, which was more work than I wanted to take on.

Loveable caught my attention next, but it had a dealbreaker: everything you built on the free tier was public. I wasn’t ready to share my messy experiments with the entire internet.

Figma Make seemed promising since I love visual design tools, but at the time you couldn’t edit designs after they were generated. If you didn’t like what came out, tough luck. That killed the whole iterative process I needed.

Then I tried v0 by Vercel, and it just clicked. The chat interface felt familiar—like talking to ChatGPT—but it also gave me a live design I could directly tweak. That combination of conversation plus hands-on editing felt right for the way I wanted to work.

The Honeymoon Phase: When AI Feels Like Magic

The first time v0 generated my app, I was genuinely shocked. It looked polished. Professional. Like something you’d actually see in an app store. I remember thinking I’d have the whole app done in an afternoon.

That feeling lasted about five minutes.

When I started clicking around, I realized the truth: the app looked finished, but I needed to make a lot of changes because things didn’t actually work the way I intended.

I found buttons that didn’t connect to anything. Data wasn’t being saved correctly. A lot of the functionality didn’t work correctly. It was a lot of front-end theater with no backstage.

That was my first reality check: AI is really good at making things look done before they actually are done.

The Database Disaster: My Biggest Mistake

Here’s where things went really wrong: I didn’t properly connect the database from the beginning.

I didn’t even realize how foundational this was at first. I just kept prompting v0 to “make the results page work” or “fix the ratings,” but nothing was saving. Hours turned into days. I burned through v0 credits, spinning in circles, refreshing, retrying, with no clue what the actual problem was.

The most frustrating part wasn’t just that it was broken—it was that I couldn’t identify why it was broken. I had to rely entirely on the AI to maybe, hopefully, figure it out for me.

Learning to Debug With AI (Using AI to Talk to AI)

After wasting too many credits and getting nowhere, I had a breakthrough: I started using ChatGPT to help me debug my v0 prompts.

Instead of throwing half-baked requests at v0, I’d explain my problems to ChatGPT first. I’d describe what I wanted the results page to do and what was happening instead. ChatGPT would help me rewrite the prompt more clearly, with better structure and context.

I was basically using one AI to help me communicate better with another AI. And weirdly, it worked.

I also started paying attention to something I’d been skipping over before: the AI’s reasoning. Both v0 and ChatGPT would sometimes show the steps they were planning to take. Once I started reading that, I could catch problems early—spotting when the AI misunderstood my prompt or seemed to be going off the rails.

Reading the reasoning also helped me explain issues better to ChatGPT. Instead of just saying “it doesn’t work,” I could say “here’s what v0 tried to do, but here’s why that seems wrong.”

At one point, I even tried using Claude instead of ChatGPT for debugging. Claude approached problems slightly differently—sometimes more methodically, sometimes catching things ChatGPT missed. Having multiple AI tools to bounce between gave me different perspectives on the same problem.

Unexpected Developer Skills I Picked Up

Even though I set out to avoid “real coding,” this project pulled me into it anyway.

I learned the basics of GitHub just to manage different versions of my app. I had to figure out branches, merging, and whether it was safe to switch versions in v0 or if I needed to do it manually. That was nerve-wracking at first.

I learned to write SQL queries in Supabase—often starting with harmless SELECT statements just to confirm data was actually there before running anything that could break things.

I hit deployment blockers I never expected, like missing exports in files or needing to properly set up SendGrid for email functionality. Suddenly I was thinking about whether my sender email address was legally compliant and how to structure email templates.

None of this was “traditional coding,” but it required me to think like a developer: breaking down problems, testing assumptions, and understanding how different pieces connect.

The Emotional Rollercoaster

The whole process was an emotional ride I didn’t anticipate.

The highs were incredible: watching a polished interface appear from a simple description, seeing my first successful quiz run, finally getting data to flow properly between tables, realizing I could actually build something real.

The lows were crushing: burning through credits without progress, hitting blank results pages, not knowing if the problem was me, the tool, or the database, and the endless cycle of trying the same fixes over and over hoping for different results.

The hardest part was the confidence trap. Both v0 and ChatGPT would sound so certain that they’d fixed something. They’d use phrases like “This should work now” or “The issue is resolved.” It created this illusion that progress was being made when really, nothing had changed. That false confidence made it hard to know when to try something completely different.

I kept hearing this analogy that AI can take you 90% of the way, but the last 10% is where humans need to step in. I really felt that. My very first generated app looked amazing. But I spent weeks—version 189 of my app—trying to get that last bit working properly. At one point I realized my older, simpler version was more stable than all my “improvements.”

Was It Worth It?

I’ve probably spent around $200 on v0 credits and premium plans. I’ve invested over a month of iteration and experimentation. And I still don’t have a perfectly polished, fully functional app ready for the App Store.

But here’s the thing: I have something real. Messy and half-working in places, but real. And I built it without years of development training—just persistence, better prompts, and a willingness to sit with frustration until the next small breakthrough.

I learned how to think like a developer without becoming one. I learned that the way you frame a problem matters more than any single tool. I learned that experimentation beats perfectionism every time.

Would I spend that $200 on anything else? Probably not. I would have spent way more on classes or hiring a developer. This was my tuition for a crash course in building with AI.

What I’d Do Differently

If I started over tomorrow, here’s what I’d change:

Set up the database properly from day one. Connect all the environmental variables, make sure table structures are consistent, and test that data flows before building anything on top of it.

Start with a simpler version. Don’t try to build every feature at once. Get one piece working completely before adding the next.

Expect to waste credits. Budget for experimentation. The credits aren’t wasted if you’re learning—they’re the cost of education.

Use multiple AI tools. Don’t rely on just one. ChatGPT, Claude, and v0 all have different strengths. Bouncing between them gives you different angles on the same problem.

Read the reasoning. Don’t skip over the AI’s explanation of what it’s trying to do. That’s where you learn to spot wrong assumptions.

Accept that it won’t be fast. Vibe coding isn’t a shortcut. It’s a different kind of work that requires patience and iteration.

Final thoughts

Vibe coding tools like v0 are genuinely impressive. They can get you further faster than traditional learning paths, especially if you’re not interested in becoming a full-time developer. But they’re not magic wands.

You’ll still hit walls. You’ll still need to learn technical concepts. You’ll still spend time debugging, testing, and rebuilding. The difference is that instead of starting from zero, you start from 70%—and that 70% head start matters a lot.

The real skill isn’t in the prompting or the tools. It’s in learning to experiment, to sit with not knowing, and to translate between what you want and what the AI can actually build.

I built an app I could never have created on my own. It’s not perfect, but it’s mine. And honestly? That feels like the bigger accomplishment—not having a polished product, but proving to myself that I could figure this out, one broken feature at a time.

If you’re thinking about trying vibe coding yourself, go for it. Just know that the “magic” everyone talks about is really just a different kind of hard work. One that requires patience, persistence, and a willingness to learn through experimentation rather than instruction.

And maybe budget a little extra for those AI credits. You’ll need them.

Want to try out my app?

Similar Posts