跳到正文
Chandler Nguyen
AI閱讀時間2分鐘

AI

我用兩個AI model重建咗自己個網站:Opus做design,Codex做execution

TRANSMISSION做完咗佢嘅工。四個半月之後,係時候行落去。趁住Memorial Day長週末,我重建咗成個網站,但更值得講嘅其實係個workflow:Claude Opus 4.7負責design嘅判斷,GPT-5.5上面嘅Codex負責execution,加上`/goal`功能,Codex一次可以自己跑接近四個鐘。

差唔多四個半月以嚟,我個網站一直披住TRANSMISSION嘅外殼:深色、cyan、amber,刻意帶住一份technical味。

Navy配炭灰嘅背景。Cyan做點綴。玻璃感嘅panel。我當初係故意咁做嘅。我喺廣告行業做咗十八年。我四十歲先自學寫code。我想個網站令呢個跨越被人睇得到——任何一個人落到一篇blog post、滑過個wordmark、留意到嗰種developer-tool嘅美學,收到嘅signal就係:呢個人跨咗過嚟。

佢做完咗佢嘅工。然後,呢段任務就完咗。

趁住Memorial Day長週末,我上線咗一次徹底嘅redesign,睇落同之前完全唔同。Light mode。暖紙色嘅背景。用胭脂紅代替咗cyan。幼線取代咗圓角卡片。角落出現咗一行清晰嘅"Vol. 04 · Issue NN"——卷數係由我開始build in public嗰年算起,期數係當下嘅ISO week,兩個數字都會自動update。你睇到呢篇嘅時候,可能寫住Issue 22、Issue 23又或者Issue 41,視乎你幾時落嚟。成個網站再冇一個Sparkles icon。新版而家已經live,喺chandlernguyen.com

我大可以專登寫一篇文講呢啲設計上嘅決定。但更有用嘅故事其實係個workflow。我將今次redesign分咗畀兩個唔同嘅AI model。Claude Opus 4.7配合extended thinking負責設計。跑喺GPT-5.5上面、推理檔調到最高嘅Codex負責execution。而Codex入面嗰個/goal功能,令佢可以喺我出去散步或者食晚飯嗰陣,自己連續跑接近四個鐘。

四日。兩個model。差唔多三十個commit。一個網站。

以下係我學到嘅嘢——邊個model適合做邊樣,同埋邊界而家落喺邊。


點解TRANSMISSION必須要走

過去兩年,我由廣告行業跨入咗code嘅世界。今年年頭,個網站終於追上咗我自己:我特登將佢redesign成TRANSMISSION,就係要令呢個跨越被睇到。四個半月之後,呢個signal已經發完。

下一份工唔同。由blog post、由LinkedIn thread、由Google search入嚟嘅訪客,並唔係嚟確認"我識寫code"嘅。佢哋係嚟學AI喺media operations入面點用、嚟考慮買唔買堂課、又或者嚟將課程、Prova、DIALØGUE同STRAŦUM當作一條product ladder去比較。個網站需要少啲signaling,多啲guiding。

最簡單嘅講法:舊個網站係一個personality。新個網站係一套operating model。背後仲係同一個人,但份工變咗。即係話美學都要變——更輕、更靜、更editorial,一篇長blog post可以呼吸,課程CTA可以誠實而唔好似硬sell。用暖紙感代替玻璃感。

但更難嘅其實唔係美學。難嘅係throughput。個網站有十三個locale、大約八個對外嘅頁面(home、blog、post、products、learn、about、ask、課程sales page)、一條要登入嘅課程access flow、一個Stripe checkout,仲有一個Sydney RAG endpoint。全部由手重新寫一次,少講都幾個禮拜。我冇幾個禮拜。

所以我將份工分咗畀兩個AI model。


點解要將design同execution分開

Design同execution係兩種唔同嘅認知任務。

Design係慢嘅。佢係關於構圖、關於克制嘅判斷,係去諗一種暖紙色喺iPhone上面係咪太黃、另一種又係咪太凍。佢要先問*"呢個界面想做一個咩樣嘅surface?",然後先輪到"咁呢一節點render?"*。好嘅design其實係喺壓縮時間——你諗兩個鐘,做一個decision,就幫你慳返十個鐘嘅execution。

