我用 Claude Code + Vercel
自己蓋了公司官網

2026.05.24 ‧ 莊哲昀(AJ)

用 Claude Code + Vercel 蓋官網的流程 非工程師蓋公司網站的工作流 Claude Code × Vercel × Upstash × Resend 我(非工程師) Claude Code 我的工程合夥人 寫 spec / 看 diff / 修 Vercel ‧ 部署 + Functions Upstash Redis ‧ 資料 Resend ‧ 寄信 ahadigit .work 兩個月的時間軸 Day 1 Landing Page Day 7 講師團隊 + 服務 Day 14 學員後台 + Q&A Day 21 多 agent 重構 19 篇 不會寫網站,才是真的不會 AI

兩個月前一位企業主問我:「AJ,你們公司網站誰做的?看起來蠻不錯。」我有點不好意思說:「⋯我自己。」他愣了一下:「你不是 AI 講師嗎?怎麼會寫網站?」我笑了——「現在的時代,不會寫網站,才是真的不會 AI。」

我不是工程師背景。大學唸的不是資工、職涯也沒寫過 production 等級的程式。但兩個月前我用 Claude Code 配 Vercel,從 0 蓋完了你正在讀這篇文章的整個網站——首頁、講師頁、服務介紹、預約洽詢、部落格、學員專區、管理後台、課程企劃書產生器、請款核銷頁,全部。這篇是我蓋網站的完整流程、選型、雷區與心得。

為什麼決定自己蓋

外包做一個有後台的公司官網,行情大概 30–50 萬,時程兩到三個月。我打聽完之後想了三件事:

  • 速度:我等不及。寫一篇部落格、加一個功能、改一個字,如果都要等外包三天五天,這不是我要的節奏。
  • 控制力:網站是我跟客戶的第一個接觸面,每個字、每個按鈕、每個 API 的回應,我希望我自己決定。
  • 成本:不是錢——是學習這件事本身的價值。我教企業 AI 內訓,自己卻不會用 AI 蓋網站,這太不應該了。

於是我打開了 Claude Code。

技術選型:少 setup、少維運、少坑

我不是工程師,選型只有一個原則——能不裝就不裝、能 serverless 就不要養伺服器

