當大家看到這篇文章的時候,代表我已經成功把網站從 WordPress 託管搬遷到 GitHub + Astro + Cloudflare Pages 的新架構上,歡迎提供反饋建議。這是我從 2019 年搬到 WPWebHost 以來最大的網站變動(當年也寫過一篇Blog Migration 成功與 WPWebHost 推薦),也是我第一次認真感受到:個人網站不只是寫文章的地方,也是自己的長期記憶與數位主權。
這次搬遷最直接的好處很樸素:更安全、更快、更便宜,也更掌握在自己手上。WordPress 曾經很好用,也陪我撐過很長一段時間;但外掛、後台、資料庫、備份、主機續費、SSL、各種不知何時冒出的安全疑慮,慢慢都變成一種負擔。相較之下,把文章變成 Markdown、把版本交給 GitHub、把靜態頁面交給 Cloudflare Pages,對我來說更像是把一間需要日常修繕的店面,整理成一座可以長期保存的私人圖書館。

社交動物與子彈先飛
人是社交的動物,不過社交能力有其極限。鄧巴數告訴我們,大腦能維繫的穩定社交關係大約就是 150 人。在我這 150 人的社交圈中,黃豆泥絕對是能夠進入內圈的朋友。今年三月初,我看到他成功用 Codex 重建自己的部落格(豆泥的搬遷紀錄),那個使用 Codex 下指令的過程,彷彿就是言出法隨地把網站架好。我當下就知道自己一定會在 Q2 也這麼幹。
我就是喜歡讓子彈先飛一下,或者說,自己跟奇點大祭司 Kurzweil 一樣,喜歡成為第二批採用者。當然 Kurzweil 指涉的應該是意識上傳這類更加攸關存亡的技術,不過精神是一致的:先行者趟過地雷、留下路標,後來者再跟上,在風險與效率之間找到比較好的平衡點。有人先把路走過一遍,真的差很多。
四小時搬家
這次搬遷最不可思議的地方,是整體竟然不到四小時就大致完成。
第一階段是 WordPress 備份與遷移。Codex 協助我把文章、圖片與元資料整理出來,轉成 Astro 能吃的 Markdown 架構。這一步的重點不是單純轉檔,而是保留原本文章的 slug、日期、分類、標籤和圖片脈絡,讓網站不是被打掉重練,而是帶著歷史記憶搬家。
第二階段是清理陳年舊債。錯字、broken link、過期嵌入、WordPress 時代殘留的 caption shortcode、奇怪分類和已經沒有用的腳本,全都被一個個翻出來處理。這部分很像打掃地下室:平常不打開就覺得不存在,一旦真的開始整理,才發現裡面堆滿多年來懶得面對的紙箱。
第三階段是前端與閱讀體驗整理。首頁、文章頁、分類頁、標籤頁、歸檔頁、RSS、搜尋和 404 都要能正常工作,但我不想把網站做成花俏作品集,而是維持安靜、可讀、適合長文的氣質。這次改版的核心不是炫技,而是讓讀者可以更自然地在文字之間移動。
第四階段是網域和部署切換。DNS 指向 Cloudflare Pages,GitHub 成為版本來源,Cloudflare 負責把靜態頁面送到讀者面前。這些以前看起來像是一整個週末甚至一整個月的工程,現在變成可以用對話方式逐步推進的任務。
這裡最重要的不是技術炫技,而是心理門檻被大幅降低。Pre-LLM 時代我很可能會因為怕 URL 爆炸、怕圖片漏掉、怕 SEO 壞掉、怕 DNS 設錯,就繼續讓舊系統撐著。現在則是先做備份,然後讓 Codex 陪著一步步拆解。對我這種只會寫糞扣的物理博士來說,這確實有點像把「不敢碰的系統」變成「可以摸索的工作台」。
當然,我也因為五月 Codex Pro 用量加倍的促銷,就從 Plus 方案升級成 Pro 5x 方案,算是對自己的生產力做了一筆投資。以這次省下的主機費、維護時間和精神耗損來看,這筆投資算是相當有感。
從租屋到自有倉庫
我越來越覺得,個人網站在 AI 時代反而更重要。社群媒體像租來的房間,平台規則一改、搜尋一壞、帳號一鎖,很多內容就像被潮水沖走。網誌則比較像自有倉庫:不一定華麗,但鑰匙在自己手上,東西也能照自己的分類方式擺放。
這也是為什麼我會用「自託管」和「密碼龐克」的語感理解這次搬遷。嚴格來說,我當然不是在自己家裡架伺服器,也不是跑在什麼完全抗審查的神秘網路上;但把內容從 WordPress 主機與資料庫中取出,轉成純文字、版本控制、靜態檔案,已經是在往更可攜、更可驗證、更不被單一服務綁死的方向移動。
密碼龐克精神不一定總是轟轟烈烈地對抗體制。有時候它也可以很日常:自己的文章自己備份,自己的網域自己管理,自己的連結自己維護,自己的長期記憶不要只寄放在某個後台和某個平台的資料庫裡。這不是浪漫化技術,而是承認數位生活也需要產權意識和退出能力。
從已知的未知到未知的未知
這個架站過程讓我體會到的,不只是效率提升,更是一種認知邊界的擴展。
用 Rumsfeld 的經典框架來說,一開始我知道自己「不知道什麼」。比如 Astro 怎麼整理文章、Cloudflare Pages 怎麼部署、搜尋和 sitemap 怎麼處理。這些是已知的未知(known unknowns),我只需要把問題丟給 Codex,讓它協助我執行細節。
但真正有趣的是,在對話操作的過程中,我總是會學到一些意料之外的東西。原來草稿可以被路由排除;原來靜態站的頁面數和搜尋索引數本來就不會相同;原來 Cloudflare edge cache 有時候會讓你看到某些舊頁面的殘影。這些是我事先根本不知道自己不知道的未知的未知(unknown unknowns),卻在與 AI 協作的過程中自然浮現。
這不是把腦袋外包,而是把探索成本大幅降低。以前遇到不熟的技術領域,我會先評估「這坑會不會太深」;現在更像是先讓 Codex 探路,我在旁邊看、問、改、驗證。學習不再只是先讀完文件才開始,而是在行動中長出理解。
靜態網站作為長期記憶
從 WordPress 搬到 Astro,不只是技術棧替換,也像是把自己的長期記憶從一個龐大的內容管理系統中取出,重新整理成一套更透明、更可攜、更容易保存的文字檔案。Markdown 很樸素,但正因為樸素,所以可靠;每篇文章都是清楚可讀的純文字檔,未來要搜尋、分類、批次修正、統計標籤,甚至交給 AI 分析自己的寫作脈絡,都比藏在資料庫和後台裡容易太多。GitHub 很工程師味,但正因為有版本紀錄,所以每次修改都留下痕跡。Cloudflare Pages 很基礎建設,但正因為它把靜態檔案推到邊緣,讀者打開文章時就不需要等一台遠方主機慢慢回應。
社群媒體流動很快,貼文壽命短、搜尋困難、脈絡破碎;但網誌是長期記憶。它允許一個人把十年前的想法、五年前的生活、去年讀過的書和今天做出的選擇放在同一個空間中。這種連續性很珍貴。
這篇文章就是新架構上的第一批生活記事之一。它既是搬遷公告,也是我對 AI 協作與數位主權的一次階段性筆記。從 2017 年開站,到 2019 年搬到 WPWebHost,再到 2026 年搬到 GitHub + Astro + Cloudflare Pages,這個網誌本身也像是我個人成長和技術時代變化的縮影。
我在心存感激這指數成長的美好世界之餘,只能默唸:讚嘆奇點臨近 LOL。