SolisReach
← Journal
MVP & Product5 min read

The technical debt we deliberately leave in an MVP, and why

Written by the SolisReach team

"Technical debt" gets used as a blanket criticism, as if all shortcuts are equally bad and all of them need eventual repayment. In MVP work specifically, some technical debt is a deliberate, correct trade: speed to validate an idea matters more than long-term code elegance, provided the debt is chosen deliberately rather than accumulated by accident.

Debt we take on without much hesitation

Hardcoded configuration values instead of a full admin settings panel, since a founder can change a value in code far faster than building a settings UI nobody will use more than a handful of times in the MVP phase. Manual processes standing in for automation, a founder personally reviewing and approving something a script would eventually handle. Minimal test coverage on code likely to be substantially rewritten once real usage patterns are known, since testing code that's about to change anyway is wasted effort.

Debt we don't take on, even under time pressure

Security fundamentals: proper authentication, data encryption where it matters, basic input validation against injection attacks. Cutting corners here doesn't save meaningful time and creates real risk that's expensive and sometimes impossible to fully undo later, particularly once real user data is involved. Core data model decisions, as we've written about separately, since getting this wrong is the single most common cause of a full rewrite down the line.

How we document the debt we do take on

Every deliberate shortcut gets a comment in the code and a line in a handoff document explaining what was cut and why, specifically so a future developer, whether that's us or someone the client hires later, understands it was a considered choice rather than an oversight, and knows what a proper fix would involve when the time comes to invest in one.

The trigger for actually paying debt down

We revisit deliberate technical debt at specific triggers: real user volume crossing a threshold where the manual process becomes unsustainable, or a specific feature request that the hardcoded shortcut can no longer support. Debt gets paid down when it's actually costing something measurable, not on an arbitrary schedule that ignores whether the product has even validated enough to justify the investment yet.

Why this framing matters to founders specifically

A founder who understands the difference between deliberate, documented debt and accidental, undocumented mess can make much better decisions about when to invest in cleanup versus when to keep moving fast. The goal was never a perfectly clean MVP codebase. It was proving whether the business has a reason to exist, as cheaply and quickly as that can be responsibly tested.

A founder who understands the difference between deliberate, documented debt and accidental, undocumented mess can make much better decisions about when to invest in cleanup versus when to keep moving fast.

A real example of debt that paid off, and one that didn't

One client's MVP hardcoded a single default shipping rate rather than building real-time carrier rate lookups, a deliberate shortcut that saved roughly two weeks of integration work. That decision held up fine for the first four months, until the product expanded into international shipping and the flat rate started actively losing money on international orders, at which point building real rate lookups became an easy, well-justified call backed by real data on how much the shortcut was now costing.

By contrast, a different client's MVP skipped a genuine review of how user permissions should work, treating it as a detail to figure out later, and that shortcut proved much more expensive to unwind once real customers with real data were already relying on an ad hoc permissions model that nobody had ever deliberately designed. The difference wasn't luck: shipping rates were an isolated, swappable piece of the system, while permissions touched nearly everything, which is exactly the kind of distinction we now weigh explicitly before deciding what's safe to defer.

How we decide, in the moment, which category a shortcut falls into

We ask two questions about any proposed shortcut before taking it: how many other parts of the system would have to change if we get this wrong, and how expensive is it to reverse once real user data exists. A shortcut that's cheap to reverse and isolated from the rest of the system is safe deliberate debt. A shortcut that touches core data relationships or is expensive to unwind once real users depend on it gets the same scrutiny as a permanent architectural decision, even under real deadline pressure.

How we communicate debt decisions to a non-technical founder

A founder without an engineering background can't evaluate a technical shortcut on its own terms, so we translate every meaningful debt decision into business language: what this saves in time and cost right now, what it would cost to fix properly later, and what specific trigger, a certain user count, a specific new feature, would make fixing it worthwhile. This framing lets a founder make an informed call on tradeoffs that affect their business, rather than either trusting us blindly or being handed a technical explanation they have no real way to evaluate.

We've found founders make noticeably better decisions about their own product roadmap once they understand which parts of the MVP are load-bearing and permanent versus which parts were always meant to be temporary scaffolding, since it changes how they think about which future feature requests are simple additions versus ones that might require revisiting an earlier shortcut first. That shift in understanding tends to be worth more to a founder's long-term decision-making than any specific engineering choice we make along the way, since it's the founder, not us, who has to live with the roadmap those decisions shape for years afterward, long after any specific engineering choice we made together has been forgotten. This is ultimately why we document debt so carefully in the first place, not for our own reference, but so the founder retains real ownership of these tradeoffs.

The framing that's held up best across dozens of MVPs: debt is a loan, not a mistake, and every loan needs a plan for repayment. A shortcut taken with a clear sense of what it costs and when it needs revisiting is a normal, healthy part of building fast. A shortcut taken without that awareness, the kind that just accumulates silently until something breaks in production, is the version that actually deserves the negative reputation technical debt tends to carry.

Start a project

Want this applied to your site?

We run a Core Web Vitals and SEO audit before quoting any performance marketing engagement, and we're happy to share what we'd find on yours.