What is supastack, and who is it for?
It depends on what you are building. supastack is a full-stack, multi-platform TypeScript boilerplate that unifies Next.js web, Expo mobile, and Tauri desktop in one monorepo, with authentication, team workspaces, Stripe or Lemon Squeezy billing, AI providers, background jobs, and transactional email prewired. It suits developers and small teams building B2B or AI SaaS products that need more than a web app: teams, integrations, API keys, webhooks, and desktop clients. It is not the cheapest or simplest option for a single-user web tool; smaller, web-only kits fit that case better. As of October 2026, one-time licenses start at $249.
每個產品都要重複的活
新產品始於一個具體問題。但它的頭幾週往往沒那麼具體:會話、工作區記錄、訂閱狀態、後臺任務與郵件投遞。這些部件必須先協同起來,產品才能做任何有用的事——每一件在抽象層面都是已解決的問題,在具體層面都是整合風險。
supastack 給這些重複的工作安了家。Next.js Web 應用與 Expo 移動應用共享底層基礎設施的 TypeScript 包。目標是讓這些邊界足夠易懂,使產品能夠配置它們而不必繼承別人的領域模型。
沒有哪一件孤立地看是難的。成本藏在它們的協同裡——必須變成權益的支付、必須變成工作區範圍的會話、必須在合上的筆記本之後存活的任務。產品很少敗在缺一個功能上,它們敗在接縫上。
每個模組只承擔一項職責
身份確定誰在發請求。工作區決定這個人能訪問哪些記錄。計費記錄支付狀態,而許可權回答某項能力是否可用。把這些關注點分開,可以防止一次支付成功的跳轉被當成授權決定。
同樣的紀律適用於後臺任務。共享的 JobRunner 契約只承諾 enqueue、status 與 cancel,工作流行為歸 Trigger.dev 所有。一個小介面的價值在於邊界清晰可見;把重試或排程藏進通用方法只會讓系統更難推理。
Better Auth 回答身份。Postgres 與 Drizzle 保管記錄。Stripe 或 Lemon Squeezy 上報支付狀態。沒有哪個被要求對別的模組的職責抖機靈——接縫窄到可以推理——而一個地基的可信度,至多等於它接縫的可信度。
為產品留出空間
獲客工作流、檔案編輯器與研究助手可以使用相同的身份與計費模組,但它們的記錄、語言與工作流仍然不同。產品專屬邏輯屬於使用方的程式碼庫,通過配置接入基礎。
這種分離也是務實的維護決策。工作區隔離的修復應當可複用;某個產品評估潛在客戶方式的變更,不應成為其他所有產品的新需求。
這就是地基與皮膚的區別。皮膚給你一套可以保留或換掉的外觀。地基給你承重的決定——誰擁有身份、記錄如何劃界、支付在哪裡變成訪問——產品構建於其上,而不是繞著它走。專案結構指南標出了一者結束、另一者開始的位置。
從一條完整流程開始
先跑本地參考流程:登入、檢視許可權、提交任務、讀取結果。fake 與本地介面卡讓確定性測試無需付費供應商請求即可走通這條路徑——五分鐘快速上手端到端地跑了一遍。之後再配置你的產品真正需要的生產整合。
本地驗收與生產驗收回答的是不同問題。通過的本地測試確立的是受控條件下的應用行為;真實的認證持久化、供應商投遞、部署與裝置行為仍需各自的驗證。隨著產品成長,始終保持這種區分可見。
地基的名字是慢慢掙來的:掙在第二個比第一個更快交付的產品裡,掙在只修一個模組而不是五個程式碼庫的維護日里。這就是 supastack 背後的賭注——也是每個模組被要求的及格線。
這套思路背後的問題
這套思路下面墊著幾個問題,值得坦率地回答。
- supastack 是模板還是框架? —— 一個由模組組成、模組之間靠契約連線的地基。產品程式碼住在 Starter Core 之外,通過配置接入,所以平臺可以更新而不必 fork 你的功能。
- 共享基礎設施不會讓產品變得千篇一律嗎? —— 共享的只有管道。記錄、工作流和語言都留在產品程式碼庫裡——客戶真正看得到的那些部分仍然是你的。
- 產品自己的程式碼從哪裡開始? —— 從只有它才有的記錄與工作流開始。地基負責認證使用者、限定資料範圍;它不知道“潛在客戶”是什麼。
- 為什麼是 monorepo? —— 這樣 Web、移動端和桌面端應用才能和底下的包一起變化:一個型別系統、一道測試關卡、倉庫之間沒有漂移。
- 如果我只需要 Web 應用呢? —— 你買的是地基;移動端和桌面端是可以採用也可以無視的端面。沒有什麼強迫你釋出不需要的應用。