🧰 技术栈推荐:按场景推荐完整技术栈

不要选"最好的"技术——选"最适合你的场景"的技术。最佳技术栈 = 你最熟悉的 + 满足需求的
📋 目录

📐 选型原则

🎯 技术选型 5 条铁律
  1. 熟悉度 > 新鲜感 — 你最熟的栈效率最高。"学新框架"不是 MVP 阶段该做的事
  2. 生态 > 性能 — 有现成解决方案的栈,比"快 10%"但啥都要自己写的栈好
  3. 托管 > 自建 — 用 Supabase 别自建 PostgreSQL,用 Vercel 别自建 K8s
  4. 单体先于微服务 — 用户 < 10 万不需要微服务。单体 + 模块化足够
  5. 类型安全 > 灵活性 — TypeScript + tRPC/Prisma,类型错误在编译时抓比运行时好
⚠️ 最常见的错误:花 2 周选技术栈。超过 1 天就是浪费。选你熟悉的,或者选本页推荐的默认栈,然后开始写代码。

🧑‍💻 独立开发者 SaaS 栈

一个人做产品,效率是第一优先级。每个选择都要"省时间"。

👥 小团队 SaaS 栈(3-10 人)

团队协作需要更多考虑:代码规范、CI/CD、设计系统、多环境。

Next.js + PostgreSQL + Redis + S3

┌──────────────────────────────────────────────┐
│              小团队 SaaS 栈                   │
├──────────────────────────────────────────────┤
│  前端:Next.js 14 (App Router)               │
│  ├─ Design System (shadcn/ui 定制)           │
│  ├─ Storybook (组件文档)                      │
│  └─ Playwright (E2E 测试)                    │
│                                              │
│  后端:                                      │
│  ├─ Hono (API 层,独立于 Next.js)            │
│  ├─ tRPC (内部通信)                           │
│  ├─ BullMQ + Redis (异步任务)                 │
│  └─ Temporal/Inngest (工作流)                 │
│                                              │
│  数据库:                                     │
│  ├─ PostgreSQL (Neon/Railway 托管)            │
│  ├─ Drizzle ORM                              │
│  ├─ Redis (Upstash) 缓存                     │
│  └─ 多租户:Row-Level Security               │
│                                              │
│  存储:                                       │
│  ├─ S3/R2 (文件)                              │
│  └─ Meilisearch (搜索)                        │
│                                              │
│  基础设施:                                    │
│  ├─ Docker Compose (本地开发)                 │
│  ├─ GitHub Actions (CI/CD)                   │
│  ├─ Vercel / Fly.io (部署)                   │
│  └─ OpenTelemetry + Grafana (监控)            │
│                                              │
│  💰 月成本:$100-500                          │
└──────────────────────────────────────────────┘

🤖 AI SaaS 栈

AI 产品有特殊需求:LLM 调用、向量搜索、流式输出、Token 成本控制。

🔄 实时协作栈

Next.js + CRDT + WebSocket

┌──────────────────────────────────────────────┐
│            实时协作栈                          │
├──────────────────────────────────────────────┤
│  前端:Next.js + React                        │
│  ├─ Yjs (CRDT 引擎)                          │
│  ├─ Lexical / Tiptap (富文本编辑器)           │
│  └─ Liveblocks (托管协作) 或自建              │
│                                              │
│  实时层:                                      │
│  ├─ WebSocket (Hono + Durable Objects)       │
│  ├─ PartyKit (简化 WebSocket)                 │
│  ├─ Ably / Pusher (托管实时)                  │
│  └─ Supabase Realtime (PostgreSQL Changes)   │
│                                              │
│  数据:                                       │
│  ├─ PostgreSQL (持久化)                       │
│  ├─ Y.js Document (CRDT 状态)                │
│  └─ Redis (在线状态、房间管理)                 │
│                                              │
│  💰 月成本:$100-500                          │
└──────────────────────────────────────────────┘

🏪 多租户 Marketplace 栈

