Use Next.js, TypeScript, Tailwind, Postgres, Clerk or Supabase Auth, Stripe, Resend, and Vercel unless you have a one-sentence reason not to. Users do not care about your stack. Investors do not care. The only job a stack has is to let a small team ship now and not rewrite at 10,000 users.
The default
| Layer | Default | Why |
|---|---|---|
| App | Next.js (App Router) | Hiring pool, hosting, React |
| Content sites | Astro | Faster and simpler when the page is mostly text |
| Language | TypeScript | Catches a class of bugs AI tools love |
| UI | Tailwind + shadcn/ui | Fast, consistent |
| Database | Postgres (Supabase or Neon) | You will never regret Postgres |
| Auth | Clerk or Supabase Auth | Never hand-roll auth |
| Payments | Stripe + Stripe Tax | Or Paddle / Lemon Squeezy for merchant-of-record |
| Resend + React Email | Templates in code | |
| Jobs | Inngest or Trigger.dev | Retries without running a queue |
| AI | Vercel AI SDK | Swap models in one line |
| Errors | Sentry | From day one |
When to deviate
Use Astro instead of Next when the product is a site, not an app. Use Expo only if the core loop needs the camera, push, or offline. Add a separate backend only when you have long-running jobs or a second client. Use Python for ML work, not for the web app. Use Bubble or Webflow only if you expect to throw it away and you say that out loud.
What it costs to run
At 0–100 users, expect about $50/month. At 1,000 users, about $300. At 10,000, about $1,500 before serious AI usage. People cost 20–50× that. Optimise for people.
Questions to ask a developer who proposes something else
- What breaks at 10,000 users with the default, and does your choice fix it?
- How many developers can we hire who know this?
- How do we leave if we need to?
- Have you shipped this to production, or is this the project where you learn it?
The full table, the cost sheet, and the stack smells live in the Founder’s Tech Stack Decision Guide. If you want a 30-minute review before you commit, book it.