# SaaS 技术栈选型表(第一版) 本文档用于明确新 SaaS 项目应该采用什么技术栈,以及为什么这样选。 当前阶段的原则不是追求“最新最炫”,而是追求: - 稳定 - 清晰 - 好维护 - 适合两人 + AI 协作 - 便于长期迭代 --- ## 1. 选型原则 ### 必须满足 - 简单清晰 - 社区成熟 - 适合视频/任务型系统 - 适合长期演进 - 对 AI 编码工具友好 - 前后端边界明确 ### 尽量避免 - 过重的企业级复杂框架组合 - 需要大量人力维护的微服务架构 - 前期就引入过多中间件 - 因“先进”而牺牲可维护性 --- ## 2. 前端建议 ### 推荐方向 - **React + TypeScript + Next.js(管理台 / Web 前端)** ### 原因 - 生态成熟 - AI 工具支持好 - 组件化能力强 - 适合后台系统和 SaaS 管理界面 - 后续做 SSR / 管理台 / 仪表盘都顺手 ### UI 组件建议 - `shadcn/ui` 或同类现代组件体系 - 配合 Tailwind CSS ### 结论建议 前端推荐: - `Next.js + TypeScript + Tailwind + shadcn/ui` --- ## 3. 后端建议 ### 推荐方向 - **Python + FastAPI** ### 原因 - 和现有业务逻辑语言认知一致 - 适合 AI 工具协作 - 非常适合 API + 后台任务系统 - 类型标注、文档、异步支持都成熟 - 对视频处理、脚本、任务调度的生态友好 ### 不建议前期改成 Node 作为主后端的原因 - 现有业务规则和视频处理经验都更接近 Python 生态 - 后续 worker、ffmpeg、诊断逻辑、脚本集成都更自然 ### 结论建议 后端推荐: - `FastAPI + Python` --- ## 4. 数据库建议 ### 推荐方向 - **PostgreSQL** ### 原因 - 稳定成熟 - 非常适合 SaaS 主业务数据 - 对 JSON 字段、索引、事务支持好 - 生态完整 ### 结论建议 主数据库: - `PostgreSQL` --- ## 5. 异步任务 / 队列建议 ### 推荐方向 - **Celery + Redis** ### 原因 - 视频生成、素材分类、同步、诊断都属于典型长任务 - 需要 worker、状态、重试、任务分离 - Python 生态成熟 ### 可替代方向 - RQ / Dramatiq / 自建轻量任务层 ### 当前建议 如果追求成熟和可扩展,优先: - `Celery + Redis` --- ## 6. 对象存储建议 ### 推荐方向 - **S3 兼容对象存储 / OSS** ### 原因 - SaaS 素材和结果文件不适合长期直接绑本地磁盘 - 对象存储天然适合大文件、归档、分发 - 便于后续多 worker / 多环境扩展 ### 当前建议 抽象成统一存储接口,底层可接: - 阿里云 OSS - MinIO - S3 兼容存储 --- ## 7. 鉴权建议 ### 推荐方向 - **JWT + Session/Refresh Token 组合** ### 原因 - 适合 Web SaaS - 前后端分离支持好 - 后续权限系统扩展方便 ### 当前建议 一期先做: - 登录 - 用户身份校验 - 工作空间边界 高级权限后续再扩。 --- ## 8. 部署建议 ### 推荐方向 - **Docker Compose 起步,后续再升级** ### 原因 - 我们当前团队规模不适合一开始上 Kubernetes - Compose 足够支撑首版和测试环境 - 后续如果规模上来,再考虑更复杂调度 ### 初期部署对象 - Web 前端 - FastAPI 后端 - PostgreSQL - Redis - Worker - Nginx / 反向代理 --- ## 9. 日志与监控建议 ### 一期最小配置 - 应用日志 - 任务日志 - 错误追踪 - 健康检查 - 巡检机器人 ### 后续建议 - Sentry(错误追踪) - Prometheus + Grafana(指标) - Loki / ELK(日志检索,按需要) --- ## 10. 开发规范建议 ### 前端 - TypeScript 强制 - ESLint / Prettier - 组件边界清晰 - 页面逻辑与数据逻辑分离 ### 后端 - 类型标注 - Pydantic / schema 明确 - 分层结构清晰 - 用例层和适配器层分开 ### 测试 - 单元测试 - API 测试 - 任务流关键路径测试 - CI 自动执行 --- ## 11. 当前推荐组合(第一版) ### 推荐首选方案 - **前端**:Next.js + TypeScript + Tailwind + shadcn/ui - **后端**:FastAPI + Python - **数据库**:PostgreSQL - **队列**:Redis + Celery - **存储**:S3/OSS 兼容对象存储 - **部署**:Docker Compose - **监控**:巡检机器人 + 基础日志 + 后续接 Sentry 这是我现在最推荐的首版 SaaS 技术栈。 --- ## 12. 当前阶段结论 对于我们这种“两个人 + AI 工具”的实际情况,最重要的不是用最潮的栈,而是: - 选成熟的 - 选 AI 容易协作的 - 选长期不容易后悔的 - 选和视频任务系统天然契合的 当前推荐方向已经足够支撑下一步: - 正式定义 SaaS 项目目录结构 - 开始搭第一版工程骨架