"能跑就别动" 是独立开发者的生存法则. Django 还在跑, Next.js 是新项目的选择, 两者并存
技术栈迁移是独立开发者最容易掉进去的坑之一. 这篇聊的就是我从 Django 全栈逐步转向 Next.js 的过程: 为什么迁, 怎么迁, 以及为什么没有彻底迁完.
背景: Django 时代
StellarView 是我最早的项目, 一个用 Django 搭建的管理后台. Django Admin 开箱即用, 不需要写前端就能有完整的管理界面. 对于一个 "只有自己用" 的后台, Django 是最高效的选择.
转折点: 面向用户的产品
StellarMail 需要漂亮的前端, 实时更新, Stripe/Supabase 集成, Vercel 一键部署. 这些让 Django 的局限性暴露出来:
- 前端体验: Django 模板引擎做复杂交互很痛苦
- 前后端分离: Django REST Framework + React = 两套框架各做一半
- 生态趋势: 2024 年独立开发者生态已完全倒向 React/Next.js + Supabase
- 部署: Vercel 一键部署 vs Django 的 Gunicorn + Nginx
迁移策略: 新建而不是重写
StellarView (Django) 还在跑, 我没有重写它的计划:
- 机会成本: 重写 2-3 周, 不创造新价值
- "能跑就别动": 稳定运行, 没有 bug, 没有重写的理由
- 渐进替代: 新需求用新技术栈, 旧系统自然退役
策略: 新项目 → Next.js 14 + Supabase + Vercel. 旧项目 → 保持 Django.
Django 保留的价值
- Admin 后台无可替代: 管理数据 10 分钟搞定, Next.js 可能需要 2 天
- Python 生态: 数据分析, ML, 爬虫, 脚本自动化
- ORM 成熟度: migration 系统, QuerySet API 比 Prisma/Drizzle 成熟
决策框架
- 有面向用户的前端? → Next.js + Supabase + Vercel
- 只是内部工具? → Django Admin
- 核心逻辑是 Python? → Python 项目, 需要 Web 再加 Django
- 需要多快上线? → 原型用 Next.js, 内部工具用 Django
给犹豫者的建议
- 不要重写正在运行的项目
- 新项目用新技术栈试水
- 迁移的唯一正确理由是 "新栈能让我更快交付价值"
- 两个栈并存是完全正常的
- 技术栈是手段, 不是目的