Lovable, Bolt, v0, Replit Agent, Emergent: we built the same app in all 5. Here's what shipped.
Same prompt, same 90 minutes, same evaluation criteria. Five tools, five very different finished products. The interesting part isn't the winner — it's where each one breaks.
Same brief: a small habit-tracking SaaS with auth, a database, push notifications and CSV export. Same time budget: 90 minutes. We ran it on Lovable, Bolt, v0, Replit Agent and Emergent. Two of the five reached "deployable." Three reached "demoable." The differentiator wasn't model quality — it was how each tool handled the boring parts.
The brief (verbatim)
Build a small habit-tracking SaaS. Users sign up with email, create up to 10 habits, mark them done daily, see a calendar streak view. Email reminder at 8 PM if a habit is unmarked. CSV export of all data. Custom domain ready. Mobile-friendly.
The scoring rubric
Each finished build got scored 1-5 on:
- UI quality — does it look like a real product
- Auth — does it actually work end-to-end
- Persistence — does data survive the session
- Deploy — is the URL real, on a real runtime, on the user's account
- Email reminder — did the cron + email actually send
- Code ownership — is there a repo I can clone elsewhere
Round 1 — Lovable
UI quality: 5/5. Easily the most polished output. Streak calendar, micro-animations, tasteful typography.
Auth: 4/5. Worked end-to-end via Supabase. Required clicking through a Supabase setup wizard.
Persistence: 4/5. Supabase tables, all good.
Deploy: 3/5. Preview URL on Lovable's domain. To get a custom domain I had to upgrade and connect Vercel separately.
Email reminder: 1/5. Lovable doesn't do scheduled jobs. I'd need to wire up a separate vendor.
Code ownership: 3/5. Export to GitHub worked, but the project assumed Lovable's preview env. Required tweaking to run elsewhere.
Round 2 — Bolt.new
UI quality: 4/5. Less polished than Lovable but functional. The calendar was a flat list, not a heatmap.
Auth: 3/5. Scaffolded auth pages but didn't wire a backend by default. I had to ask twice.
Persistence: 2/5. Local IndexedDB out of the box. To get real persistence I had to add Supabase manually.
Deploy: 2/5. Bolt produces source you deploy yourself. There's a one-click Netlify, but at 90 minutes I didn't have a custom domain wired.
Email reminder: 0/5. Did not happen.
Code ownership: 5/5. Bolt's strength — you get a clean repo immediately, runnable locally.
Round 3 — v0
UI quality: 5/5. Best raw component output of any tool tested. Genuinely beautiful.
Auth: 2/5. Scaffolded auth UI but no backend logic. v0 is fundamentally a UI generator.
Persistence: 1/5. No backend by default.
Deploy: 3/5. Vercel preview, simple to wire to a custom domain via Vercel.
Email reminder: 0/5. Out of scope for v0.
Code ownership: 4/5. Standard Next.js export.
v0 won on UI but lost on everything that comes after the UI. Which is, on reflection, by design. v0 is a UI tool that's been stretched into a "build my app" frame.
Round 4 — Replit Agent
UI quality: 3/5. Functional but plain.
Auth: 4/5. Worked, no extra wizard.
Persistence: 4/5. Replit DB or Postgres available.
Deploy: 4/5. Replit hosts it. URL ready immediately. Custom domain on paid tier.
Email reminder: 3/5. Replit cron worked. The email itself required a third-party service (Resend) to actually deliver.
Code ownership: 3/5. Replit-specific dependencies. Portable, but with friction.
Round 5 — Emergent
UI quality: 3/5. Solid, generic SaaS look.
Auth: 4/5. Worked.
Persistence: 4/5. Generic SQL backend.
Deploy: 3/5. Multi-platform — could deploy to several runtimes. The "where it actually lives" question was less clear than competitors.
Email reminder: 3/5. Generated cron job code; required wiring a transactional email vendor.
Code ownership: 4/5. Standard outputs.
The composite scores
| Tool | UI | Auth | Persist | Deploy | Own | Total /30 | |
|---|---|---|---|---|---|---|---|
| Lovable | 5 | 4 | 4 | 3 | 1 | 3 | 20 |
| Bolt.new | 4 | 3 | 2 | 2 | 0 | 5 | 16 |
| v0 | 5 | 2 | 1 | 3 | 0 | 4 | 15 |
| Replit Agent | 3 | 4 | 4 | 4 | 3 | 3 | 21 |
| Emergent | 3 | 4 | 4 | 3 | 3 | 4 | 21 |
What the scores miss
Composite scores hide the actual question, which is: could a real user use this app a week from now? By that test:
- Lovable: yes for the demo, no for the email reminder, requires four vendors at the end
- Bolt: not without manual deploy work — but the repo is healthy
- v0: no, because there's no backend
- Replit Agent: yes, if you stay on Replit forever
- Emergent: yes, with manual email wiring
None of them, in 90 minutes, deployed to my infrastructure with a custom domain and a working scheduled email. That's what got us to build buildr.
Five tools, ~$140 of subscriptions tested, and not one of them sent a single email reminder in 90 minutes. A reminder! Of one row! In a database!
What buildr did with the same prompt
For comparison: buildr, same brief, same 90 minutes, on a Cloudflare account I already had:
- UI: 4/5 — clean, not as opinionated-pretty as Lovable
- Auth: 5/5 — wired to a Workers backend
- Persistence: 5/5 — D1 native
- Deploy: 5/5 — custom domain, my Cloudflare, real URL
- Email: 5/5 — Cron Trigger + email worker, actually sent
- Ownership: 5/5 — repo on GitHub, runnable on a fresh laptop
I'm aware this is the buildr blog and we're going to score buildr well. The sample of one is not science. But the email reminder thing is real and reproducible — try it.
The "build my app" tools are good at building. The "ship my app" tools are still rare.
Lovable is your best demo. v0 is your best UI. Replit Agent and Emergent are your most-deployable mid-pack. None of them, today, do the full chain from prompt to a customer-usable product on your own runtime in 90 minutes. That's the gap we built into.
Run the same brief on us.
"Build a habit-tracking SaaS with email reminders" — see what buildr ships in 90 minutes. Free for open source.
Build my app free