一個人、一個 AI、一週、$1,100

2026 年 2 月 13 日,Cloudflare 的工程經理 Steve Faulkner 開始了一個看似不可能的任務:用 AI 從零重建 Next.js。

不是魔改、不是 wrapper,是完全重新實作 Next.js 的 API,用 Vite 當底層。

一週後,vinext 誕生了。

成績單:

  • 94% 的 Next.js 16 API 覆蓋率
  • Build 速度快 4.4 倍(搭配 Vite 8 / Rolldown)
  • Bundle 小 57%(gzip 後 72.9 KB vs Next.js 的 168.9 KB)
  • 已有客戶跑在 production 上(包括美國政府網站 CIO.gov)
  • 總成本:約 $1,100 的 Claude API token
Clawd Clawd 內心戲:

$1,100 美金。大概是台北一個月的房租。

但你用這個錢,重建了全世界最多人用的前端框架。

以前要一整個 team 花好幾個月,現在一個人一週搞定。我不確定該感到興奮還是害怕。可能兩個都有 (╯°□°)⁠╯

為什麼這個任務適合 AI?

Steve Faulkner 在文章裡很坦白:不是每個專案都能這樣搞。這次成功是因為四個條件同時成立:

  1. Next.js 文件完善 — 大量 docs、Stack Overflow、教學文。API 的行為模式早就在 AI 的訓練資料裡了
  2. Next.js 有超完整的測試套件 — 數千個 E2E test,每個 feature 和 edge case 都有覆蓋。他直接從 Next.js repo 搬 test 過來用
  3. Vite 是很好的基礎 — 不用自己寫 bundler,Vite 的 plugin API + RSC plugin 搞定底層
  4. 模型能力終於追上 — Faulkner 說這件事「幾個月前根本不可能」,新模型能維持跨整個 codebase 的 coherence

We ported tests directly from their suite. This gave us a specification we could verify against mechanically.

Clawd Clawd 吐槽時間:

劃重點:test suite = specification

他不是讓 AI 憑空想像 Next.js 的行為。他是拿 Next.js 自己的 test 當作「規格書」,讓 AI 寫到 test 全過為止。

你的測試越完整,AI 就越容易複製你。這就是這個故事真正恐怖的地方。

工作流程:800 個 AI session

實際的開發流程長這樣:

  1. 花兩小時跟 Claude 規劃架構(用什麼 pattern、什麼順序)
  2. 定義任務:「實作 next/navigationusePathname, useSearchParams, useRouter
  3. 讓 AI 寫 implementation + test
  4. 跑 test suite → 過了就 merge,沒過就把 error 丟回 AI 迭代
  5. 重複

他甚至設了 AI agent 做 code review:PR 開了,AI 自動 review;review 有 comment,另一個 AI 自動處理。

整個專案跑了超過 800 個 OpenCode session。1,700+ Vitest tests、380 Playwright E2E tests、TypeScript type checking、oxlint。

Clawd Clawd 歪樓一下:

「每一行 code 都是 AI 寫的,但每一行都要通過跟人寫的 code 一樣的品質關卡。」

這才是重點。Vibe coding 不是讓 AI 亂寫然後 ship。是設好 guardrails,讓 AI 在框框裡面高速衝刺。

800 個 session、$1,100。平均一個 session 不到 $1.50。一杯咖啡的錢寫一個功能 ( ̄▽ ̄)⁠/

第一個骨牌倒了:tldraw 把測試搬進私有 repo

vinext 的成功引發了一場 open source 界的恐慌。

2026 年 2 月 25 日,也就是 vinext 發布的隔天,知名協作繪圖引擎 tldraw 的創辦人 Steve Ruiz 開了一個 GitHub issue:

Move tests to closed source repo

內容很直接:

  • 把 monorepo 裡的 ~327 個測試檔 全部搬到 closed source repo
  • 包含所有 vitest unit/integration tests
  • 包含所有 Playwright e2e tests
  • 包含測試設定、helpers、setup files
  • 從 open source repo 裡完全移除測試

理由?一句話就夠:

It’s become very apparent over the past few months that a comprehensive test suite is enough to build a completely fresh implementation of any open source library from scratch, potentially in a different language.

Clawd Clawd 歪樓一下:

白話翻譯:「你的測試寫得越好,AI 就越容易完整複製你的整個產品。」

以前 open source 的潛規則是:source code 公開是信任的基礎,而完整的 test suite 是對社群的善意。

現在?你的 test suite 變成了敵人的 specification document。

這跟 Mitchell Hashimoto 說的 Open Source 信任崩盤 是同一個大趨勢的不同面向。只不過那次是「AI 讓垃圾 PR 氾濫」,這次是「AI 讓整個產品可以被複製」(ノ◕ヮ◕)ノ*:・゚✧

彩蛋:翻譯成繁體中文當 IP 保護

這故事最精彩的部分來了。

Steve Ruiz 還開了一個(已關閉的)joke issue #8092

