Over the past few months, Vibe coding has been gaining serious traction—and I couldn’t resist diving in myself. I’ve been using AI coding assistants for a while, but I wanted to go deeper and really test what these tools can do in a realistic, end-to-end software development project.
So, I spent the last month building a full-featured ecommerce web and mobile app using some of the most talked-about Vibe coding platforms: Cursor, Windsurf, Lovable, Bolt, and Replit. It was a fun and empowering journey—there’s a real sense of accomplishment in being able to build software applications on your own. I also learned that working with the current generation of tools definitely requires a good deal of patience.
In this blog, I’ll walk you through:
- My experience building and deploying the applications
- What worked, what didn’t, and what broke halfway 😅
- How each tool stacks up in terms of usability, flexibility, and reliability
- Whether tools like these mean we still need software engineers (spoiler: yes—but it’s complicated)
- Where I think this whole Vibe coding trend is heading next
🌍 Coding Assistant Landscape: Then vs Now
AI coding assistants have come a long way. Here’s a quick look at how things evolved:
⏰ The Old School
- Classic autocomplete tools like IntelliSense or TabNine helped speed up typing but weren’t context-aware.
- Low-code/no-code platforms (e.g., Bubble, Wix, Zapier) let users drag and drop components, but required scripting for anything complex.
🧠 The New Era: Vibe Coding
- Powered by LLMs (Large Language Models)
- Can write, refactor, debug, and deploy apps using natural language queries
- Opens the door for non-developers to build apps
- Empowers developers to skip boilerplate and focus on design, logic, and systems thinking
💡 What is Vibe Coding?
Vibe coding refers to using AI-powered tools to build software via natural language prompts, mixed with lightweight manual coding. It’s all about staying in the flow and letting the assistant do the heavy lifting.
💡 The Experiment
Although I started my career as a developer, I haven’t been actively coding in the last decade. Instead, I’ve focused on architecture, reviews, testing, and product design. That said, I wanted to push these Vibe tools beyond simple demos or prototypes.
So, I picked a moderately complex use case: an Ecommerce application with a web frontend and mobile app, complete with backend, auth, payment, and roles.
✨ Features Implemented
- User authentication (sign-up, login, password reset, Google login)
- Roles: Admin, Seller, Customer
- Admin: manage users, view orders, seller capabilities
- Seller: add products
- Customer: browse catalog, filter/sort, add to cart, checkout
- Order history
- Payment integration with Razorpay
🚀 Tech Stack Used
Frontend: React
Backend: Node.js + Express
Database: MongoDB
Deployment: Vercel / Render / Netlify depending on tool
🏗️ Environments
- Web app
- Mobile app (via Expo)
- Both local and production deployments
🔧 Tool-by-Tool Breakdown
Each tool was tested with the same requirements and judged based on ease of use, flexibility, ability to debug, and ability to deploy real features.
🧪 Cursor
🛠️ Plan: Paid ($20)
💻 Used With: MongoDB Atlas, Render/Vercel for deployment, Claude 3.7 model
✅ Highlights:
- Full tech stack flexibility
- Supports both web and mobile
- Git & database migration support
- Wrote unit tests and debugged APIs
- Workflow suits developers
⚠️ Challenges:
- Terminal tracking is weak
- Frequent application crashes
- Manual debugging needed
📦 Artifacts:
- Web application (First access needs 30 seconds as free version of vercel needs warm up)
- seller ([email protected] / seller123)
- customer ([email protected] / customer123)
- Mobile app (Needs expo installed to run)
- Code for web application
- Code for mobile application
Windsurf
🛠️ Plan: Free and Paid version
💻 Used With: Claude 3.7 & Gemini, Vercel/Render for cloud, Cloudinary for images
✅ Highlights:
- Better terminal/session management
- Console log debugging is stronger
⚠️ Challenges:
- Hard to course-correct from incorrect assumptions
- Hit credit limits fast (Ran out of credits with paid version in 3 days)
📦 Artifacts:
- Web application (Partial app, first access needs 30 seconds as free version of vercel needs warmup)
- Code for web application
⚡ Bolt
🛠️ Plan: Free
💻 Used With: React + Vite, Supabase, Netlify
✅ Highlights:
- Blazing fast startup because it runs as web container
- Fully in-browser
⚠️ Challenges:
- Can’t run backend services (e.g., Express, MongoDB) because of running as web container
- Not suitable for full-stack use cases
📦 Artifacts:
- Incomplete app prototype (Ran out of free credits)
😍 Lovable
🛠️ Plan: Free and then Paid ($20)
💻 Used With: React + Supabase, auto-deploy on Lovable Cloud
✅ Highlights:
- Very easy to use
- Seamless production deployment
⚠️ Challenges:
- Slower code generation speed
📦 Artifacts:
- Web application
- user([email protected], 123456), seller([email protected], 123456)
- Code
🛠️ Replit
🛠️ Plan: Free
💻 Used With: Ghostwriter AI, browser IDE, MongoDB Atlas
✅ Highlights:
- Easy to set up
- Great for fast testing
⚠️ Challenges:
- Cloud-only with less system-level flexibility
- Not ideal for large production apps
📦 Artifacts:
- Did not complete(ran out of free credits)
📊 Tool Comparison Snapshot
| Feature | Cursor | Windsurf | Replit | Lovable | Bolt |
|---|---|---|---|---|---|
| Ease of Use | Medium | Medium | Easy | Easy | Easy |
| Dev Environment | Local | Local | Cloud | Cloud | Cloud |
| Deployment Options | Manual | Manual | Built-in | Built-in | Manual |
| Tech Stack Flexibility | High | High | Medium | Limited | Limited |
| Target Users | Devs | Devs | All | Non-devs | Non-devs |
🧠 My Take: Cursor gives you the most power; Lovable gives you the most convenience.
❌ What Needs Work
🛠️ Debugging:
Most tools still rely on you reading console logs and piecing things together manually. (My pick: Use Operator framework to understand what’s happening in browser and fix issues automatically)
🐌 Speed:
Long wait times and retries can break the flow.
🧩 Fragility:
Small changes can break other parts of the app. There’s no real “awareness” of architectural dependencies.
📐 Lack of modularity:
Encouraging reusable design and clean code still needs a human architect.
📘 Pro Tips: Making Vibe Coding Work
📋 Define clear requirements
Roles, pages, workflows, error states — lay it all out before prompting.
🧭 Use guardrails (rules/constraints)
Many tools let you enforce language, style, and folder structure.
🎯 Stick to common stacks
React, Node, Python, SQL — that's where LLMs shine.
💡 Use models wisely
Claude 3.7 was the most consistent for me, especially on multi-step flows. Experiment with models and find the best one for your use case.
🧪 Debug like a dev
Logs > terminal > DB traces. Be ready to dive in.
🔄 When stuck, reboot
Sometimes starting fresh saves more time than untangling broken AI logic. Keep regular checkpoints to go back to stable point.
🧠 Is Software Engineering Dead?
Nope. But it’s definitely shifting.
🧠 What Vibe Coding Does Well:
- Speeds up boilerplate
- Empowers solo builders
- Makes prototyping fast
🚧 What It Still Needs Help With:
- Scaling apps
- Clean architectures
- Advanced debugging
- Enhancing existing production apps
🧑💻 Developers won’t disappear. They’ll evolve. The future engineer:
- Uses AI to generate & validate code fast
- Designs smart systems
- Oversees quality, reusability, and security
💬 “It’s not about coding less. It’s about coding smarter.”