Next.js + PostgreSQL + Stripe Connect

┌──────────────────────────────────────────────┐
│          Marketplace 栈                       │
├──────────────────────────────────────────────┤
│  多租户架构:                                   │
│  ├─ Schema-per-tenant (租户少/隔离强)         │
│  ├─ Row-Level Security (租户多/成本敏感)      │
│  └─ 详见 multi-tenant.html                   │
│                                              │
│  支付:                                       │
│  ├─ Stripe Connect (平台分账)                  │
│  ├─ 支持卖家入驻和提现                         │
│  └─ Stripe Billing (订阅管理)                 │
│                                              │
│  搜索:                                       │
│  ├─ Meilisearch / Typesense (商品搜索)        │
│  └─ Algolia (预算充足)                        │
│                                              │
│  通知:                                       │
│  ├─ SendGrid / Resend (邮件)                  │
│  ├─ Novu (多渠道通知)                         │
│  └─ Pusher (实时通知)                         │
│                                              │
│  💰 月成本:$200-1000                         │
└──────────────────────────────────────────────┘

📝 内容/博客站栈

Astro / Next.js SSG + CMS

┌──────────────────────────────────────────────┐
│          内容站栈                              │
├──────────────────────────────────────────────┤
│  框架选择:                                    │
│  ├─ 纯内容站:Astro (最轻量)                   │
│  ├─ 内容+SaaS:Next.js SSG (统一栈)           │
│  └─ 快速上线:Framer (零代码)                  │
│                                              │
│  CMS:                                        │
│  ├─ MDX 文件 (开发者友好)                     │
│  ├─ Contentlayer / Velite (类型安全)          │
│  ├─ Sanity / Strapi (非技术编辑)              │
│  └─ Notion API (最简单的 CMS)                 │
│                                              │
│  部署:                                       │
│  ├─ Cloudflare Pages (免费,全球 CDN)          │
│  ├─ Vercel (Next.js 最佳)                    │
│  └─ Netlify (简单站点)                        │
│                                              │
│  SEO:                                        │
│  ├─ Next SEO / Astro SEO                     │
│  ├─ sitemap + robots.txt                     │
│  └─ Open Graph / 结构化数据                   │
│                                              │
│  分析:                                       │
│  ├─ Umami (自托管,隐私友好)                   │
│  ├─ Plausible (托管,轻量)                     │
│  └─ PostHog (功能最全)                        │
│                                              │
│  💰 月成本:$0-20                             │
└──────────────────────────────────────────────┘

🔧 内部工具栈

Retool / Refine + 内部数据库

┌──────────────────────────────────────────────┐
│          内部工具栈                            │
├──────────────────────────────────────────────┤
│  方案一:Retool(最快)                        │
│  ├─ 拖拽式 UI + SQL/REST 查询                 │
│  ├─ 内置 Auth + 审计                          │
│  └─ $10/用户/月起                              │
│                                              │
│  方案二:Refine(更灵活)                      │
│  ├─ React 框架,面向管理面板                   │
│  ├─ 开源,自托管                               │
│  ├─ 数据提供者模式(接任何后端)               │
│  └─ Ant Design / MUI 集成                     │
│                                              │
│  方案三:Appsmith / ToolJet                   │
│  ├─ 开源 Retool 替代                          │
│  └─ 自托管,免费                               │
│                                              │
│  💰 月成本:$0-100                            │
└──────────────────────────────────────────────┘

📊 分层详解:每层的选择

前端框架

框架 适合场景 TypeScript 部署 生态
Next.js 推荐 SaaS 全栈 Vercel 最大
Nuxt Vue 生态 SaaS Vercel/自托管
SvelteKit 轻量 SaaS Vercel/自托管 中等
Astro 内容站/博客 任何 CDN 中等
Remix 复杂交互 SaaS 任何 Node 中等

后端方案

