Vibe Coding
This tweet by legendary Andrej Karpathy has been creating storms in the world of programming.

AI coding assistants have come a long way, and there’s a reason why legends like Andrej Karpathy are claiming that even non-programmers can build apps just by instructing AI assistants—and when they hit a roadblock, they can simply nudge the AI to fix it.
As an experienced developer myself, I was curious to put this theory to the test. So, I took on the challenge of building Vibe Coding, a mobile e-commerce app using Flutter and Firebase, leveraging the power of Cursor IDE and Claude Sonnet 3.5.
Exploring AI for Flutter Development
When I first started experimenting with generative AI tools like ChatGPT, Gemini, and others, my goal was simple: speed up mobile app development. I began with a straightforward prompt—asking the AI to generate a complete Flutter e-commerce app.
The outcome? Disappointing.
Most tools responded with a barebones Flutter project—just a placeholder app with minimal functionality. This made it abundantly clear: AI isn’t ready to replace developers just yet. It can’t magically build complex apps end-to-end without proper guidance.
The Shift to a Modular, Structured Approach
That’s when the lightbulb went off. I changed my approach and began breaking down the app into smaller, clearly defined modules. Instead of throwing broad prompts at the AI, I gave it specific, focused tasks.
But manually prompting AI for every small module quickly became tedious.
That’s when I discovered AI-integrated IDEs, and Cursor immediately stood out. With Claude Sonnet 3.5 running inside Cursor, I could work in a regular IDE while having a powerful AI co-pilot right there in my editor.
I started with a blank Flutter project and developed it module by module, prompting the AI for features like:
- User login and registration
- Profile management and logout
- Admin panel to add and manage products
- Product listing for users
- Search and filter functionality
- Wishlist feature
- Cart and checkout flow
This targeted approach worked much better—AI was now laser-focused on solving one task at a time, resulting in much more usable code.
Architecture Still Matters: Lessons Learned
While AI did speed things up, I learned an important lesson: you can’t blindly trust AI-generated code. Without review, it often produces redundant logic, lacks error handling, and sometimes even crashes the app.
To ensure code quality, I applied a solid architecture using the Bloc pattern for state management and followed a few critical practices:
- Separate UI and Business Logic: I prompted AI separately for UI and logic components to maintain clean separation.
- Manual Refactoring: After inserting AI-generated code, I refactored and optimized it to fit my app’s architecture.
- Human Validation: Every output was reviewed, tested, and polished before merging it into the final app.
Productivity Boost: 70–80% Faster with AI
By combining AI with a disciplined approach, I saw a 70–80% productivity boost. AI handled the repetitive boilerplate code, so I could focus more on business logic, design, and user experience.
However, let’s be clear: AI is a tool, not a replacement. It amplifies your capabilities, but it needs supervision and thoughtful input to build something production-ready.
The Final Result
In just 2–3 days, I completed the core of a fully functional e-commerce app—Vibe Coding. It’s live on GitHub if you want to explore or build on top of it:
👉 View the project on GitHub
While I aimed to keep the codebase clean, you might still spot some redundancies—thanks to our overenthusiastic AI assistant! Feel free to fork it, improve it, and make it your own.