Execution係快嘅。佢係pattern application。畀一套design system,就生成對應嘅components。畀一個component,就將佢鋪去十三個locale。畀一個page layout,就出齊variants。呢樣工夫唔係冇技術含量,只係冇咁ambiguous。對住個spec,啱嘅答案通常都企得住腳。

唔同嘅AI model擅長嘅認知任務唔同。從我過去幾個月嘅親身體驗——先係Claude Opus 4.6,而家係4.7,兩個都開咗extended thinking——**Opus係更全面嘅partner。**Brainstorm更叻。Design嘅判斷更好。寫純code嗰陣慢啲、外科手術式嘅準繩度差啲,但佢答之前會將成個composition諗一次,佢嘅推理可以捉到點解一種字型感覺太friendly、另一種至啱。

**至於跑喺GPT-5.5、推理檔開到最高嘅Codex,感覺好似一個能力好強、不過從來冇行近過design team嘅資深software engineer。佢快。佢喺多步tool use上面好叻——開檔案、讀檔案、改檔案、跑tests、再開下一個。佢對一粒button係咪太高冇咩特別意見,但佢會ship出嗰粒button,而且毫無怨言將每一個variant鋪到十三個locale。佢嘅/goal功能畀你交一個target——例如"convert the v3 design tokens into the Next.js app, wire the new shell, ship working BottomNav, MobileAppBar, ReadingProgress, verify the build passes with the flag off"——然後你可以行開。佢會自己plan sub-steps、執行、跑build、修壞咗嘅部分、再繼續。喺呢個project入面,佢無人睇住跑得最長嗰一次,差少少就四個鐘。

我必須承認,一開始我並冇刻意要咁樣分工。長週末之前嗰幾日,我已經同Opus傾過設計。等長週末真正開始嗰陣,我手上已經有一份設計方向文件,加埋一個desktop prototype。週末本身,先係我將execution交畀Codex嘅時候,而我交出去未夠一個鐘,已經留意到兩個model喺各自嗰一半工夫上面係幾咁啱位。


Opus做咗咩:design phase

設計嗰段工,係喺重建之前嗰幾日,同Opus做嘅一場長對話入面發生嘅。呢場對話留低咗兩件嘢,而家都仲留喺repo入面:

1. 一份設計方向文件。 doc/v3-design/入面六個markdown檔案——點解、tokens、mobile patterns、page specs、accessibility的約束、execution plan。一萬三千幾字嘅決定,大部分係Opus根據我畀佢嘅brief寫嘅。Directive係:"下一版網站要令人感覺好似一本小型印刷雜誌,唔好似一個SaaS dashboard。靠克制贏取注意力。將Operating Model 2×2嘅framework當作視覺簽名。"

2. 一份desktop HTML prototype。 平鋪喺public/design-prototype-v2/,六個page加一個共用嘅style.css。冇React、冇Tailwind、冇framework——純手寫嘅HTML,等我喺本地server上面可以逐版click,去感受呢套design system究竟撐唔撐得住。呢個prototype之後成個週末都係視覺處理嘅source of truth。重建途中有疑問,答案就係"對齊prototype"。

Opus做咗最關鍵嗰幾個decision。幾個具體moments:

  • 字型嘅反向選擇。 之前有一round設計,因為availability同ease of shipping,將Manrope鎖咗做display font——係喺一次Claude Sonnet 4.6嘅session入面commit咗。十八個鐘之後,我將設計對話搬咗去開extended thinking嘅Opus 4.7,Opus第一步就係重新去諗呢個lock。我用咗一晚上對住PP Neue Montreal官方嘅specimen page逐個字形比較,然後切換就提交咗。嗰條commit message讀落好似一份字型犯罪現場報告:"Manrope rendered too rounded and friendly... Satoshi has the same condensed-grotesque proportions, the same double-storey a, single-storey g, swept R leg, cleanly-sheared terminals." 有趣嘅地方係,兩個唔同嘅Claude model喺同一個決定上面得出唔同嘅判斷。Sonnet揀咗安全嗰個。Opus揀咗啱嗰個。

  • 胭脂紅嘅選擇。 Cyan係AI產品嘅default強調色。Opus同我最後落喺胭脂紅——#c33824,一種印刷油墨般嘅紅色,係編輯喺校樣上面批註嘅顏色,又或者係Loeb Classical Library書架上拉丁文卷冊嘅顏色。理由好具體:"the site is trying to feel editorial, not developer-tool. Cyan signals tech. Carmine signals craft. Use the carmine sparingly, always at high contrast, ideally on warm paper." 呢個decision,一個execution-optimized嘅model係唔會主動去揀嘅。

  • 將Operating Model當成視覺簽名。 我喺課程入面教嘅嗰個2×2 framework——Automate / Protect / Deepen / Change——成為咗新網站上面一個低調嘅brand mark。喺而家嘅實作入面,佢只係克制咁出現喺兩個位:homepage嘅thesis block,同埋長post上面嘅一個細細嘅thesis marker。Framework本身係我嘅,但將佢做成個網站嘅視覺identity,呢一步係由同Opus嘅設計對話入面浮出嚟嘅。

  • Light over dark。 Opus主張light mode係personality,dark mode係一個被支援嘅variant。佢嘅argument:長文閱讀,喺暖紙感上面比喺玻璃感上面舒服;價錢標籤喺light background上面顯得更誠實;幾乎每個AI tool default都係dark,所以light先係嗰個differentiator。我反對咗幾個鐘,然後同意咗。

