Skip to main content

technical debt mvp development

How we ship in 21 days and still run a business fixing other people's shortcuts

Fast delivery is a scoping decision, not an engineering one. What we compress, what we never compress, and what running an app rescue practice teaches you about the real causes of technical debt.

Prince Kumar Singh10 min read

The reasonable objection to a 21-day build is that somebody pays for it later. It is worth taking seriously, because it is often true. Plenty of fast work does leave debt behind, and the people who inherit it are rarely the people who agreed to the timeline.

Our answer is not a promise about care. It is structural, and it is testable: we also run a practice that repairs applications which broke after launch. We see, in detail and at cost, what shortcut engineering does. That is an unusual position for a studio that sells speed, and it shapes what we will and will not compress.

Speed is a scoping decision, not an engineering one

There are two different things people mean by fast. One is doing less. The other is doing the same amount with less care. Only the first is safe, and the difference between them is the whole argument.

When we say a production MVP ships in 21 days, the compression is entirely in scope. Fewer features, fewer surfaces, fewer edge cases handled in version one, aggressive decisions about what to cut. What does not compress is the way any of it is built. Code review before merge, tests over core business logic, dependency scanning, a real deployment pipeline, and a documented handover are constant regardless of the timeline.

A studio that compresses the second thing can quote a shorter number. The tell is what happens when you ask what is included: scope reductions are specific and named, care reductions are vague.

Ask any studio what gets cut to hit the date. If the answer is features, that is scoping. If the answer is unclear, that is the other kind of fast.

What running a rescue practice actually teaches you

Founders bring us applications built with Lovable, Bolt, v0, Cursor, Replit and Base44 that worked in preview and failed in production. We trace payments, webhooks, authentication and data, then tell them what is salvageable. Six pages of this site document how each tool tends to fail.

The pattern across every one of those engagements is the same, and it is not what people expect. The debt is almost never in the application code being ugly. It is in four specific places: security defaults left off, payments inferred rather than recorded, failures that are silent, and no way to deploy a fix safely.

That is a useful finding, because all four are cheap to get right on day one. None of them takes meaningful time. They are omitted because nobody was accountable for them, not because a deadline made them impossible.

  • Row level security disabled, so every signed-in user can read every other user's rows
  • Payment state inferred from a browser redirect instead of a verified webhook event
  • Errors that fail silently, so the first report comes from a customer
  • No deployment path, so fixing anything means regenerating and hoping

Where AI fits, and who is accountable

We use AI aggressively and we say so openly. It drafts scaffolding, first-pass implementations, test cases and documentation. That is a genuine part of why the timeline is what it is, and pretending otherwise would be dishonest.

The rule underneath it does not move: a senior engineer owns and verifies every line that ships. Every change passes AI-assisted review for bugs and security, and then a human makes the call. Nothing merges on a model's say-so.

This is worth being precise about, because the industry evidence is not flattering to the assumption that AI is straightforwardly faster. A 2025 METR study found experienced developers felt roughly 20% faster using AI while actually being about 19% slower on the tasks measured. We take that seriously. The gain comes from measuring real throughput, not from trusting the feeling of speed.

The four things we never compress

These are constant across a 21-day fixed-price build, a larger milestone project, and a monthly retainer. They are the reason a fast build can be handed to another team without an apology.

  • Code review by a senior engineer before anything merges to production
  • A test suite over core business logic, concentrated where a regression would be silent
  • Dependency and vulnerability scanning in CI, with secrets kept out of source control and rotated at handover
  • A documented handover: readable code, docs, and a walkthrough, with you owning the repository, infrastructure and accounts from day one

Debt you accept on purpose is not the same as debt you discover

Some shortcuts are correct. Skipping an admin interface and using database queries for the first month is a reasonable trade. Hardcoding a configuration value that will not change until you have customers is fine. Deferring internationalisation, background job retries, or a caching layer until there is evidence you need them is usually right.

The distinction that matters is whether the trade was chosen and written down. Deliberate debt has an owner, a reason, and a rough cost to repay. Accidental debt is discovered by whoever inherits the codebase, usually under pressure, usually at the worst time.

This is why the 30-day programme included with every build ends in a written technical debt assessment rather than a reassurance. You get the list, the reasoning, and a 90-day roadmap. Whether you keep us on afterwards is then a decision you make with the information in front of you.

Deliberate debt is a plan. Accidental debt is a surprise for someone who did not agree to it.

The part that keeps us honest

We build and operate our own products alongside client work, including an over-the-air deployment platform for React Native applications. Products we cannot walk away from are a useful discipline. Every shortcut we might take on a client build, we would be living with ourselves on those.

That is the strongest version of this argument we can make, and it is structural rather than rhetorical. A studio whose only exposure ends at handover has no mechanism forcing it to care about month eighteen. One that runs a repair practice and its own live products has two.

How to evaluate any studio on this

You do not have to take our word for it, and you should not take anyone's. There are four questions that separate scoping-fast from care-fast, and they work on any vendor.

  • What specifically gets cut to hit the date? Vague answers are the signal.
  • Who reviews the code, and does anything merge without a human reading it?
  • What do I receive at handover, and do I own the repository and accounts from day one or on final payment?
  • What happens in the month after launch, and is it priced?