How we rescue half-finished codebases without starting over
About 40% of our work is picking up projects other teams started. Here is the exact playbook we follow in the first two weeks.
"The last team ghosted us three weeks before launch" is one of the most common sentences we hear on a first call. Rescues are not glamorous, but they are rewarding — and they follow a repeatable shape.
Week 1: read, do not write
We do not merge anything for five business days. We read. Every file, every migration, every commit message. We run npx depcheck, check bundle size, open the Firebase console, list every external service, snapshot every env var.
Output: a 5-page audit doc. What works, what is broken, what is risky, what is missing. Shared with the client on a call, not in email.
Week 2: stabilise the mainline
- CI runs on every PR.
- Typecheck passes.
- Preview deploys on every PR.
- Error tracking (Sentry) captures prod errors.
- Critical paths get Playwright smoke tests.
If the app does not even boot, we fix that first. If it boots but breaks at scale, we add a load test. By end of week 2, merges are safe again.
Weeks 3–N: ship the backlog
Now we follow our normal Run cadence: weekly release, preview-driven reviews, analytics feedback loop. Clients who come in panicked usually hit calm predictability by week 4.
What we will not do
We do not rewrite for the sake of rewriting. We do not swap frameworks. We do not "modernise" code that is not causing a problem. The fastest way to finish a project is usually to finish the project.