Opus基本上係design同review個loop;Codex負責落地嘅實作passes。Opus嗰份工,啱啱就係"慢"先有回報嗰一半。


Codex做咗咩:execution phase

設計文件同prototype一搞掂,工就交到Codex手上。

我開咗一個新嘅Codex session,將設計方向文件當context餵畀佢,然後開始跑/goal session。每一個goal都係一個多步驟、有清晰end state嘅target:

Goal: Convert the v3 design tokens from doc/v3-design/components/tokens.css into src/app/globals.css. Remove the conflicting TRANSMISSION tokens. Wire up the three new fonts via src/lib/fonts.ts and src/app/layout.tsx. Generate the v3 shell behind the feature flag NEXT_PUBLIC_ENABLE_V3_DESIGN. Ship a working BottomNav, MobileAppBar, and ReadingProgress. Verify the build passes and that no existing pages are visually affected when the flag is off.

呢種多階段嘅target,正正係/goal設計嚟做嘅嘢。Codex自己plan sub-steps、執行、跑pnpm buildcheck type errors、修壞咗嘅、再跑一次build、然後繼續。我散完步返嚟,v3 shell已經喺flag後面活喺codebase入面,新嘅字型load好咗,bottom nav喺mobile render到。

之後幾個/goal session:

  • 由prototype出發,生成v3 home同archive pages。
  • 生成v3 post layout,包括reading progress bar同v3 share button。
  • 生成v3 products同learn pages,對齊spec入面個ladder structure。
  • 將現有嘅課程sales、login、signup、MFA同access pages喺視覺上對齊去v3,底層嘅Stripe同Supabase Auth邏輯一行都唔郁。
  • 將v3嘅課程同Ask Sydney頁面localize到全部十三個locale,翻譯來源係已經存在嘅messages/{locale}.json

唔需要人介入跑得完嗰一次最長係差少少就四個鐘。最短嗰次大約四十五分鐘。呢四日入面我ship咗差唔多三十個commit——大部分都係Codex嘅第一次或者第二次pass,加埋一啲手動清理,嗰啲係model output正確但形狀仲未夠啱嘅地方。誠實地講:我認為今日跑喺production嘅code,大部分都係Codex寫嘅。其餘嗰部分由我自己寫或者改。

/goal最有用嘅地方唔係速度。係autonomy。我用AI tool跑過嘅大部分coding session,都要我守喺鍵盤前——confirm一個改動、accept下一個檔案、review個diff。/goal畀你指定你想要嘅end state,然後行開。返嚟時要麼係一個做完嘅改動,要麼係一個停喺"model需要你做一個判斷"嗰一刻嘅session。份工嘅形狀變咗。你由"single edit嘅保姆",變成"多個鐘sessions嘅planner"。


邊界而家落喺邊

將design同execution分畀兩個model,唔係咩魔法。仍然有時候一個model需要另一個,仲有幾個時刻兩個model單獨都唔夠。

