Skip to content
back to journal

lovable

Lovable Project Stuck? The Decision Tree That Saves Weeks

Lovable project stalled mid-build? Four corners of the rescue-vs-migrate-vs-rebuild matrix, with the actual time-and-money cost of each path. From 100+ projects.

Ralph Duin · 9 min read
XLI
Lovable Project Stuck? The Decision Tree That Saves Weeks

Your Lovable project hit the wall. You opened the editor this morning, the build broke for no obvious reason, or the AI agent loops on the same change, or the app deploys but the new feature doesn't work, or you tried to add the next thing and the whole project regressed. You've spent two days arguing with the agent and you're not closer to shipping than when you started.

This is the most common late-stage Lovable failure mode, and there's a sensible decision tree for what to do next. The wrong move is to keep arguing with the agent — that's how single-day stalls become two-week project deaths. The right move is to stop, diagnose where exactly you are on the maturity curve, and pick one of four actions: debug in place, rescue with a senior, migrate the codebase, or rebuild from scratch.

Here's the decision tree, calibrated by what I've seen across 100+ Lovable projects.

Step 1 — Stop and characterise the stall

Before anything else, write down (in plain English) the answer to these four questions:

  1. What exactly is broken? "The app doesn't work" is not an answer. "Submitting the contact form returns 500" or "the navbar disappears on mobile" or "Supabase auth signs me out after 30 seconds" — those are answers.
  2. When did it start? "After I asked Lovable to add Stripe" is a lead. "Three days ago, gradually" is a different kind of problem.
  3. What's the last change you made? If you can't tell, your project is past the point where AI-only iteration is safe — see Step 3.
  4. How many features is the app away from "done"? One? Five? Twenty? This number is the most important input to the decision tree below.

You don't need diagnostic tooling for this step. You need 15 minutes of writing down the actual problem instead of relitigating it with the agent.

Step 2 — Decide which corner of the matrix you're in

Plot yourself on two axes:

Small remaining scope (≤3 features left to ship)Large remaining scope (5+ features left, or major architecture changes)
Recent regression, code looks salvageableA. Debug in placeB. Rescue with a senior
Chronic spaghetti, codebase looks degradedC. Migrate the survivorsD. Rebuild from scratch

Each corner has a different right action. Don't compromise — pick one.

Corner A — Debug in place

You're here when: the project was mostly working last week, you can name a specific regression, and you only have 1–3 features left to ship anyway.

Action:

  1. Roll back to last-known-good. Lovable bidirectionally syncs to GitHub. Find the GitHub commit from before the regression — git log --oneline | head -30 in the connected repo — and git revert the bad commits. Push. Lovable will sync back.
  2. Don't ask the agent to "fix it." The agent has the same broken context you do. Either describe the smaller delta you actually want (the specific feature that was being added when things broke) or do that change manually in the GitHub repo.
  3. Time-box. Give yourself 4 hours. If you're not back to working in 4 hours, you're in corner B, not corner A.

You're done in corner A when the app is shipping again and you have a clear path to the remaining 1–3 features.

Corner B — Rescue with a senior

You're here when: the project has gotten complex enough that the agent can't reason about it cleanly anymore, but the codebase is still salvageable, and you have meaningful scope left to ship.

Action:

  1. Stop iterating with the agent on architectural changes. The agent is good at adding components inside an existing architecture. It's bad at changing the architecture. The moment you need "refactor how auth works" or "add multi-tenant support" or "restructure the data model", you're past the agent's reliable zone.
  2. Bring in a senior Lovable developer or agency to take ownership of the next 1–2 weeks. They'll do the architectural moves directly in the codebase (via the connected GitHub repo), and you'll go back to iterating with the agent for feature-level changes once the foundation is stable. See How to hire a Lovable developer and Lovable agency vs freelance Lovable expert for which to pick.
  3. Don't try to do the architectural work yourself if you're not a senior frontend engineer. I've watched founders save $5K on the rescue and spend $20K worth of time on it. The hidden cost is the weeks the product isn't shipping.

You're done in corner B when the architectural debt is paid down and the agent can productively work on the codebase again.

Corner C — Migrate the survivors

You're here when: the codebase is degraded (spaghetti components, unclear data flow, weird workarounds the agent added trying to fix earlier breakages), but you're close to "feature complete" — only 1–3 features left, and the existing surfaces mostly work for users.

