An experiment in AI prototyping - coaxing AI assistants to create a full-stack application
My attempts to build a full-stack application using different AI code generation tools
Estimated reading time: 6 minutes
As I find myself spending more and more time experimenting with different AI tools, I decided to run an experiment to see how easy it would be to create a fully functional application using code generation tools powered by NLP. The plan was simple: build a to-do application with tools I had been hearing about recently—Bolt.new, Replit Agent, v0, Lovable.dev, and Cursor—and evaluate their performance.
Before diving into my process and observations, let me quickly explain why I chose them.
Cloud Developer Environments
As someone with a novice level of coding experience, doing anything more than configuring a tool, structuring a project, and writing basic code overwhelmed me. That’s why I gravitated toward cloud-based IDEs for this experiment—they remove much of that hassle.
Here’s why I picked these specific tools:
Bolt.new: I had previously used Bolt to create a website and was impressed with the experience, so it felt natural to include it in this test.
Replit Agent: As someone in the dev tools space, you can’t go far without hearing about Replit and Vercel. Replit’s reputation made it an obvious choice.
v0 by Vercel: A well-known tool in the space, v0 promised seamless application generation and integration.
Lovable.dev: This tool had been appearing frequently in my searches, so I decided to try it.
Local Developer Assistant
To challenge myself further, I included a local IDE in the mix: Cursor. I’d heard great things about it, and its frequent mentions alongside the other tools piqued my curiosity.
The Experiment: Building a To-Do Application
The application had the following features:
User Authentication: A login and sign-up page.
Task Management: Users could add, delete, and mark tasks as complete (strikethrough for completed tasks).
Due Date Reminder: An optional "due by" date reminds users to complete tasks.
SQL Database: A SQL database to persist data entries and, more obviously, to make this a full-stack application.
I used the same prompt across all tools to test consistency:
Prompt:
I want to create a to-do application with the following features:
A user login and sign-up page.
Task creation: A user should be able to add and delete tasks. When a task is completed, the user can click on it and it gets struck through.
An optional “Due by” date which sends the user a reminder to complete the task.
Observations on Each Tool
Each tool responded differently, and none of them were perfect. Each tool had to be used with ChatGPT and/or Perplexity to debug errors. All tools required some prompting/coaxing and fact-checking to move things along. So armed with the AI agent, a more standard AI Chat Assistant, and a healthy dose of common sense, here is what I found:
1. Replit Agent: Chef’s Kiss
Replit was an absolute dream to work with. Everything just worked. It was incredibly easy to create, debug, and deploy the application. What surprised me most was how much better the Replit AI agent was compared to when I tried it several months ago. Back then, I had to rely heavily on ChatGPT to generate the correct code. This time around, Replit felt polished, intuitive, and powerful. It handled several actions automatically for me and, more importantly, deployed the application seamlessly.
2. Cursor: A Pleasant Surprise
Cursor completely surprised me. I tried it on a whim, thinking I’d struggle with a local IDE, but it was a standout. While it imported settings from VSCode and required me to resolve some package installation issues, the overall experience was delightful. As a novice coder, I was stunned by how well the AI agent worked, easily handling error detection, code generation, and debugging. Cursor quickly became my second favorite tool in this experiment.
3. Bolt.new: Great Prototyping, Painful Deployment
Bolt is a tool of extremes. It excels at generating beautiful user interfaces and has powerful agentic flows for application creation. However, the deployment process—especially with Netlify—was a real PITA. Issues with DNS setup, caching, and general deployment stability made it a no-go for production use. While Bolt is great for rapid prototyping, its deployment headaches overshadowed its strengths.
4. v0 by Vercel: Dependable but Unremarkable
v0 did precisely what it was supposed to do. It worked reliably, but there was nothing groundbreaking about the experience. The AI agent frequently hallucinated configurations for other vendor tools, mixed up settings, and replaced chat history without prompting. While it wasn’t frustrating to use, it also didn’t leave a lasting impression.
5. Lovable.dev: Frustratingly Flaky
Lovable.dev was the most frustrating tool I used. Despite positioning itself as a full-stack application builder, it quickly admitted it could only generate frontends and offered basic backend support. I ended up creating a backend in VSCode with help from ChatGPT. Unlike the other tools, Lovable struggled with schema mismatches and code inconsistencies, often failing to catch them. Frequent crashes and debugging issues made the experience unnecessarily painful. While I eventually deployed a functional application, it took far more effort than it should have.
Reflections: Unlocking New Possibilities
As someone who once dreamt of building applications but didn’t know how to, these tools have opened a new world of possibilities for me. The ability to create fully functional applications in minutes or hours is empowering. However, this experiment also reinforced a few key thoughts:
AI Tools are built by humans. They are only as limited as what a human can do. But that doesn’t mean they can’t surprise us in ways that we don’t expect.
AI Augments, It Doesn’t Replace: If you’re building a large-scale application, an AI agent isn’t the solution. While these tools can augment our work, they can’t replace the collaboration, expertise, and costs of a dedicated team.
AI in Product Management: The ongoing debate about AI replacing jobs doesn’t worry me. Instead, I see these tools as enhancing what product managers can achieve. They enable faster prototyping, more creative control, and a deeper understanding of a product's technical aspects. I see roles converging in the future, with PMs leveraging AI to take on new challenges while still relying on human ingenuity.
Final Thoughts
This experiment left me feeling inspired and excited about the future of AI tools. While none of these tools are perfect, they each bring something valuable to the table. For anyone looking to dip their toes into application building, I’d recommend starting with Replit Agent. If you’re focused on rapid prototyping, Bolt.new is worth a try—just prepare for deployment headaches. If you are feeling bold, give Cursor a try.
As for me, I’m off to replace all the apps and websites I use with homegrown versions of the same applications, each with a footer signature “Made by Aparna.” The possibilities feel limitless, and I can’t wait to see what’s next for AI-powered development tools.
Wow, Aparna, this is such a fascinating breakdown! I love how you’ve shared both the strengths and weaknesses of each tool—it really shows the nuances of working with these new AI-powered platforms. Replit Agent sounds like it really stepped up its game since you last tried it! Excited to see what’s next in your journey with AI tools!