嗰個Sparkles icon。 Codex生成嘅v3 mobile shell好乾淨,喺Ask嗰個tab掛咗個Sparkles ✨ icon——AI tool嘅universal tell。對住spec睇,個icon係啱嘅;spec入面冇寫*"do not use the cliché。"*我過咗兩日先留意到,然後返去搵Opus傾alternative。我哋走咗幾round:先係Operating Model嘅mark,然後係一個胭脂紅嘅Newsreader斜體問號——你可能喺一篇舊essay嘅頁邊批註入面見到嘅嗰種字符。最終方案係Opus嘅諗法。Codex十五分鐘就ship咗。

日之丸嘅一刻。 Operating Model嗰個mark擺喺mobile app bar左上角、貼住我個名,已經放咗兩三日,我望咗佢好耐。一個小小嘅胭脂紅圓點,放喺一塊暖紙色嘅方形上面。然後某一晚,我用另一個人嘅眼光去望佢,心入面"咯噔"一聲。佢睇落同日本國旗一模一樣。日之丸。淺色底加一輪小紅日。Opus冇捕捉到,Codex都冇。Opus設計咗呢個mark;Codex實作咗佢;兩個都review過。呢種視覺聯想係一種文化pattern,兩個model都睇唔到。我喺wordmark入面刪咗呢個mark,搵咗另一個solution。(之後嗰個Newsreader斜體?啱啱補咗Ask tab上面個位。)

十三個locale嘅rollout。 Opus其實可以細心咁為每個locale嘅UI nuance做設計,但會用上幾日。Codex一個人做唔到嗰種設計判斷,但pattern一定咗,佢一個晚上就可以將十三個locale鋪完。呢個係呢種拆分最直白嘅例子:design要慢,execution要快。

揀三隻夾得埋一齊嘅字型。 Opus揀咗Satoshi(display)、Newsreader(斜體強調)同JetBrains Mono(label)。呢個組合Codex一個人唔會揀——老實講,冇Opus喺對話入面嘅慢,我自己未必都揀得到。三隻字型嘅composition係一個design call,唔係execution call。

兩個系統之間嘅對話,係發生喺我腦入面,唔係發生喺兩個model之間。呢一part係2026年仲未可以自動化嘅——而我認為,呢一part正正定義咗而家所謂"taste"係咩意思。


誠實咁計一條數

四日。差唔多三十個commit。Production v3已經live喺chandlernguyen.com上面。新個網站正在做新工——幫訪客搵下一篇要讀咩,而唔係話畀佢哋知"我跨咗過嚟"。

個網站仲有一個我仲喺度追嘅問題。Draft緊呢篇嗰陣,production嘅Lighthouse mobile顯示blog archive landing去到4.6秒,但我本地Chrome DevTools trace上面,同一張圖只用咗264毫秒就render出嚟——同一份code,截然唔同嘅network model。我目前最看好嘅修法係font preload pressure:三個preload嘅webfont,加上三個會render-blocking嘅CSS chunk,喺throttled mobile connection上面同張圖搶到最後。我喺過去一日已經deploy咗"槓桿最細"嗰一版修復,仲需要跑多次Lighthouse確認佢係咪真係生效。你而家讀緊嘅呢篇,係喺修復後數字出嚟之前寫好嘅。

訂閱成本:我嗰個最高級嘅Codex subscription,加埋原本已經有嘅Claude Max subscription。一個月加埋幾百美金。考慮到throughput,呢個價已經算抵。

V3之所以可以用四日而唔係三個禮拜出到,主要係因為design同execution兩個phase分開咗、各自交咗畀更擅長嗰一半工夫嘅model。我並唔覺得呢個係universal。有啲project一個model就可以兩邊都做;有啲project兩個model都唔係啱嘅partner。但係對於一個多頁面、多locale、多surface、有強烈design point of view嘅redesign,呢種拆分係我下次仲會再用嘅workflow。


如果你最近做過自己嘅AI輔助rebuild,我真係好想聽吓你係點分工嘅。你係由頭到尾用一個model?你係好似我咁按phase分,定按其他軸——按component、按file、按task type?我覺得build-in-public下一波嘅craft,會落喺為邊一part工夫揀邊一個AI,而唔再係單純"你用唔用AI"。

如果想睇下成品,你而家睇緊嘅就係。首頁喺chandlernguyen.com。Product ladder喺/zh-HK/products/。帶出成個"operating model"諗法嗰堂課喺/zh-HK/learn/

祝好, Chandler