Action:

  1. Don't rebuild from scratch. Rebuilds at 80% scope-complete are the most expensive mistake teams make. The existing app has hard-won knowledge baked into it: edge cases handled, copy iterated, layouts settled, UX choices made. You'll lose 6 weeks rebuilding the surfaces you already have.
  2. Migrate the codebase to Next.js (or stay in Lovable, but stop adding features in Lovable). The migration is paid back by the next 6 months of stability. See the conversion playbook and the migration service.
  3. Add the remaining 1–3 features in the migrated codebase, by hand or with Cursor/Claude. The cost of those features is now the same as in any production codebase.

You're done in corner C when the migrated codebase is live and the team has stopped touching the Lovable editor.

Corner D — Rebuild from scratch

You're here when: the codebase is degraded and there's substantial scope left (5+ features or a major direction shift). The product is far enough from done that the cost of rebuilding is less than the cost of fighting the existing codebase for every remaining feature.

Action:

  1. Throw away the codebase, keep the learnings. Export everything that's not code: copy, design tokens, user research notes, the list of features you discovered users actually want vs the ones you thought they wanted.
  2. Rebuild in Lovable if the product is still a polished-React-frontend-on-Supabase shape and you want to iterate fast. Or rebuild in Next.js + Supabase + Vercel directly if you've decided you're past the Lovable phase.
  3. Don't pretend "we'll keep some of the old code." You won't. The cost of keeping it is higher than the cost of rewriting it cleanly.

Corner D is the most painful corner, but it's also the one where founders most often resist the right answer. The honest filter: if you're 5+ features away from done AND the codebase looks like spaghetti, the math is "rebuild now or rebuild after another 2 months of pain."

How to tell if you're really in corner D

The most common mistake is being in corner D and pretending you're in corner B or C. Symptoms that you're actually in D:

  • Three separate components do the same job slightly differently.
  • The agent has added defensive code (try/catch around things that shouldn't fail, useEffect-on-useEffect hooks, "just in case" null checks).
  • There are commented-out blocks the agent didn't delete.
  • The data model has columns named like is_admin_v2_new next to is_admin.
  • You can't explain to a new developer in 30 minutes what the product does and how its code is structured.

If three or more of those are true, you're in corner D regardless of how late it feels.

The thing nobody tells you about stuck projects

The Lovable agent is excellent at greenfield code and getting steadily worse the more code already exists in the project. The agent's context window is finite. Every component, every Supabase query, every Tailwind class is competing for that context. At 50 components in, the agent forgets what's in component 3. At 100 components in, the agent forgets which auth flow you're using.

This is not Lovable's fault — it's a fundamental limit of how AI agents work right now. The implication: there is a maturity ceiling beyond which Lovable should not be your primary editor, regardless of how much you love the speed it gave you in the first month.

Most successful Lovable projects look like this: rapid greenfield for 2–6 weeks → handoff to a human-driven codebase (in Lovable, in Next.js, or in a senior dev's IDE) for the rest of the product's life. The mistake is trying to run the agent past month 3 on a complex product. Don't.

FAQ

How do I know if my Lovable project is too complex for the agent?

Three signals: (1) the agent keeps making the same mistake after 2–3 retries, (2) prompts that worked in week 2 stop working in week 8, (3) you find yourself describing the codebase to the agent more than describing the feature you want. Any of those three is the signal to bring in a human.

Should I just rebuild in Next.js from scratch?

Only if you're in corner D (5+ features left + degraded codebase). At 80% feature-complete with a degraded codebase, migrate don't rebuild. The migration preserves the hard-won knowledge baked into the existing surfaces.

Can I keep using Lovable after I migrate to Next.js?

You can keep it as a sandbox for visual prototyping, then re-implement in the Next.js codebase. We don't recommend keeping it as a primary editor once you've migrated — the divergence between the two repos becomes a coordination tax. See the Lovable to Next.js production handoff for the team-side of this.

How much does a Lovable rescue typically cost?

A focused 1–2 week rescue runs $5,000–$15,000 depending on scope. A full migration to Next.js runs $8,000–$45,000 depending on app complexity. A rebuild from scratch is in the $10,000–$60,000 range and takes 4–12 weeks. The cheapest option is the one that fits the corner you're actually in — not the one that feels cheapest in the moment.

Who do I call?

If you need a rescue: see Lovable app rescue. If you need a migration: see the Lovable → Next.js service. If you need a senior owner long-term: see Lovable expert or Lovable agency.

Related from the Lovable cluster

— Inspired By Frustration

▢ end of post
XLinkedIn