綜合實戰:兩週上線覆盤與迭代
五堂課下來,你有題目、有技術棧、有登入、有金流、有 AI 功能、有獲客策略。理論上,這些湊在一起就是一個產品。但大多數人在這裡卡住了——不是因為不懂,而是不知道「先做哪個」、「今天該做到哪裡」、「出了問題先修還是先繼續前進」。
這就是綜合實戰課要解決的問題。我們不再說「你應該做 X」,而是直接開一份日曆:D1 到 D14,每天做什麼、交出什麼成果、卡住了怎麼辦。上線之後,迭代節奏是什麼、成本怎麼試算、什麼時候該認賠放棄。都在這堂課。
這堂學什麼
- D1-D14 完整每日時間軸:兩週從零到上線的實際節奏,每天的可交付成果
- 上線後迭代週期:怎麼把用戶回饋變成下一版的具體修改方向
- 成本 vs 收入試算:幾個付費用戶才能打平,API 費用怎麼估
- 誠實的放棄標準:三個時間點判斷是繼續、轉向還是收工
- 六個最致命的常見坑,含具體錯誤訊息與逐步解法
- 規模化下一步:從第一個付費用戶走到前 100 個的工具清單
D1-D14:兩週上線時間軸

兩週不是「隨意試試」的期限,是「刻意壓縮」的紀律。時間一拉長,功能範圍就會膨脹——你會在 D7 還在糾結某個 UI 細節,然後在 D14 還沒上線。以下時間軸是實際可行的最小路徑:每天的目標是「能跑通的東西」,不是「完美的東西」。
D1:選題確認 + 環境建好
上午用不超過半天確認你要做的題目。回到第 1 課的驗證框架,用一句話寫出來:
誰有什麼問題 → 我用 AI 幫他做什麼 → 他願意付多少錢/月?
這句話寫不出來,D2 就別開始。寫得出來,下午開環境:
# 建 Next.js 專案(App Router + TypeScript + Tailwind)
npx create-next-app@latest my-saas --typescript --tailwind --app
cd my-saas
# 安裝 Supabase client
npm install @supabase/supabase-js @supabase/ssr
# 安裝 Anthropic SDK
npm install @anthropic-ai/sdk
建好後立刻 git init + 第一次 commit。今天的 deliverable:本機跑得起來、git 有第一筆紀錄、選題那句話貼進 README。
D2-D3:核心 AI 功能跑通
第 4 課教過:AI 功能先做最醜的版本驗它能不能用,再做漂亮的 UI。D2 先把它做成 API route:
// app/api/core/route.ts
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
export async function POST(req: Request) {
const { userInput } = await req.json();
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024, // 先設低一點,避免費用暴衝
messages: [
{
role: "user",
content: `你的 system prompt 在這裡\n\n用戶輸入: ${userInput}`,
},
],
});
return Response.json({ result: message.content[0] });
}
用 curl 打這個 API,確認輸出符合預期。D3 再接簡單的輸入框 UI——一個 textarea + 送出按鈕,能讓你自己操作就好。
D3 結束的標準:你自己能完整用過一次核心功能,而且輸出是你期望的結果。
D4:串登入 + 權限守門
第 3 課的 Supabase Auth 在這天接上去。重點不只是「登入成功」,還要確認未登入者打不到核心 API。用 Next.js middleware 在入口把關:
// middleware.ts
import { createServerClient } from "@supabase/ssr";
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
export async function middleware(request: NextRequest) {
const response = NextResponse.next();
const supabase = createServerClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
{ cookies: { /* cookie handlers */ } }
);
const { data: { session } } = await supabase.auth.getSession();
// 核心功能路徑,未登入就擋回去
if (!session && request.nextUrl.pathname.startsWith("/api/core")) {
return NextResponse.json({ error: "請先登入" }, { status: 401 });
}
return response;
}
export const config = {
matcher: ["/api/core/:path*", "/dashboard/:path*"],
};
今天的 deliverable:用測試帳號登入後可用 AI 功能;未登入打 API 收到 401。
D5:串金流(重要:不要留到最後)
很多人把金流留到 D13,結果上線時才發現審核要 1-2 週,這是整個時間軸最常見的致命踩坑(詳見常見坑第 1 條)。D5 就把申請送出去,同時用測試環境把付款流程跑通。
台灣市場 2026 年的主要選擇:
| 金流商 | 信用卡手續費 | 月費 | 台幣直撥帳戶 |
|---|---|---|---|
| 藍新 (NewebPay) | 約 2.8% | 無 | 支援 |
| 綠界 (ECPay) | 約 2.875% | 無 | 支援(永豐免手續費) |
| Stripe | 2.9% + $0.30/筆 | 無 | 需美國公司 |
Stripe 目前(2026 年 7 月)仍不直接支援台灣本地公司開戶;想用 Stripe 必須先在美國設立公司。用台灣公司做台灣市場,選藍新或綠界。
今天的 deliverable:金流申請送出 + 測試環境付款成功並收到 webhook 通知。
D6-D7:UI 完善 + 全流程通測
D6 把 UI 做到「夠用的醜」:有登入頁、有核心功能頁、有定價頁(哪怕只有一個方案)。
D6 結束後,跑完整付費路徑測試,用一個新的 Incognito 視窗從頭走一遍:
開 Incognito → 首頁 → 點「開始使用」→ 建帳號 → 選方案
→ 付款(測試卡號) → 解鎖功能 → 用一次核心 AI 功能
→ 登出 → 重新登入確認還是付費用戶
這整條路要親自走一遍,任何一個環節卡住就是 D7 修的事。D7 是緩衝日,不要在 D7 加新功能——只修 D6 測出來的問題。
兩個日子的判斷邏輯:D7 結束時功能不夠完美沒關係,但「完整付費路徑能跑通」是不可妥協的底線。
D8:部署上線
第 5 課的 Vercel 部署流程在這天執行。部署前的核對清單:
□ .env.local 的每個變數都填進 Vercel Environment Variables
□ 生產環境的 Supabase URL 和 anon key 是正式專案(不是測試)
□ 藍新/綠界的 webhook URL 改成正式 domain
□ 本機先跑 npm run build,過了再 push
□ 用真實手機、不同網路測試正式網址
□ 用真實信用卡(自己的)完成一筆小額付款確認金流正常
最後一項非常重要——測試環境通不代表正式環境通,金流商的正式環境和沙盒有時設定不同。花 NT$1 確認它能跑,比上線後收到用戶投訴更值。
D9:Landing Page
第 5 課的獲客策略在這天落地。Landing Page 的最小結構:
- Hero:一句話說清楚這個產品幫誰解決什麼問題
- Features:3 個核心功能截圖或示意圖
- Pricing:定價(就算只有一個方案)
- FAQ:3-5 條常見問題
Landing Page 不需要漂亮,需要「清楚」。怎麼測試夠不夠清楚:找一個完全不知道你在做什麼的人,給他 10 秒看首頁,問他「你覺得這個產品在幫誰解決什麼問題?」答得出來就夠了。
D10-D11:邀測 + 首批回饋
邀 5 個你信任但不會濫好人的朋友測試。給他們一個具體任務,而不是一句「幫我試試看」:
任務說明:
你是一個需要[核心使用情境]的人。
請嘗試用這個產品完成[具體目標]。
用完後告訴我:
① 哪個地方讓你困惑或卡住?
② 你覺得最有用的功能是哪個?
③ 如果月費是 [你的定價],你會付嗎?
D11 整理回饋,只挑最高頻的 1-2 個問題修,其他先記下來。不要試圖一次全修——兩週能做到的事是有限的,選最痛的先動。
D12-D14:公開發布 + 觀察
D12 選一個你日常就在的社群發布:PTT 創業板、Dcard 職場板、LinkedIn、相關的 Discord 或 Slack 社群。不要寫廣告文——說你在做什麼、為什麼做、目前的狀態是什麼,附上連結。誠實的故事比行銷文案更有轉換率。
D13-D14 不要急著加功能。觀察三個數字:
點進首頁的人數 → 完成註冊的人數 → 付款的人數
這三個數字之間的掉落比例最能告訴你問題在哪。掉在「首頁→註冊」代表 Landing Page 沒說清楚;掉在「註冊→付款」代表定價或功能說服力不夠。D14 結束,你有第一批資料可以驅動下一個迭代。
上線後迭代節奏
上線不是終點,是「開始有真實資料可以做決策」的起點。推薦的迭代節奏是每兩週一個週期:

值得做的回饋類型:
- 3 個以上用戶獨立提出相同問題
- 影響付費流程或核心功能的 bug
- 流失用戶說「我因為 XXX 停用了」
先放著的回饋類型:
- 只有一個人提的「如果能加 XXX 就好了」
- 功能擴充請求(不是 bug)
- 涉及大改架構的建議——在前 100 個付費用戶之前,讓現有功能更穩比加新功能更重要
回饋收集工具不需要複雜:在產品裡加一個最簡單的入口就夠了——一個 textarea 加送出按鈕,資料存進 Supabase 或寄到你的信箱。前 50 個用戶的回饋你應該逐字讀,不需要分析工具。
成本與收入試算

以下是 2026 年 7 月的實際數字:
| 費用項目 | 月費 | 備註 |
|---|---|---|
| Vercel Pro | $20 USD/人 | 商業用途必須升 Pro,Hobby 不能跑正式生意 |
| Supabase Pro | $25 USD/月 | Free tier 足夠 ≤50 MAU,但有 project paused 陷阱 |
| Claude Sonnet 4.6 API | 約 $3/百萬 input token | 每用戶每月 100 次呼叫,每次 500 token ≈ $0.15/人 |
| 藍新/綠界手續費 | 約 2.8%/筆 | 無月費,按收款金額計 |
| 網域 | ~NT$500/年 | 摺算約 NT$42/月 |
損益平衡試算範例(月訂閱 NT$299/人):
固定成本:Vercel $20 + Supabase $25 ≈ NT$1,440/月
每人 API 成本:100 次 × 500 token × $3/百萬 ≈ NT$4.5/人
每筆手續費:NT$299 × 2.8% ≈ NT$8.4/人
每人淨利:NT$299 - NT$4.5 - NT$8.4 ≈ NT$286/人
損益平衡:NT$1,440 ÷ NT$286 ≈ 6 人
6 個付費用戶就能覆蓋固定成本,這是 AI SaaS 的優勢:邊際成本低,做到收入>固定成本的門檻並不高。但要注意 API 費用是完全跟用量走的——第 4 課的 token 控管在這裡直接影響利潤率。有用戶狂用但你的 prompt 沒設 max_tokens,一個月的 API 費用可以把好幾個月的利潤吃掉。
何時該放棄或轉向
這是整堂課最難寫、也最重要的一節。創業課通常不說這個,但如果不說,你只能靠「感覺」決定繼續還是放棄——而感覺通常告訴你「再撐一個月」,直到你把熱情燒完。以下是三個誠實的時間點判斷:

D14(上線兩週): 你邀了 5 個朋友測試,這 5 個人裡如果沒有任何一個完成付款——哪怕是朋友支持你——是非常強的訊號。不代表立刻放棄,而是「問題描述或定價有根本問題」。這時候要做的是回到第 1 課重新驗假設,而不是加功能。
第 6 週: 如果有人付費,但 6 週後沒有人續費(或大多數人要求退款),問題通常不在行銷,在產品核心——它解決的問題沒有嚴重到讓人願意持續付錢。這個訊號比「沒人付錢」更難面對,因為你知道問題出在核心假設,要改就要大改。
第 3 個月: 根據 2026 年 ChartMogul 的資料,月費低於 $50 USD 的 AI 工具年度毛收入留存率(GRR)只有 23%——大量「AI 觀光客」嘗試一個月後離開。如果 3 個月後 MRR 還是零,且沒有任何回饋告訴你「我想用但是 XXX 讓我沒辦法繼續」,就是認真考慮放棄的時候。
放棄不等於失敗。 一個做完、上線、有真實用戶回饋的產品讓你學到的,遠比另開十個沒做完的多。帶著這次做出來的東西去找工作、接案、或繼續下一個想法——這本身就是一個很強的作品集。
常見坑總整理
坑 1:金流審核比你預期晚兩週
症狀:D12 準備公開發布,才發現藍新帳號還在「審核中」,正式環境無法收款。藍新和綠界對新申請帳號需要 5-10 個工作日審核(連假前後更長),審核期間只能用測試沙盒,真實用戶無法付款。
解法:D5 就送出申請,不要等到 D10 之後。送出後繼續在沙盒環境開發,審核通過再替換正式 API key。時間軸把金流排在第 5 天就是因為這個原因。
坑 2:API 費用在上線後 48 小時暴衝
症狀:收到 Anthropic 帳單通知或 spending limit 警示,費用是預期的 5-10 倍。常見原因:沒設 max_tokens(模型輸出不受控)、前端重複送出請求(沒有 loading state)、或被惡意用戶循環打 API。
解法:三道防線一起上:
// 1. 永遠設 max_tokens
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 800, // 絕對不要省略這行
// ...
});
// 2. API route 加速率限制(用 Redis 或 Supabase 記錄每分鐘請求數)
// 3. Anthropic Console → Billing → Spend limits 設月度上限
// 超過上限後 API 自動停用,這是最後的保命機制
坑 3:Supabase Free Tier 的 project paused 陷阱
症狀:某天早上用戶回報「登入失敗」,打開 Supabase dashboard 看到:
Your project is paused.
Inactive projects on the Free plan are paused after 7 days of inactivity.
Click "Restore project" to resume.
恢復要等 2-5 分鐘,這段期間整個產品無法使用。對付費用戶來說這是不可接受的。
解法:有任何付費用戶後就立刻升到 Pro($25/月)。或者如果你想省這筆錢,設一個每 5 天打一次 Supabase API 的 cron job 讓它不進入閒置判斷——但坦白說,有在收錢的產品升 Pro 是正確的選擇。
坑 4:middleware 設錯,未付費用戶繞過存取了付費功能
症狀:用戶回報「我沒付錢也可以用」,或你自己測試發現。常見原因是 middleware 的 matcher 路徑沒寫對,或某些 route 用了 export const dynamic = 'force-static' 讓 middleware 失效。
解法:除了 middleware 層,核心 API route 裡一定要再做一次 server-side 驗證,永遠不信任 client 傳來的「這個用戶是付費的」:
// app/api/core/route.ts
export async function POST(req: Request) {
const supabase = createServerClient(/* ... */);
const { data: { session } } = await supabase.auth.getSession();
if (!session) {
return Response.json({ error: "請先登入" }, { status: 401 });
}
// 查 DB 確認付費狀態,不依賴 client 傳來的資訊
const { data: subscription } = await supabase
.from("subscriptions")
.select("status")
.eq("user_id", session.user.id)
.single();
if (subscription?.status !== "active") {
return Response.json({ error: "請先訂閱方案" }, { status: 403 });
}
// 通過才執行 AI 功能
}
middleware 是第一道門,server-side 驗證是第二道門。兩道都要有。
坑 5:定價訂太低,留存反而更差
症狀:月費訂 NT$49,以為「門檻低、好轉換」,結果留存率慘不忍睹。根據 2026 年的 SaaS 資料,月費低於 $50 USD 的 AI 工具年度 GRR(毛收入留存率)只有 23%——大量用戶嘗試一個月後不續。
原因:太便宜讓人把它當「試玩」而不是「解決問題的工具」,用完一個月沒有深度使用就取消。月費 NT$299-599 的產品,用戶因為已付較多錢反而會認真嘗試用出效果,進而留存。
解法:定價從解決問題的價值出發,不是從「我希望降低門檻」出發。如果你的產品能幫用戶一個月省 4 小時,NT$299 是非常合理的定價。
坑 6:.env 檔案推進 git,API 金鑰外洩
症狀:push 後收到 GitHub 警告郵件「We found a potential secret in your repository」,或 Anthropic 發信通知金鑰可能外洩。
先換鑰匙,再滅火——這個順序不能錯:
# 第一步:立刻去 Anthropic Console 把這把 key revoke,換一把新的
# https://console.anthropic.com → API Keys → Revoke
# 第二步:讓 git 停止追蹤 .env 相關檔案
echo ".env" >> .gitignore
echo ".env.local" >> .gitignore
git rm --cached .env .env.local
git commit -m "fix: remove env files from tracking"
git push
為什麼先換 key:就算你之後把檔案從 git 歷史清除,這把 key 在那段時間已經公開了,機器人 24 小時在掃 GitHub 找外洩的 key。舊 key 一定要作廢,換新的才是安全的。
作業
- 今天就動手:用 D1-D14 時間軸,把你的題目填進去——每天的「交出什麼」寫成一句話。不動手的作業是最沒用的作業。
- 打開你的 Supabase dashboard,確認有沒有付費用戶在 Free Tier 上——如果有,今天升 Pro。
- 把成本試算表填成你自己的版本:你的定價是多少、幾個用戶才損益平衡、每個用戶的 API 成本你怎麼估。
- 選定你要在 D12 發布的社群頻道,現在就把帳號準備好(不是 D12 那天才開始想)。
下一步:規模化資源
這是這門課的最後一堂。你現在有了一個上線的產品、第一批用戶資料、以及迭代的節奏。從「活著」到「規模化」是另一段旅程,以下是繼續走下去實際有用的資源:

產品分析與錯誤追蹤:
- PostHog:開源的產品分析工具,有 Next.js SDK,Free tier 每月 100 萬事件,足夠早期用
- Sentry:錯誤追蹤,出問題你比用戶更早知道;Free tier 5,000 錯誤/月
串流回應(讓 AI 輸出即時顯示):
- Vercel AI SDK:Next.js 官方推薦,把 AI 回應做成 streaming,用戶不用盯著空白等全部輸出完
用量計費(usage-based billing):
- Lago:開源的 usage-based billing 引擎,需要按 token 或用量向用戶收費時的解法
定價策略: 根據 2026 年的趨勢,43% 的 SaaS 公司已採用混合定價(固定基本費 + 用量計費),預計年底前升到 61%。如果你的產品用量差異大,值得考慮加入用量上限和超用計費,比單一月費的留存更好。
前五課的所有碎片,在這堂課拼成了一個完整的產品開發流程。這門課教的不只是「怎麼做 AI SaaS」,而是「怎麼用最短的時間知道你的想法值不值得繼續做」。兩週、一個上線、幾個用戶、幾筆真實資料——這就是你需要的全部。接下來,讓資料說話。