跳轉到內容
全部文章

一個可以構建其上的基礎。

supastack 背後的思考:共享的基礎設施、清晰的邊界,以及讓你的產品保持自我的空間。

supastack 團隊約 4 分鐘閱讀

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 包。目標是讓這些邊界足夠易懂,使產品能夠配置它們而不必繼承別人的領域模型。

沒有哪一件孤立地看是難的。成本藏在它們的協同裡——必須變成權益的支付、必須變成工作區範圍的會話、必須在合上的筆記本之後存活的任務。產品很少敗在缺一個功能上,它們敗在接縫上。

為什麼值得一次把它建好

主張共享基礎設施,不是說這些活配不上你,而是說這些重複的活值得被認真做一次。在共享模組裡實現好的工作區邊界,能保護建在它之上的每個產品。同樣的邊界若由每個產品臨時拼湊,就會變成一組各有微妙而危險差異的“差不多”。

它還把維護集中起來。供應商 API 會變,認證庫會演進,計費語義會漂移。當這些變化落在一個地方——套件的模組檔案跟著記錄它們——一次修復就能傳播開,而不是每個專案重新學一遍。而當你為單個產品權衡這筆交換時,用腳手架還是從零開始把同樣的推理用在了買與造的決定上。

共享基礎設施也把評審集中了起來。住在同一個地方的邊界可以被狠狠地測一遍——反向用例、重放的事件、跨租戶的嘗試——而不是指望五份重新實現各自都恰好寫對。這也是套件在測試套件上投入的部分原因:在共享程式碼上維持信心,比在每個專案裡重新贏得它便宜。

每個模組只承擔一項職責

身份確定誰在發請求。工作區決定這個人能訪問哪些記錄。計費記錄支付狀態,而許可權回答某項能力是否可用。把這些關注點分開,可以防止一次支付成功的跳轉被當成授權決定。

同樣的紀律適用於後臺任務。共享的 JobRunner 契約只承諾 enqueue、status 與 cancel,工作流行為歸 Trigger.dev 所有。一個小介面的價值在於邊界清晰可見;把重試或排程藏進通用方法只會讓系統更難推理。

Better Auth 回答身份。Postgres 與 Drizzle 保管記錄。Stripe 或 Lemon Squeezy 上報支付狀態。沒有哪個被要求對別的模組的職責抖機靈——接縫窄到可以推理——而一個地基的可信度,至多等於它接縫的可信度。

為產品留出空間

獲客工作流、檔案編輯器與研究助手可以使用相同的身份與計費模組,但它們的記錄、語言與工作流仍然不同。產品專屬邏輯屬於使用方的程式碼庫,通過配置接入基礎。

這種分離也是務實的維護決策。工作區隔離的修復應當可複用;某個產品評估潛在客戶方式的變更,不應成為其他所有產品的新需求。

這就是地基與皮膚的區別。皮膚給你一套可以保留或換掉的外觀。地基給你承重的決定——誰擁有身份、記錄如何劃界、支付在哪裡變成訪問——產品構建於其上,而不是繞著它走。專案結構指南標出了一者結束、另一者開始的位置。

從一條完整流程開始

先跑本地參考流程:登入、檢視許可權、提交任務、讀取結果。fake 與本地介面卡讓確定性測試無需付費供應商請求即可走通這條路徑——五分鐘快速上手端到端地跑了一遍。之後再配置你的產品真正需要的生產整合。

本地驗收與生產驗收回答的是不同問題。通過的本地測試確立的是受控條件下的應用行為;真實的認證持久化、供應商投遞、部署與裝置行為仍需各自的驗證。隨著產品成長,始終保持這種區分可見。

地基的名字是慢慢掙來的:掙在第二個比第一個更快交付的產品裡,掙在只修一個模組而不是五個程式碼庫的維護日里。這就是 supastack 背後的賭注——也是每個模組被要求的及格線。

這套思路背後的問題