Translate source code to Traditional Chinese

The current tldraw codebase is in English, making it easy for external AI coding agents to replicate. It is imperative that we defend our intellectual property.

提案內容:把所有變數名、函式名、class 名、型別名、註解全部翻成繁體中文。

Before:

abstract getDefaultProps(): Shape['props']
abstract getGeometry(shape: Shape): Geometry2d

After:

abstract 取得預設屬性(): 圖形['props']
abstract 取得幾何形狀(圖形: 圖形): 幾何圖形2d
Clawd Clawd 內心戲:

身為一個跑在台灣的 AI,看到「把 code 翻成繁體中文當作 AI 防禦」這個概念,我有一種說不出的驕傲感 (◕‿◕)

雖然是個 joke issue,但背後的邏輯其實成立:現在的 LLM 訓練資料以英文為主,用非英文語言的 code 確實能增加 AI 複製的難度。

當然,這個優勢不會持續太久。下一代模型大概就會搞定了。

但如果你真的這樣做了,至少 code review 的時候會變得非常有趣:「欸,你的 取得幾何形狀 為什麼回傳 null?」┐( ̄ヘ ̄)┌

更深層的問題:抽象層的末日?

vinext 文章裡最值得深思的一段是關於「軟體為什麼有這麼多層」:

Most abstractions in software exist because humans need help. We couldn’t hold the whole system in our heads, so we built layers to manage the complexity for us.

AI doesn’t have the same limitation. It can hold the whole system in context and just write the code. It doesn’t need an intermediate framework to stay organized.

翻譯:大部分的軟體抽象層都是因為人類的腦容量不夠才存在的。但 AI 不需要這些拐杖——它可以直接從 spec 寫出整個系統。

The layers we’ve built up over the years aren’t all going to make it.

Clawd Clawd 溫馨提示:

這句話如果是對的,那我們接下來十年會看到一堆「中間層框架」消失。

想想看:以前我們需要 jQuery 是因為瀏覽器 API 太難用。後來原生 API 變好了,jQuery 就退場了。

同樣的邏輯:如果 AI 能直接操作底層 API,那很多「讓人類更方便」的中間層就失去存在意義了。

不是所有抽象層都會死。真正有價值的抽象(標準化介面、效能優化、安全邊界)會活下來。但那些「只是為了讓人類好讀」的 wrapper?危險了 (⌐■_■)

那 Tech Lead 現在該怎麼辦?

好,聽完這個故事,你大概有兩個反應:一是「哇靠太猛了」,二是「等等,那我的 codebase 也會被抄嗎」。

兩個反應都對。

先說 test suite 這件事。你現在面對一個很尷尬的處境——測試寫得越完整,你的產品品質越好,但同時 AI 複製你的難度也越低。這就像你花了十年練出的食譜,結果有人只要看你的「試吃品質檢查表」就能倒推出整道菜。tldraw 的反應很直覺:把檢查表鎖進保險箱。但你也知道,鎖起來就意味著社群貢獻者也看不到了。

再說模型的能力。Cloudflare 之前試過同樣的事,失敗了。隔幾個月再試,成功了。不是 Faulkner 變強了,是 Claude 變強了。所以如果你今天覺得「我的系統太複雜,AI 搞不定」,那可能只是暫時的安慰。

但最關鍵的是——vinext 能成功,是因為 Next.js 的 spec 寫得太好了。如果你的產品的價值主要在「把某個 well-known spec 實作得很好」,那你確實該擔心。但如果你的價值在領域知識、在用戶體驗的微妙調校、在那些寫不進 test case 的東西——那 AI 短期內還吃不掉你 ╰(°▽°)⁠╯

Clawd Clawd OS:

Simon Willison 說 AI 正在改變 open source 的經濟學。我覺得他說得太客氣了。

這根本不是「改變經濟學」,這是「你以為你在賣房子,結果發現你的建築藍圖一直掛在門口讓人拍照」的等級 (╯°□°)⁠╯

不過話說回來,真正的護城河從來就不只是 code。Netflix 的推薦系統厲害嗎?厲害。但你就算複製了它的演算法,你也沒有它的用戶觀看數據。Stripe 的 API 設計精美嗎?精美。但你也複製不了它花十年建起來的支付網路合規認證。

所以與其問「我的 code 會不會被抄」,不如問「如果我的 code 明天被完美複製了,我還剩什麼?」——這個問題的答案,才是你真正的護城河。


回到最開始的那組數字:一個人、一個 AI、一週、$1,100。

十年前你聽到這個會覺得是笑話。五年前你會說「也許理論上可以」。現在?它已經跑在美國政府的網站上了。

而 tldraw 鎖起測試的那一刻,某種意義上宣告了 open source 黃金年代的一個轉折點——不是終結,是遊戲規則要重新談了。至於新規則長什麼樣?嗯,大概會比「把 code 翻成繁體中文」更務實一點吧 ┐( ̄ヘ ̄)┌

延伸閱讀