To all the non-technical founders out there spinning their wheels, drowning in tutorial hell, this article is for you.
The journey of a thousand miles begins with a single line of code—or, in this case, a single prompt to an AI that mostly knows what it’s doing.
This is the story of how I built Vice Kink1. How I struggled for 8 months with coding the traditional way. And how I abandoned that tech stack, took on Vibe Coding, and completed the MVP in 6 weeks. This is the story of that journey.
If you’re wondering how I got here, it’s a tale of lost-and-found love.
I graduated as a computer engineer, but my relationship with coding was complicated at best. When COVID hit and I lost my job, it was the universe’s way of showing me a much-needed exit. I fled from development like a prisoner escaping Java jail, pivoting to writing and marketing, which called to my soul in ways that debugging never could.
For years, I lived happily in my code-free bubble. That was until 2024, when I decided to create a social media and dating platform. The irony wasn’t lost on me: the computer engineer who ran away from development was now desperately trying to build an app. I turned to FlutterFlow, a no-code platform that promised to be my bridge back to creation without the syntax nightmares. Spoiler alert: it was a catastrophic failure.
FlutterFlow is marketed as the no-code holy grail tool for app development. It had everything I thought I needed: a sleek UI, drag-and-drop components, a startup backed by YC, a whole community swearing that even a five-year-old could build an app with it, and so on.
So, I went in headfirst. Tutorials? Devoured them. Demos? Sat through every single one. Educational material? I probably read more on FlutterFlow than I did in my final year of engineering.
For six months, I felt like I was trapped in a digital purgatory, the likes of which would make Dante rethink his circles of hell. My days began with optimism and ended with me staring blankly at error messages that might as well have been written in hieroglyphics. I consumed all educational materials with the desperation of a castaway drinking seawater. And yet, my app remained a distant mirage, shimmering on a horizon I couldn’t reach.
I became intimately familiar with the unique brand of madness that comes from spending days debugging random errors that seemed to materialize out of thin air. Errors that weren’t there yesterday but somehow decided to crash my party today. And this was pretty much my daily routine.
“Maybe it’s just a learning curve,” I’d tell myself as I watched tutorial number 147 on how to configure an API implementation. “Maybe I’m just not seeing something obvious.” But deep down, I knew the truth: FlutterFlow and I were in a toxic relationship, and I was the one making excuses.
I contemplated buying the Pro version, fingers hovering over the payment button. Maybe, just maybe, that would be my golden ticket. That extra functionality would surely solve all my problems, right?
But deep down, I knew it was just throwing money at a problem that ran deeper than my wallet could reach. It was like buying a first-class ticket on the Titanic—you might get better snacks, but you’re still going down.
By March 2025—what was supposed to be my glorious launch date—I had nothing but a collection of half-implemented features and a profound understanding of what true frustration feels like. Six months of my life, gone. Six months that I could have spent writing, creating content that actually worked, or honestly, doing literally anything else.
And instead of launching, I was staring at my screen, contemplating whether I should just scrap the whole thing and become a monk.
It was during a random conversation with my cousin—a software engineer at Meta, no less—that I first heard about this wild concept called “Vibe Coding.” The name itself sounded like something you’d hear at a Silicon Valley party after everyone had one too many kombucha shots.
“It’s like coding, but you just… vibe with it.”
Initially, I was skeptical.
Scratch that. I was downright dismissive.
As a writer who’d battled AI writing tools that produced content ranging from Shakespearean sonnets to absolute garbage depending on the AI’s hallucinations, I didn’t have high hopes for AI-assisted coding. After all, if ChatGPT struggled to maintain a consistent tone in a blog post, how could it possibly build a functional app?
“It’s just another tech buzzword,” I thought. “Another Silicon Valley pipe dream designed to separate desperate founders from their money.”
But then, something changed. I stumbled across an article about this year’s Y Combinator startups using AI for 95% of their stack development2. 95%.
And these weren’t hobbyists or dreamers. These were serious founders building serious products. And they were letting AI handle almost all of their coding.
What if—and this was a big what if—there was actually something to this whole Vibe Coding thing? What if the future of development wasn’t about knowing every syntax rule and framework peculiarity, but about effectively communicating your vision to an AI partner?
The computer engineer in me, the one I’d buried under years of marketing copy and content strategies, stirred from his slumber. Maybe, just maybe, this was the way back to creation that didn’t involve the soul-crushing experience I’d just endured.
And so, I dove deep into research mode on a hunt that I can only describe as a battle royale of vibe coding tools. This wasn’t going to be another six-month detour into frustration. This time, I was going to make an informed choice.
Bolt, Lovable, Cursor, Replit, and Windsurf—I explored them all with the thoroughness of a detective at a crime scene. Each platform was like a potential soulmate on a dating app, promising to be “the one” that would transform my app dream into reality. And like dating apps, the profile pictures looked a lot better than the actual experience.
Cursor seemed powerful but required more technical knowledge than I was comfortable with. As a lapsed developer, I found them just enough to be dangerous—primarily to myself. Windsurf faced similar issues—great for actual engineers, less great for someone like me who broke out in hives at the mention of debugging a full-stack application.
Replit seemed promising initially. For a day or two, it was my knight in shining armor. The interface was clean, the AI was responsive, and for the first time in months, I felt like I was making actual progress. I was giddy with possibility, staying up late to work on my app, feeling that long-forgotten rush of seeing something I created come to life.
But then came the Supabase connection—and with it, a tsunami of errors that made my FlutterFlow days look like a minor inconvenience, especially with the credits depleting with every repeated query.
If you don’t know what Supabase is, here’s a quick analogy: Think of building an app like building a house. The backend acts like the foundation, the land your house stands on. If your land is shaky, your house collapses. Supabase is my preferred stable foundation (over Firebase) for handling user data, authentication, storage, and everything else that keeps an app running smoothly behind the scenes.
The moment I tried integrating Supabase with Replit, error messages cascaded down my screen like a digital waterfall of disappointment. Each fix seemed to spawn three new problems, a hydra of code complications that grew more fearsome with every attempt to tame it.
$10 and countless frustrated hours later, I was back to square one, wondering if perhaps I wasn’t meant to create this app after all. I closed my laptop, walked away, and seriously considered giving up entirely. If I wanted Supabase to work smoothly, I needed an AI tool that natively connected to it.
After a day of licking my wounds and contemplating a future where I’d never mention app development again, I decided to give it one last shot. I had two options left on my list: Bolt.new and Lovable.dev.
With the enthusiasm of someone who’s already prepared for disappointment, I created accounts on both platforms.
The first sign that something was different came when I attempted to connect to Supabase. I held my breath, fingers hovering anxiously over the keyboard, ready for the inevitable error message. But instead of failure, I got… success?
Wait, that couldn’t be right. I tried again, certain that I must have missed something. But no—the connection worked. Smoothly. Effortlessly. Like it was supposed to all along.
Still skeptical, I moved on to creating tables in Supabase through the platform. Again, no errors. No cryptic messages. No digital middle fingers. Just a clean, successful operation that used fewer credits than I expected. It was like finding an honest mechanic—so unexpected that I didn’t quite know how to process it.
But the real magic happened when I started working on the UI. With Bolt, I had managed to create a basic framework of what I wanted, but it felt like pulling teeth to get any customization done.
With Lovable, it was different. I described what I wanted—not in technical terms, but in plain language, the way I’d describe it to an intern—and watched in awe as it actually understood. Not just the letter of my request, but the spirit of it.
“Make the header more sleek, with a subtle gradient that feels modern but not overwhelming.”
In any other context, this vague request would have been met with confusion or a generic response. But Lovable got it. Actually got it. To an extent. The UI started to take shape not just according to my specifications, but according to my vibe.
That initial euphoria didn’t last long, though. There’s a whole plethora of difficulties that I’ve stumbled upon since then.
There were countless times that I struggled to make things work. There were many occasions that I had to fight with Lovable to make a feature work, and when that feature worked, something else in the app crashed. I still haven’t been able to configure the navbar properly because Lovable doesn’t seem to be able to create different navbars for mobile and desktop.
There are still a whole bunch of features that I have decided to put on hold until the next update. Monetization is still a struggle for me. In fact, I don’t think I see it being monetized until the next update.
And the bloody cherry bomb on top? Lovable can’t make mobile apps.
I got to know about this after I was done with 6 weeks of struggle making the web app. And to make matters worse, none of the other platforms can make a mobile app either.
All the YouTube posts glorifying app development with Expo fail to inform you that Expo is only good for a basic, BASIC app. Like if you’re making a calculator. Or an app to take notes and arrange them, Expo is good. But as soon as you try to make a complex app, Expo crashes on every step, and the development is dreadful.
Coming to the big question… Can you build a full-stack app using Lovable?
Short answer: maybe. Not smoothly, though. Especially not if you’re making something complex.
Long answer: not unless you’re a backend wizard who knows the ins and outs of Supabase like the back of your hand and has the patience of a Buddhist monk to deal with Lovable. And then also knows how to use Capacitor to build the mobile apps (because Lovable can’t build mobile apps). In fact, none of the vibe coding tools can.
That said, I did manage to build my MVP in just six weeks—something that would’ve taken me 8-12 months otherwise.
Was it smooth sailing? Hell no.
Did I fight Lovable in a series of battle royales? Absolutely.
Is it possible to build something functional? Yes. But only if you know how to navigate AI development properly.
But compared to the other tools out there, Lovable is the best for 3 main reasons, in my opinion:
It uses a message system where others use credits. Since I am given 100 messages in Lovable’s pro plan, they can be as long or short as I please them to be. On the other hand, Bolt’s 10M credits fell short in less than 20 messages. I tried using Bolt to make the mobile app using Expo. I was consuming ~700k credits per message. That’s outright ludicrous. Lovable is a much better affair instead.
Lovable gives its users 5 free messages every day. Doesn’t matter if you’re a paying customer or a tester. No other platform gives you free messages. The reason why I love this is because there was an instance when I had consumed all my credits, and I had just 1 last feature left to build for the MVP. And instead of having to buy the pro plan again, I managed to wait it out and build the MVP by waiting for 3 more days. It was almost like a dream come true, especially considering that Vice Kink is a completely bootstrapped app. Also, this free feature hits close to home because I am an Indian. We Indians love free things.
My app isn’t just a project anymore. With each passing day on Lovable, despite the struggles, I find myself falling back in love with the creative process of development. Not with the syntax or the debugging or the edge cases—those parts I’m still happily delegating to my AI partner—but with the pure joy of seeing an idea take shape in the real world.
I’ve stopped thinking of myself as “not technical enough.” Instead, I’ve embraced a new identity: a visionary who happens to have an extremely competent technical collaborator. My role isn’t to write perfect code; it’s to provide perfect direction. To communicate clearly, to iterate thoughtfully, to envision boldly.
The workflow has changed completely. Rather than spending hours researching how to implement a particular feature, I spend that time refining my vision of what the feature should be. Rather than debugging errors, I’m fine-tuning experiences. My focus has shifted from the mechanical to the meaningful.
Is it perfect? Absolutely not. As I’ve detailed, there are significant limitations and frequent frustrations. But the ratio of progress to frustration has still improved. Where before I spent 90% of my time frustrated and 10% making progress, now it’s maybe 60-40. And in the startup world, that kind of improvement can make all the difference between giving up and pushing through.
So, how can you use Lovable to make your app a reality without wanting to throw your laptop through a window? Let me save you some pain with the hard-earned wisdom from my digital trenches.
Here’s the thing about AI. It’s simultaneously brilliant and incredibly dense. It doesn’t “understand” you like a human does. If you tell an AI to “get some eggs,” it won’t know whether you want a dozen or just one, chicken eggs or quail eggs or snake eggs, or whether you want it to buy them or steal them from your neighbor’s fridge.
That’s where prompt engineering comes into play. The more specific you are, the better. Take a proper course on prompt engineering. Trust me, it’s worth every minute. There’s an online course by Vanderbilt University that does a good job explaining prompt engineering from fundamental to proficient levels. It’s the closest thing I’ve found to a Rosetta Stone for AI communication.
While Lovable does a decent job with frontend development, it struggles like a hungover university student with backend tasks. When developing Supabase SQL codes and RLS policies, it tried to use nuclear weapons for knife fights—complex solutions for simple problems.
Having a foundation in backend development will save you countless hours of frustration. I lucked out here since my computer engineering background gave me an edge, but there are good courses out there in the market. Find one. Do it. Your future self will thank you profusely.
Lovable lets you upload screenshots to explain issues. Use this feature like your life depends on it—because your sanity definitely does. A picture is worth a thousand words, especially when you’re trying to explain why that button is floating in the middle of nowhere instead of sitting nicely in your navbar. It won’t always get things right, but it’ll save you from rewriting long explanations that make you question your life choices.
AI will break things that were working perfectly fine an hour ago. It’s like having a toddler with coding powers—impressive but terrifying. Instead of wasting precious hours of your life fixing it, just restore an earlier version and try again. If Lovable keeps adding more code instead of fixing things, scrap it and start over.
I’ve learned this lesson the hard way, after spending entire nights trying to fix what AI broke in seconds. I wasted £5 on a single feature before realizing that a better alternative solution needed just 13 lines of code instead of 233. That’s not optimization—it’s digital insanity. Learn to recognize when you’re in a code death spiral and have the courage to start fresh.
Focus on building one feature at a time. Don’t overburden the AI. It will start hallucinating. I asked Lovable to implement three features at once. The AI started referencing functions that didn’t exist and creating bizarre hybrid features that combined elements from all three requests into a digital Frankenstein’s monster.
When you keep your requests focused and singular, the AI stays grounded. When you throw everything at it at once, it tries to please you by pretending it can handle it all. Spoiler alert: it can’t. Just do it one by one.
AI can’t build your dream app in one go any more than you can eat an entire wedding cake in one bite. Start with an MVP. Get the basics working. Then refine it. This approach isn’t just good product development. It’s essential for maintaining your will to live when working with AI tools. Break your vision down into digestible chunks, and celebrate each small victory along the way.
Am I still frustrated with Lovable’s limitations? Absolutely.
Would I do it all over again? In a heartbeat. Not the FlutterFlow part, though. That was just a heap of utter bullshit.
Vibe Coding isn’t the silver bullet that tech evangelists claim it is. It’s not going to magically transform you into a tech wizard overnight. What it will do is democratize the creation process, giving you a fighting chance to bring your vision to life without drowning in syntax errors or selling a kidney to hire developers.
For now, Vibe Coding remains an imperfect but wonderful approach to app development, especially for non-technical founders like me who have ideas burning holes in our brains but lack the technical chops to execute them traditionally.
Is it worth it? If you’ve read this far, you already know my answer. Yes.
But only if you go in with eyes wide open, expectations properly calibrated, and a willingness to fight for your vision when the AI inevitably goes rogue.
As for me, I’ll be continuing my journey with vibe coding, pushing the boundaries of what’s possible with AI-assisted development. The app is growing daily, and while it’s not perfect, it exists, which is more than I could say after six months of traditional development hell.
The journey of a thousand miles begins with a single line of code—or, in this case, a single prompt to an AI that mostly knows what it’s doing.
1 Vice Kink.
2 Y Combinator startups are fastest growing, most profitable in fund history because of AI.

Leave a Comment