这两天我看了一个小而完整的项目:NavSphere。
项目在线地址也已经有了:
它不是那种只有一个首页截图能看的"演示型项目",而是一个已经具备完整使用链路的开发者导航站:
如果只看最终界面,会觉得这只是一个"收藏夹网站"。 但从工程角度看,它其实是一个很典型的 AI 时代小型全栈项目样本:
需求不算大,但链路完整,足够检验 Codex 和 Claude Code 到底能不能把一个项目从想法快速推进到可部署状态。
这篇文章就从几个角度来复盘它:
先用一句话概括:
NavSphere 是一个面向开发者和团队内部工具场景的导航站。
它不是单纯展示一堆链接,而是把"公开导航"和"个人私有导航"放在同一个系统里:
研发 / AI工具这类项目非常适合做成一个轻量化内部产品,或者作为个人工作台的入口层。
从仓库来看,NavSphere 的核心技术栈非常清晰:
如果再细分一层,可以看到它是一个标准的 Next.js App Router + Supabase SSR 架构。
项目使用的是 Next.js App Router。 路由结构很直观:
app/page.tsx 负责前台导航首页app/login 负责登录页app/admin 负责后台页面app/auth/callback/route.ts 负责 GitHub OAuth 回调app/api/import 和 app/api/ai-import 负责导入接口前台导航页并不是一个纯静态页面,它会在服务端读取导航数据,然后交给客户端壳组件做交互。
这里有几个做得比较顺手的点:
useDeferredValue 和自定义 debounce 处理搜索IntersectionObserver 跟踪当前可见分类useTransition 处理后台跳转和搜索输入的过渡状态router.prefetch('/admin') 提前预取后台页面也就是说,这不是"能跑就行"的 React 页面,而是已经开始用 React 19 的交互能力去优化体验了。
数据层是 Supabase PostgreSQL。
数据库里只有两张核心表:
categorieslinks另外定义了一个枚举:
link_environment,值为 test 和 prod这个建模很克制,但已经够用:
整个 schema 里还有几个值得注意的细节:
updated_atname 和 description 建了 pg_trgm GIN 索引(created_by, name) 和 (created_by, category_id, name) 做唯一约束这说明作者并不是只想把东西存进去,而是已经考虑到搜索、排序和多用户隔离这些真实使用问题。
这个项目最像"正式产品"的一点,在于它不是前端自己判断权限,而是把权限下沉到了数据库层。
Supabase schema 里启用了 RLS,并且分别定义了:
这一层很关键。
因为很多小项目在早期最容易偷懒的地方,就是权限只做在页面上,数据库其实没有真正拦住。
但 NavSphere 这套写法,已经是比较稳的做法了。
认证采用的是:
Supabase Auth + GitHub OAuth
这套组合非常适合开发者工具项目。
原因也很简单:
项目里当前只保留了 GitHub 登录方式,这其实是对的。
在这类小型项目里,过早支持邮箱、短信、多个 OAuth Provider,往往只会把复杂度抬高,但对早期价值没有明显帮助。
这个项目还有一个很实用的小设计:Chrome 书签导入脚本。
仓库自带 scripts/export-chrome-bookmarks.mjs,可以把本地 Chrome 书签导出成项目可导入的 JSON 格式。
这件事看起来不大,但很有产品意识。
因为导航站最常见的问题不是"系统做不出来",而是:
第一批数据怎么进来。
如果每个人都要手动录入几十上百个链接,系统的可用性会下降很多。 而书签导入脚本一加,迁移成本马上就低了一截。
NavSphere 很适合拿来说明一个问题:
不是所有项目都同样适合 AI 辅助开发。
它之所以适合,是因为它同时满足了几个条件:
仓库的主结构大概是这样:
对 Codex 或 Claude Code 来说,这种项目有几个天然优势:
换句话说,这不是那种需要先读三天历史包袱才能动手的项目。 AI 工具能直接进入高价值区。
从仓库信息看,NavSphere 当前的部署思路很明确:
前端部署在 Vercel,数据和认证放在 Supabase。
当前线上访问地址是:
这是现在做小型 Next.js 全栈项目非常顺手的一套组合。
仓库里已经存在 .vercel/project.json,并且依赖中也接入了:
@vercel/analytics@vercel/speed-insights这基本说明项目已经按 Vercel 的方式在跑了,或者至少已经完成了绑定。
对 Next.js App Router 项目来说,Vercel 的好处非常直接:
部署这个项目时,真正需要先准备好的其实不是 Vercel,而是 Supabase。
最小步骤大概是:
supabase/schema.sql项目当前需要的关键环境变量非常少:
也就是说,它的部署门槛其实不高。
如果我来部署这个项目,我会按这个顺序:
这样做的原因是:
这个项目真正复杂的不是前端构建,而是"登录 + 数据权限 + 数据初始化"这三件事要一次打通。
前端页面本身反而是最好部署的部分。
这部分是我觉得最值得聊的。
从 Git 提交记录看,NavSphere 的时间线非常集中:
2026-04-07 16:222026-04-08 13:0614 次提交如果只看活跃提交窗口,这个项目的主开发期基本就集中在两段时间里:
而从代码变化量看,在首个提交之后又累计发生了:
56 个文件变更6397 行新增757 行删除这个规模说明它不是单纯改个 landing page,而是实打实把一个小型全栈产品骨架补全了。
如果把 Git 时间线、项目范围和实现复杂度放在一起看,我会这样判断:
在 Codex + Claude Code 的帮助下,这个项目做到当前程度,大概率属于 0.5 到 1 人日可以完成的范围。
这里说的不是"上线运营级产品全部完成",而是:
这个版本已经具备了。
如果换成传统纯手工开发,我对这个项目的估算会更接近:
2 到 4 人日因为它虽然不大,但有几类事情其实都挺花时间:
这些事情单个看都不大,但凑在一起很容易把开发时间拉长。
而 AI 工具最擅长的,就是把这些"中等复杂、模式清晰、重复度高"的工作一段段吞掉。
如果让我把这类项目拆成两种 AI 工具的优势,我会这样理解:
Codex 更适合:
Claude Code 更适合:
当然,现实里它们往往不是二选一,而是接力关系:
Claude Code 更像高吞吐的第一轮实现,Codex 更像强执行和强收口的第二轮工程化推进。
这也是为什么现在很多项目做起来,速度会明显比过去快。
这也是很多人最关心的问题。
我的答案是:
人工出力并没有消失,但已经从"大量敲代码"转移成了"做决策、给约束、验结果"。
如果以 NavSphere 这种项目为例,我会把人工出力大致理解成下面几个部分。
比如这些事,仍然非常需要人来定:
这些不是代码生成问题,而是产品决策问题。
AI 可以写出 RLS 策略,但最后最该负责的人还是开发者自己。
尤其是像这种涉及:
这种边界,一定要人工做最终确认。
真正影响项目质量的,往往是这些最后一公里:
这些检查 AI 能辅助,但很难完全替代人工判断。
如果只是问"代码体力劳动"的占比,我会觉得在这类项目里,AI 已经可以吃掉大约 60% 到 80%。
但如果问的是整个项目交付过程里的总出力,我的判断会更保守一点:
人工仍然要承担大约
20% 到 40%的关键工作量。
这些工作主要不是敲代码,而是:
所以今天真正高效的开发方式,不是"AI 全做,人什么都不管",而是:
人负责方向和边界,AI 负责高密度执行。
NavSphere 这个项目有代表性,不是因为它多复杂,而是因为它刚好落在一个很有现实意义的区间里:
这类项目特别适合现在的 AI 编程工具。
因为它既不是过于简单的 demo,也不是充满历史包袱的大型遗留系统。 它属于那种:
AI 能真正把开发速度提升到肉眼可见程度的黄金区间。
如果只看结果,NavSphere 像是一个"普通的导航站项目"。
但如果把它放到开发流程里看,它其实更像一个信号:
现在做一个有登录、有数据库、有后台、有导入、有部署链路的小型全栈应用,真的已经进入了"周末可做完"的阶段。
前提不是 AI 会魔法,而是你要选对项目形态:
当这些条件满足时,Codex 和 Claude Code 这样的工具,确实能把项目推进速度提升到过去很难想象的程度。
而人最重要的价值,也会越来越集中在那几件事上:
这可能才是 AI 开发真正开始成熟的标志。