加入 Clerk 成為 OSS 研究員致力於 Zod 4
我很高興宣佈我是 Clerk's OSS 獎學金的首位獲得者!這項獎學金有點像「暑期實習」——Clerk 支付我全職工資(相當於入門級軟件工程師),讓我在 2024 年整個夏天全職研究 Zod。
就我自己的職業道路和 Zod 的發展而言,這是一個完美的安排,我非常感謝 Clerk 願意嘗試一些替代的 OSS 資助安排。
讓我們看看這裡的一些背景。
即將推出:Zod 4
Zod 的當前主要版本 (v3) 於 2021 年發佈。在結構和實現代碼方面,我在 Zod 3 中做對了很多事情。代碼庫足夠靈活,支持了 23(!) 個次要版本,每個版本都有新功能和增強,並且沒有對公共 API 進行重大更改。
但是,有一些反覆出現的 DX(開發者體驗)小問題需要結構性更改才能解決,這將涉及重大更改。(值得注意的是,大多數 Zod 用戶不會受到影響,但 Zod 生態系統中的許多庫依賴於內部 API,將需要更新。)
- 為了簡化代碼庫並啟用更輕鬆的代碼生成工具,
ZodType的一些子類將被拆分或合併。 - 為了提高性能,(半)內部
_parse方法的簽名將被更改。任何用戶定義的ZodType子類都需要相應更新。 - 為了清理自動完成,一些內部方法和屬性將變為
protected。一些當前的 API 將被棄用;一些已棄用的 API 將被刪除。 - 為了改進錯誤報告,我將簡化 Zod 的錯誤映射系統。新系統也將更適合國際化(RFC 即將推出)。
- 為了啟用
exactOptionalPropertyTypes語義,ZodObject中用於確定鍵可選性的邏輯將發生變化。根據tsconfig.json中exactOptionalPropertyTypes的值,一些推斷類型可能會發生變化(RFC 即將推出)。 - 為了提高 TypeScript 服務器性能,一些泛型類簽名(例如
ZodUnion)將被更改或簡化。其他類型實用程序將為了效率而重新實現,但在某些情況下可能會導致行為略有不同。
總而言之,Zod 4 將是對該庫的全新重寫,對典型用戶幾乎沒有重大更改,速度顯著提高,內部結構更簡單,並且有一大批新功能。
Zod 目前的資助故事
Zod 擁有 許多慷慨的捐贈者,並且可能是同類中最受贊助的 TypeScript 實用程序庫之一。目前,這相當於每月略高於 2600 美元。我很感謝這種程度的支持,這遠遠超出了我第一次設置 GitHub Sponsors 簡介時的預期。
但是,儘管對所有支持 Zod 的人和公司充滿愛和感激,這還遠遠不能取代在美國的全職工資。
今年早些時候我離開了 Bun,花了幾個月的時間旅行,學習新事物,並從倦怠中恢復過來。從四月份開始,我花了了大約 6 週的時間合併 PR 並修復問題,最終發佈了 Zod 3.23(最後一個 3.x 版本)。我花了最近一個月左右的時間規劃 Zod 4。
根據我的估計,大約還需要三個月的全職工作才能完成重寫,並負責任地將新版本推廣到 Zod 現在龐大的用戶群和第三方生態系統庫中。能做所有這些工作我感到非常興奮,但沒有收入的時間太長了。
所以我聯繫了幾家公司,提出了一個實驗性建議:一個「OSS 孵化器」,公司將贊助 Zod 的開發 12 週(我發佈 Zod 4 的時間表)。在這個預定的窗口期間,我會得到一些合理的工資,而該公司將成為 Zod 的主要贊助人。公司的成本是預先知道的,因為一切都是有期限的;這就像孵化器或實習。
Clerk 獎學金
令我高興的是,來自 Clerk 的 Colin(也就是「另一個 Colin」)熱情地加入了。我長期以來一直欽佩 Clerk 的產品、對開發者體驗的關注以及對開源的承諾。事實上,我在 2021 年 2 月他們在 HN 上發佈的那一天就在我的播客中報道了他們。他們已經贊助 Auth.js(以前的 NextAuth)一段時間了,並且立即願意討論潛在「獎學金」的條款。
作為對支持的交換,Clerk 獲得了 Zod 其他贊助商已經獲得的福利的增強版:
- README 和文檔中的鑽石級位置 💎 大標誌。很大。巨大。
- 在獎學金期間更新我的 Twitter 簡介,以反映我作為 Clerk OSS 研究員的新職位 💅
- 在即將發佈的 Zod 4 RFC(徵求意見稿)中提及。從歷史上看,Zod 的 RFC 吸引了 TypeScript 社區(或者至少是 TypeScript Twitter)的大量關注和反饋。這是一個向(實際上)付錢讓我實現這些新功能的公司大聲疾呼的絕佳場所。
- Zod 新文檔網站側邊欄底部的一個小廣告(目前正在建設中)。您可以在 Auth.js 文檔中看到這可能的樣子。
- 為了在 Zod 4 發佈後保持連續性,Clerk 獲得了為期 6 個月的新的持續「鑽石級」贊助商席位的「優先購買權」(優先拒絕權)。這個想法是這是一個獨家的「席位」——一次只能有一家公司擁有它。該層級的福利包括大的 README 標誌和側邊欄廣告位置。
- 這篇公告文章!是的,你一直在閱讀營銷材料。抓到你了。
OSS、資助模式和嘗試新事物
這種模式代表了傳統贊助模式與 Vercel 等公司對 Rich Harris/Svelte 採取的「駐地維護者」方法之間有趣的折衷方案。Zod 不需要永久的全職維護者(實際上,我不介意……🙄),但它確實需要全職關注才能將這個主要版本推向市場。
這項獎學金是彌合這一差距的一種方式。總而言之,我非常高興能在 Clerk 找到一個有興趣嘗試類似事情的合作夥伴。
我鼓勵其他公司嘗試類似的事情!不缺那些擁有全職(或接近全職)維護者的寶貴庫,他們放棄了固定收入來構建免費工具。ArkType、Valibot 和 tRPC 浮現在腦海中。
所以如果你最近要構建一個應用程序,聰明點——驗證你的 Request 主體(或者,呃,Server Action 參數?)並且不要自己編寫身份驗證。

