Should I rewrite my app from scratch or fix it?

Also searched as: Rewrite or refactor · Rewrite from scratch · Never rewrite from scratch · Joel on Software: rewrite from scratch · When to rewrite from scratch

Updated 3 October 2026

Short answer

Usually fix it. A rewrite throws away everything the old code learned (years of bug fixes and edge cases nobody wrote down), takes longer than planned, and leaves you with nothing live while it happens. Fix what's broken, get it live, and then replace parts gradually where they genuinely need replacing. A full rewrite makes sense only rarely: when the technology itself is dead, or the app is small and its behaviour is fully understood.

What's the problem

The code is a mess, or feels like one. A developer has told you "it would be faster to rebuild it". You've already spent a lot, and now you're weighing a second bill against a project that might never work.

Why it happens

  • Old code looks worse than it is. Reading code is harder than writing it, so the next developer always finds the last one's work confusing, even when it works.
  • Old code holds hidden knowledge. Every odd-looking line may be a fix for a real problem someone hit. A rewrite rediscovers each one, in production, with your users.
  • Rewrites are estimated optimistically. Writing the new version, matching every feature of the old one, and migrating the data all take longer than expected, while nothing new ships.
  • Developers prefer building to reading. "Rewrite it" is sometimes the right call, and sometimes just the more interesting job.

How to fix it

  1. Get an honest assessment of what's there. What works, what's broken, and what's missing, from someone who isn't selling you the rewrite.
  2. Separate "messy" from "broken". Messy code that works is a later problem. Broken code that blocks launch is the current one.
  3. Fix what blocks launch, and get it live. Real users tell you which parts matter.
  4. Replace parts gradually when they need it, one piece at a time, with the old system running until each new piece takes over.
  5. Consider a rewrite only if the language or framework is truly dead, the app is small and fully understood, or the assessment shows little worth keeping. Even then, keep the old one running until the new one matches it.

When to call Preventionlabs

Before you commit to either. The free assessment answers this question for your specific project, in writing: what's broken, what it takes, and whether it can be saved. If it can't, we say so and you owe nothing. If it can, a resurrection gets the app you already have live, protected and scalable, for a flat $10,000 AUD, rather than starting again.

Submit your project for a free assessment

Free assessment. $10,000 AUD flat to get it live, only if we take it on and you go ahead.

Sources

  1. Joel on Software: Things You Should Never Do, Part Isoftware engineering essayThey did it by making the single worst strategic mistake that any software company can make: They decided to rewrite the code from scratch.
  2. Joel on Software: Things You Should Never Do, Part Isoftware engineering essayThe idea that new code is better than old is patently absurd.
  3. CodeAhoy: When to Rewrite from Scratch: Autopsy of a Failed Softwareengineering case studyWhile parts of code were bad, we could have easily fixed them with refactoring if we had taken time to read and understand the source code that was written by other people.
  4. Martin Fowler: Strangler Figsoftware engineering referenceWhat this approach does do is make both investment and returns occur gradually and visibly
← All of Save it or start over