Skip to content

Solo Founder Product Engineering Handbook

Stack Selection Scorecard

Choose a stack for the next product test by eliminating unsafe options, comparing founder burden, and testing the uncertainty that could reverse the choice.

Choose for the Next Product Test

Two stacks can both be capable of building the product and still impose very different companies on one founder. One makes deployment, support, and recovery routine. The other makes the first demo quickly but turns every failure into research across unfamiliar services. A feature comparison will miss that difference because both options have the necessary features.

Use this scorecard to choose the stack that can support the next six months of learning without creating a second job in infrastructure. It is not a tournament for finding the best technology in general. It records what the product must prove, which promises must already be safe, what the founder can operate under pressure, and what evidence would justify changing the decision.

Compare complete operating choices, not isolated tools. “PostgreSQL versus a document database” is too narrow if one option also changes hosting, background work, backups, observability, and the way customer data can leave the system.

Set the Boundary Before Naming Candidates

Start with the product decision. A stack cannot be judged without the work it is being hired to do.

Copy this block into the decision record and keep each answer specific:

Decision window:
Product evidence we need by the end of it:
First customer value the system must deliver:
Current trust promises (data, access, recovery, delivery):
Expected usage and cost range:
Founder skills we can rely on under delivery pressure:
The one component, if any, where novelty creates customer value:
Capabilities we are deliberately deferring:
Candidate operating stacks:

The window is usually the next meaningful product phase: perhaps three paid pilots or six months, whichever arrives first. “Build a scalable platform” is not product evidence. “Learn whether small agencies will pay for a reviewed campaign report delivered within one business day” is.

List no more than three serious candidates. Include the founder’s familiar default even if a newer option appears faster in a tutorial. If a candidate contains a novel component, name the customer capability that pays for the novelty. Curiosity and résumé value may be honest personal reasons to learn a tool, but they are not product reasons to put it on the critical path.

Disqualify Before You Score

A high total must never compensate for one dangerous answer. Check each candidate against these gates first:

  • It can meet the current access, privacy, retention, recovery, and delivery promises.
  • The founder can deploy a change, inspect a customer problem, and recover a failed operation without relying on a second operator.
  • Customer data and essential history can be exported in a usable form.
  • Fixed and usage-driven costs can be bounded at the expected range.
  • The product’s central workflow does not depend on an unproved capability with no manual or technical fallback.
  • A routine upgrade or provider failure does not make the system unknowable.

Mark each gate pass, fail, or unknown, and add one sentence of evidence. Remove a failing candidate unless the product requirement changes. An unknown is not a quiet pass and should not be converted to zero points. It becomes a test.

This is where a superficially cheap option often falls away. Free hosting does not offset an unrecoverable data model. Excellent AI code generation does not offset a system the founder cannot debug. Familiar technology does not offset a security or reliability requirement it cannot meet.

Compare the Survivors by Founder Burden

For every surviving candidate, score the following dimensions from 0 to 2:

  • 0 — adverse: the option creates a material burden or misses the need.
  • 1 — workable: it meets the need, but with a known cost, workaround, or learning load.
  • 2 — ordinary: the founder has direct evidence that the need will be routine.

Use ? when evidence is missing. Beside every mark, write the fact behind it. “Strong ecosystem” is an opinion; “the official upgrade guide covers the last three releases, and I completed the production upgrade path in a test deployment” is evidence.

Score these dimensions:

  1. Familiar delivery. Can the founder estimate, build, test, and debug ordinary changes without learning the stack while serving customers?
  2. Operational simplicity. How many services, credentials, deploy steps, dashboards, and independently failing parts must one person understand?
  3. Support surface. Do maintained documentation, common error reports, libraries, migration guides, and provider support cover normal production work?
  4. Managed leverage. Does the provider remove patching, backup, delivery, or scaling work while leaving enough visibility and control to support users?
  5. Observability and recovery. Can the founder reconstruct what happened to one customer’s request, retry or repair it safely, and verify restoration from backup?
  6. Cost shape. Are the early cost floor and the expensive usage paths visible, bounded, and connected to customer behavior?
  7. Reversibility. Can data, traffic, and the differentiated component move without rewriting the whole product or breaking a customer promise?
  8. Collaboration path. Could a contractor or first engineer operate the system from its conventional tools and records, without inheriting a private toolchain?
  9. Tooling leverage. Do the editor, agent, test, deployment, and diagnostic tools speed work the founder can still review and own?

