Picking an MVP stack that survives past the MVP
An MVP built to be thrown away if it doesn't validate can reasonably use whatever's fastest to build with. An MVP built with the explicit intent that it becomes the real product if it validates needs a different set of trade-offs considered from day one, and we ask founders directly which situation they're actually in.
Default to boring, well-supported technology
For MVPs meant to survive, we default to Next.js, a standard relational database, and well-established, actively maintained libraries over newer or more novel tooling. The goal isn't to use the most interesting technology, it's to use technology that will still have active maintainers, documentation, and available developers to hire two years from now.
Don't over-engineer for scale you don't have yet
The opposite mistake is just as common: building elaborate infrastructure for a scale the product may never reach, before validating anyone wants it at all. We build for the traffic and complexity the product actually has now, with an architecture that can reasonably evolve rather than one that's already trying to handle a million users on day one.
Keep the data model clean even under time pressure
Under MVP time pressure, it's tempting to cut corners in the database schema that are painful to unwind later, storing structured data as loose JSON blobs, skipping foreign key relationships, avoiding migrations discipline. We hold the data layer to a higher standard than the UI layer specifically, because UI is comparatively cheap to redo and a messy data model compounds in cost the longer it exists.
Plan the auth and payments integration properly the first time
Authentication and payment processing are two areas where a shortcut taken to save a few days of MVP time routinely costs weeks to properly rebuild later, because real user accounts and real transaction history accumulate on top of the shortcut. We use established providers, Stripe, Supabase or an equivalent auth provider, from the start rather than a custom stopgap.
Document decisions as you go, not after the fact
Even a small MVP team benefits from a short running log of significant technical decisions and why they were made, since a founder or an early hire six months later shouldn't have to reverse-engineer the reasoning behind a schema choice from the code alone. We keep this lightweight, a few sentences per decision, but consistent.
The actual test we apply to every stack decision
For each significant technical choice, we ask: if this specific piece needs to be rebuilt in six months because the product succeeded, how painful is that rebuild? Choices with a genuinely low rebuild cost get the fast, simple option. Choices with a high rebuild cost, the data model chief among them, get built right the first time even under MVP time pressure.
For each significant technical choice, we ask: if this specific piece needs to be rebuilt in six months because the product succeeded, how painful is that rebuild?
Hosting choices deserve the same scrutiny as the framework
Founders often spend real time deliberating over frontend framework choice and comparatively little time on hosting and infrastructure, even though a hosting decision made under MVP time pressure can be just as costly to unwind later. We default to platforms with a clear, well-documented path from a simple starting tier to a production-grade setup, since migrating hosting providers mid-growth is a genuinely disruptive project most founders underestimate.
The specific risk we watch for is a hosting choice that works fine at low traffic but has no clean upgrade path once real usage arrives, forcing a full re-platforming project at exactly the moment the founding team has the least spare capacity to take one on. Choosing infrastructure with proven scaling headroom from day one avoids that particular crisis entirely, even if it costs slightly more at the earliest, lowest-traffic stage.
Third-party dependencies need a maintenance health check
Every library or service an MVP depends on is a small bet on that project's continued maintenance, and we check basic health signals, recent commit activity, open issue response times, community size, before adopting anything less established than a genuinely mainstream option. A clever, lightweight library maintained by one person as a side project is a real risk for a codebase meant to survive and grow past its first version.
Revisit the stack decision explicitly at key growth milestones
We build in an explicit checkpoint, usually tied to a meaningful growth milestone rather than a fixed calendar date, to revisit whether the original stack choices still fit the product's actual trajectory. A decision that was correct for an MVP with a few hundred users isn't automatically still correct once the product has real scale, and treating the original stack as permanently settled rather than periodically reviewed is its own kind of mistake.
Resist the pressure to chase whatever's trending in developer communities
Technical founders and early engineering hires are often genuinely excited about newer tools they've read about, and that excitement is a real force pulling MVP architecture toward less proven technology than the situation actually calls for. We take that enthusiasm seriously as a signal worth discussing, since developer happiness matters for retention and velocity, but we weigh it explicitly against the maturity and staffing risk of adopting something less established for a product meant to survive past its first version.
The way we resolve this in practice is by drawing a clear line between the parts of the stack where novelty is a reasonable, contained risk, an internal tool, a non-critical feature, and the parts where it isn't, the core data layer, authentication, payments. Newer tooling gets more room to be adopted in the low-risk areas, while the foundational layer sticks to boring, proven choices regardless of how much enthusiasm exists for an alternative.
A short technical debt registry pays for itself quickly
Every MVP accumulates deliberate shortcuts taken under time pressure, and we keep an explicit, short list of exactly what those shortcuts are and what the proper fix would look like, rather than letting them exist only as tribal knowledge in one developer's head. This registry becomes genuinely valuable the moment the product validates and a slightly larger team needs to prioritize what to fix first.