TL;DR: Most SaaS startups fail because they build something nobody wants. Customer discovery — systematic problem interviews, solution validation, fake door tests, and pre-selling — reduces this risk. This guide covers the four-stage validation framework, interview scripts, fake door implementation in TanStack Start, and decision gates for go/no-go.
Introduction
The number one reason SaaS startups fail is building a product nobody needs. The cure is customer discovery: a structured process of validating that a real problem exists, people will pay to solve it, and you can reach them.
Customer discovery isn't a one-time activity before building. It's a continuous loop that runs alongside development.
The Four-Stage Validation Framework
| Stage | Goal | Method | Success Criteria |
|---|---|---|---|
| Problem Discovery | Validate the problem exists | 10+ customer interviews | 7/10 rank it top-3 |
| Solution Validation | Validate your approach | Solution demos, mockups | 5/10 say "I'd pay" |
| Demand Testing | Validate willingness to pay | Fake door, landing page | 2% signup conversion |
| Pre-Sell | Validate real commitment | Pre-orders, deposits | 10+ paid commitments |
Fake Door Test with TanStack Start
A fake door test lets you gauge demand for a feature before building it. You present a CTA button or pricing page entry that looks functional but routes to a waitlist signup instead. If enough users click, you have validated demand. This server function captures the signup and the user's stated problem:
import { createServerFn } from '@tanstack/react-start'
import { z } from 'zod'
export const waitlistSignupFn = createServerFn({ method: 'POST' })
.validator(z.object({
email: z.string().email(),
problemStatement: z.string().min(10),
}))
.handler(async ({ data }) => {
// Track signups but don't build the feature yet
await db.insertInto('waitlist').values({
email: data.email,
problem: data.problemStatement,
source: 'fake_door_feature',
}).execute()
return { message: "We'll notify you when this ships!" }
})
The key metric is the signup-to-visitor ratio — if more than 2% of visitors who see the fake door sign up, the feature has sufficient demand to justify building. The problemStatement field also gives you qualitative data about what users actually need.
Conclusion
Validate before you build. A weekend of customer interviews saves months of building the wrong product. The four-stage framework — problem, solution, demand, pre-sell — gives you clear decision gates at each stage. For guidance on selecting which features to build after validation, see the MVP Feature Selection Framework. The Finding Product-Market Fit guide covers the post-validation journey, and Building a SaaS MVP in 7 Days helps you execute once you have validated demand.