Do not weight every dimension equally. The decision boundary already names the pressures that matter now. For a product handling sensitive records, access and recovery dominate. For a low-risk consumer experiment, iteration speed and cost floor may dominate. Write the three decisive dimensions before looking at the totals; otherwise a large score can manufacture confidence from several minor advantages.

Use this compact record for each option:

Candidate:
Gate results and evidence:

Three decisive dimensions:
1.
2.
3.

Familiar delivery:       [0 / 1 / 2 / ?] — evidence:
Operational simplicity:  [0 / 1 / 2 / ?] — evidence:
Support surface:         [0 / 1 / 2 / ?] — evidence:
Managed leverage:        [0 / 1 / 2 / ?] — evidence:
Observability/recovery:  [0 / 1 / 2 / ?] — evidence:
Cost shape:              [0 / 1 / 2 / ?] — evidence:
Reversibility:           [0 / 1 / 2 / ?] — evidence:
Collaboration path:      [0 / 1 / 2 / ?] — evidence:
Tooling leverage:        [0 / 1 / 2 / ?] — evidence:

Unknown most likely to reverse the decision:
Smallest test for that unknown:

Test the Reversal, Not the Whole Stack

The useful experiment is the one that could change the choice. Do not build the same miniature application three times merely to make the comparison feel empirical.

If recovery is uncertain, create representative data, interrupt a background operation, restore from backup, and trace the repaired customer state. If operating cost is uncertain, run the expensive path with a plausible workload and calculate cost per useful customer outcome. If familiarity is the issue, implement one thin production path that includes deployment, authentication, an error, and a schema change; a successful local tutorial proves little about operating pressure.

Time-box the test. Record the result as evidence, not as attachment to code already written. A candidate that requires several weeks of investigation before it can be chosen has exposed part of its adoption cost.

A Filled Decision

Suppose the founder of an agency-reporting product is choosing between a familiar server-rendered application with a managed relational database and an unfamiliar event-driven stack divided among five managed services. Either can accept an export and produce a report. The next three pilots, however, require the founder to inspect every generation, repair failures, preserve delivery history, and answer a customer question from one trace.

Both candidates pass the basic product-fit gate. The divided stack remains unknown on recovery and end-to-end inspection. Its generous entry pricing and strong code-generation support earn real credit, but those advantages are not decisive for the pilot. A short test shows that a failed report crosses four dashboards and cannot yet be replayed without editing state by hand.

The founder chooses the familiar application, managed relational data and file storage, and one simple background-work path. The report-generation component remains the deliberate novelty because it creates customer value. The rejected candidate is not declared bad technology; it asks this founder to solve the wrong problem during this decision window.

The record ends this way:

Decision:
Use the familiar application stack for the next three paid pilots.

Why:
It makes customer state, failed work, delivery history, and recovery inspectable
by one operator. It meets the current trust promises with fewer independent
failure paths. The only novel component is report generation.

What we rejected:
The event-driven candidate, because its recovery and trace path remain costly
at the workload we need now—not because event-driven systems are universally
wrong.

Revisit when:
A measured workload cannot be handled by the background-work path, the cost per
accepted report breaks the product model, or the pilot offer becomes repeatable
enough to justify another operator and a different architecture.

Make the Decision Plain

Choose the simplest candidate that passes every present constraint and performs best on the few dimensions that govern the next product test. When two options remain close, prefer the one the founder can already debug, the one with fewer independently failing parts, and the one that leaves data and customer promises easiest to move.

Finish with a six-month stack memo: the chosen operating stack, the evidence it exists to produce, the ordinary work delegated to mature tools or managed services, the one deliberate exception, the strongest remaining risk, and the event that reopens the choice. A date alone may prompt a review, but only new evidence should force a rewrite.

The scorecard has done its job when the founder can explain why this stack fits the next product test, which uncertainty was tested, which burden was refused, and what observed change—not technical fashion—would justify choosing again.