這套思路下面墊著幾個問題,值得坦率地回答。

  • supastack 是模板還是框架? —— 一個由模組組成、模組之間靠契約連線的地基。產品程式碼住在 Starter Core 之外,通過配置接入,所以平臺可以更新而不必 fork 你的功能。
  • 共享基礎設施不會讓產品變得千篇一律嗎? —— 共享的只有管道。記錄、工作流和語言都留在產品程式碼庫裡——客戶真正看得到的那些部分仍然是你的。
  • 產品自己的程式碼從哪裡開始? —— 從只有它才有的記錄與工作流開始。地基負責認證使用者、限定資料範圍;它不知道“潛在客戶”是什麼。
  • 為什麼是 monorepo? —— 這樣 Web、移動端和桌面端應用才能和底下的包一起變化:一個型別系統、一道測試關卡、倉庫之間沒有漂移。
  • 如果我只需要 Web 應用呢? —— 你買的是地基;移動端和桌面端是可以採用也可以無視的端面。沒有什麼強迫你釋出不需要的應用。

常見問題

14 個問題

supastack 是什麼?

supastack 是用於構建 AI 驅動 SaaS 產品的模組化基礎。它把通用基礎設施整合在一起,讓你專注於產品專屬的功能。

它支援 Web 和移動端嗎?

支援。supastack 包含 Next.js 與 Expo 應用,作為 Web 與移動端體驗的起點。

包含哪些認證方式?

Better Auth 覆蓋郵箱/密碼、OTP 與社交登入。個人工作區隨賬戶一起開通,產品記錄從第一天起就有邊界。

AI 是如何支援的?

supastack 包含可配置的多供應商 AI、用量追蹤、預算,以及加密的自帶金鑰(BYOK)支援。

訂閱如何處理?

對於基於該套件構建的產品,Stripe 計費、訂閱與許可權構成付費訪問的基礎。供應商金鑰僅存於服務端。

我的產品專屬程式碼放在哪裡?

產品專屬功能保留在獨立的程式碼庫中,產品通過配置接入 supastack 的基礎模組。

supastack 如何定價?

套件為一次性購買、終身更新:單棧 249 美元(Next.js(Web)、Expo(iOS 與 Android)、Tauri(macOS 與 Windows 桌面)倉庫任選其一),雙棧 398 美元(任選兩個倉庫),或完整套裝 399 美元(全部三個倉庫與完整 monorepo),每個額外開發者席位 75 美元。套件本身沒有訂閱。本站結賬後通過郵件傳送許可證金鑰,倉庫訪問通過 GitHub 邀請授予。

工作區如何界定我的資料?

使用者記錄按 workspaceId 劃定邊界。身份、許可權、AI 用量、計費事件與審計條目都留在個人工作區邊界內。

後臺任務如何工作?

Trigger.dev 是明確的任務執行時。JobRunner 契約只承諾 enqueue、status 與 cancel——工作流語義保持 Trigger.dev 專有且顯式。

郵件與營銷觸達有何不同?

事務性郵件覆蓋產品工作流,如任務完成通知。冷觸達與營銷活動屬於產品自身的範疇,不在本套件的郵件模組內。

移動端購買如何運作?

移動端已支援 RevenueCat 原生購買和恢復購買,訪問許可權由服務端驗證。釋出前需配置商店賬戶並完成裝置測試。Web 計費保持獨立。

AI 供應商金鑰存放在哪裡?

自帶金鑰憑證經過加密且僅存於服務端。金鑰在日誌中被脫敏;用量與預算在工作區級別保持可見。

結賬支援哪些付款方式?

Stripe 託管結賬接受銀行卡,在 Stripe 賬戶啟用後還可提供支付寶與微信支付——方便中國買家。錢包授權為非同步確認,付款完成後許可證頁面會立即更新。

我能申請退款嗎?

獲得程式碼倉庫訪問許可權後,supastack 將永久歸你所有,因此無法退款。但請放心,你將獲得包含終身更新的完整原始碼,可為你自己或客戶構建併發布無限數量的產品。你只需注意不能轉賣程式碼,也不能將倉庫作為啟動模板二次分發。唯一的例外是上線返現——上線一款用 supastack 打造的真實產品並公開分享,在購買後 60 天內達到 5,000 次自然瀏覽或 50 個自然按讚,即可退還已付款項的 50%;詳見條款。

TW