The tech stack decision paralyzes more startups than it should. Here's the short version: pick the default, ship, and don't revisit until something breaks. The long version follows.
The default stack (use this unless you have a reason not to)
- Framework: Next.js (App Router)
- Styling: Tailwind CSS + shadcn/ui
- Database: PostgreSQL via Prisma (hosted on Neon or Supabase)
- Auth: Clerk or NextAuth
- Deploy: Vercel
- Email: Resend
- Payments: Stripe
- Analytics: Vercel Analytics or Plausible
Why this stack wins
- Hiring pool. More developers know React + Next.js than any alternative. Your first engineering hire can be productive on day one.
- AI compatibility. Every AI tool generates Next.js + Tailwind. You can use InBuild, v0, Cursor, and Copilot without fighting the stack.
- One project, everything. Marketing site, product app, API routes, blog — all in one Next.js project. No microservices, no separate repos, no deployment orchestration.
- Vercel handles operations. Auto-deploy from Git, preview environments, CDN, serverless functions, analytics. You don't need a DevOps hire.
When to deviate
- Real-time features: If your product is a real-time collaboration tool (like Figma), add WebSockets via Socket.io or use Supabase Realtime. Next.js alone doesn't handle persistent connections.
- Heavy computation: ML models, video processing, or data pipelines shouldn't run in serverless. Add a dedicated compute layer (Railway, Fly.io, or AWS).
- Mobile app: React Native shares React knowledge but not Next.js code. If mobile is primary, evaluate React Native or Flutter separately.
- Regulatory requirements: Some industries (healthcare, finance) require specific hosting regions or compliance frameworks. Check before committing to Vercel's infrastructure.
The biggest mistake
Choosing a stack based on what you might need in two years instead of what you need this month. The startup that ships on a "boring" default stack and validates with customers beats the startup that spends three months evaluating frameworks. You can always migrate later — and if you're successful enough to need to migrate, that's a good problem to have.