方案 适合场景 语言 优势 劣势
Next.js API Routes 简单 CRUD TypeScript 全栈一体,零配置 复杂逻辑受限
Hono 高性能 API TypeScript 轻量,Edge 友好 生态较小
FastAPI AI/ML 后端 Python 异步,自动文档 部署稍复杂
Supabase BaaS(零后端) SQL + JS Auth+DB+存储一体 复杂查询受限
Elysia (Bun) 极致性能 TypeScript Bun 速度快 生态新,不稳定

数据库

选择 适合场景 托管 成本
Supabase PostgreSQL 推荐 通用 SaaS 免费-25/月
Neon PostgreSQL Serverless SaaS 免费-19/月
PlanetScale MySQL 分支开发 $39/月起 ⚠️
SQLite (Turso) 边缘计算 免费-29/月
自建 PostgreSQL 大规模/敏感数据 VPS $5/月起 运维成本高

ORM

ORM 风格 TypeScript 性能 推荐场景
Drizzle 推荐 SQL-first ⭐⭐⭐ ⭐⭐⭐⭐⭐ 大多数 SaaS
Prisma Schema-first ⭐⭐⭐ ⭐⭐⭐ 快速原型
Kysely Query builder ⭐⭐⭐ ⭐⭐⭐⭐⭐ 复杂查询

💰 成本估算

服务 免费层 MVP 月成本 规模月成本
Vercel (托管) ✅ 个人项目免费 $0 $20/人
Supabase (数据库+Auth) ✅ 500MB + 50K Auth $0 $25
Stripe (支付) ✅ 无月费 2.9% + $0.30/笔 同左
Sentry (错误追踪) ✅ 5K 错误/月 $0 $26
PostHog (分析) ✅ 1M 事件/月 $0 $0-50
Resend (邮件) ✅ 100 封/天 $0 $20
Cloudflare (DNS) ✅ 免费 $0 $0
域名 $10-15/年 同左
Redis (Upstash) ✅ 10K 命令/天 $0 $10-30
合计 $0-10/月 $100-300/月
💡 2025 年最惊人的事:一个完整的 SaaS 产品,MVP 阶段可以完全免费运行。Vercel + Supabase + PostHog + Sentry + Cloudflare 免费层加起来,够支撑到每月几千用户。

🌳 决策树

🔍 快速选栈决策树
你的产品是什么类型?

├─ 通用 SaaS(CRUD + 认证 + 支付)
│  └─ → Next.js + Supabase + Stripe 栈
│
├─ AI 产品(LLM + RAG + 流式)
│  └─ → AI SaaS 栈(+ LiteLLM + pgvector)
│
├─ 实时协作(多人编辑)
│  └─ → 实时协作栈(+ Yjs + PartyKit)
│
├─ Marketplace(卖家入驻)
│  └─ → Marketplace 栈(+ Stripe Connect)
│
├─ 内容站/博客
│  └─ → 内容站栈(Astro + MDX)
│
├─ 内部工具
│  └─ → Retool 或 Refine
│
└─ 其他 / 不确定
   └─ → 默认用独立开发者栈
       ──它是最通用的选择

你熟悉的语言是什么?

├─ TypeScript → Next.js + tRPC + Drizzle
├─ Python → FastAPI + SQLAlchemy + Celery
├─ Go → Gin + sqlc + 自建
├─ Ruby → Rails(最快出活)
└─ 不确定 → TypeScript(生态最大)
🎯 还是不确定?用这个一键决策

如果你什么都不确定,就用这个:

# 一键创建 SaaS 项目
npx create-next-app@latest my-saas --typescript --tailwind --app --src-dir
cd my-saas
npx shadcn@latest init
npm install @supabase/supabase-js @supabase/ssr drizzle-orm
npm install stripe @stripe/stripe-js
npm install zod @tanstack/react-query zustand
npm install resend
npm install @sentry/nextjs posthog-js

# 就这样。开始写业务逻辑。

🔗 相关章节

从 0 到 1 的最短路径

单体/微服务/Serverless

全栈开发反模式