層次選擇為什麼
前端 純 HTML + CSS + Vanilla JS 不用 React、不用 Next.js、不用打包。文章一個檔案就是一個 URL,SEO 與維護都簡單。
部署 vercel deploy --prod 一行 CLI 推上去就上線。Vercel 自動處理 CDN、TLS、Edge Cache。
後端 API Vercel Serverless Functions(/api/*.js 不用養伺服器。每個 API 是一個檔案,部署跟著前端一起上。
資料庫 Upstash Redis(Redis.fromEnv() 按請求計費、零維運、HTTP API 適合 serverless。場次、提問、密碼 hash 全放這。
寄信 Resend(驗證 ahadigit.work domain) 洽詢表單 + 請款核銷單都用它。比起 SendGrid 設定快很多。
程式碼倉庫 GitHub Private Repo Claude Code 寫的程式碼裡有預設密碼跟 secret 邏輯,絕對不能 public

整套加起來每月固定成本不到台幣 1,000 元,比租一台 VPS 還便宜。

Claude Code 是我的工程合夥人

很多人以為 vibe coding 是「我跟 AI 講一句它寫一段」。實際上不是。

我跟 Claude Code 的工作流是這樣:

  1. 我寫 spec(不是寫程式碼)。例如:「幫我加一個學員專區,密碼登入後可以看講義 iframe、線上問問題(其他學員可以按讚)、複製預設 prompt 庫。資料用 Redis 存。」
  2. 它先反問我:「Q&A 要不要管理員後台審核?投票要不要防灌票?密碼是每場一組還是全站一組?」這時候我發現我自己其實沒想清楚。
  3. 它寫 + 我看 diff。我不寫程式碼,但我看 diff 是不是符合我想要的邏輯。看不懂的問它「這段在做什麼?」
  4. 跑、發現 bug、改。Resend 502、Edit tool 不認識全形括號、Vercel env var 沒設⋯所有坑都踩過一次。

Anthropic 的 Boris Cherny 在 Code with Claude 大會上講過一句我超喜歡:

「The default isn't 'I'm going to prompt Claude'—the default is now 'I'm going to have Claude prompt itself.'」
(不是『我來下 prompt』,而是『我讓 Claude 自己下 prompt』。)—— Boris Cherny, Anthropic

翻譯成我的版本:我不是寫 code 的人,我是給 Claude 派任務、看它回報、決定下一步的人。比較像 PM,不像工程師。

兩個月做了哪些事

從第一行 commit 到你現在讀這篇文章,差不多兩個月。中間的里程碑:

  • Day 1:landing page(首頁 + 講師簡介)。幾小時搞定。
  • Day 7:講師團隊頁(AJ + Calvin)、服務介紹、預約洽詢表單(接 Resend)。
  • Day 14:學員專區(密碼登入 + Slido-like Q&A + Prompt library)、管理後台(HMAC token 認證、場次管理、提問管理)。
  • Day 21:部落格(10 篇原創 + 9 篇影片重點)、課程企劃書產生器、請款核銷頁、課後 CTA(訂閱 YouTube 解鎖 PDF)。
  • Day 56(上週):用 16 個 Claude Code agent 平行重構整個部落格 19 篇文章,套用編輯標準。同時送 16 個任務、各自寫各自的,全部回報後我批次採用、commit、push、deploy。

第五個里程碑是最 vibe coding 的時刻——一個非工程師同時派 16 個工程合夥人去重寫 19 篇文章,一個下午做完。傳統外包流程這要兩週。

我學到的三件事

1. 不要怕 spec 沒寫好

Claude Code 比我自己更會發現需求遺漏。「未登入怎麼處理?」「資料怎麼儲存?」「密碼忘記怎麼辦?」這些它都會問——而且問得比我想得快。我把 spec 沒寫好的恐懼,外包給它

2. 要會看 code,但不用會寫

我看 diff、看 logic 是不是符合我直覺。看不懂的問它「這段在幹嘛?為什麼這樣寫?」。兩個月下來我變成可以「閱讀」HTML/CSS/JavaScript 與 Node serverless 寫法的人——還是不會寫,但看得懂。

3. 學會 commit 跟 rollback

這是 AI coding 時代最重要的技能。寫壞了就 git revert,不要怕。每寫一個功能 commit 一次,commit message 用人話寫,未來看 git log 就像看自己的成長日記。

三個雷區(我都踩過)

  1. 不要把密碼、API key 寫死在原始碼裡。我一開始把 ADMIN_PASSWORD 預設成「iamaj」,後來改用 Vercel 的環境變數覆蓋。原始碼裡可以留 fallback,但實際 production 一定走 env var。
  2. 不要把 .env 推上 GitHub.gitignore 一定要有它。一旦 leak,你要付出的代價是把整個 secret 重新輪替。
  3. 不要寫到一半才想 SEO。og:image、JSON-LD、sitemap.xml、robots.txt、llms.txt——這些一開始就要想好。我前期沒做,後來補很痛。

結語:非工程師蓋網站的時代

我不會說每個老闆都該自己寫網站。但我會說——你至少該知道你的網站是怎麼跑的、要改一個字要花多久、加一個功能要花多少錢。否則你會永遠被自己看不懂的東西綁架。

Claude Code 不是寫程式工具,是你的工程合夥人。Vercel 不是部署平台,是你的 IT 部門。Upstash 跟 Resend 不是資料庫跟寄信服務,是你的後端團隊

以前蓋一個公司網站要 30 萬。今天,蓋一個你自己看得懂的公司網站,成本是你願意花多少時間去學。

我選擇花這個時間。因為我知道——再過五年,分得出來「自己懂技術的老闆」與「永遠靠別人解釋」的老闆,會差很多。

那個數位的 AI 內訓會帶你的非工程師員工,從 0 開始用 Claude Code、Cursor、Codex 寫工具。我們不教你變成工程師,我們教你怎麼跟工程合夥人對話歡迎預約諮詢

想讓你的團隊也能自己蓋工具?

從寫 spec、看 diff、commit/rollback 到並行派 agent——AI Coding 員工賦能訓練。

預約內訓諮詢