Build Notes
舊有的 Nuxt codebase 其實已經證明了業務方向是成立的:SlashCode 可以設計、開發,也可以真正把東西交付出去。下一步不是把每一個 component 原封不動搬去新框架,而是重新判斷哪些 surface 仍然重要,再用一個更容易維護的方式把它們重建出來。
所以,這次 Astro migration 先由 blog 開始。
為什麼先由這裡開始
Blog 是一個很高訊號的 migration surface:
- 它會用到 routing、layout、metadata 同 content loading
- 它可以即時受惠於 static generation
- 它可以讓新的設計語言先公開上線,而不用等全部頁面完成
這樣做,第一個 Astro release 可以保持精簡,但又不會顯得只是臨時替代品。
我們沒有把哪些東西一起帶過來
舊系統裡有一層不算小的 UI abstraction,包括 dropdown、form helper、toast 和一些偏 shadcn 風格的組件。這些模式日後未必完全沒有用,但它們沒有必要在第一天就全部進場。
對 blog 而言,目前真正需要的只是:
- 一個共用 layout
- header 與 footer
- content collections
- 簡單清楚的 article cards
- 易讀的長文樣式
其餘的東西,等到真的解決了現場問題,再帶進來也不遲。
這一步之後會更容易往下走
當 journal 先落地,之後的 Astro migration 就會順很多。因為我們已經有了共用 shell、品牌 token,同一條乾淨的延伸路徑,可以慢慢把更多 section 加進來,而不需要把舊系統的複雜度一併拖過來。
真正重要的,不只是換了框架,而是在換框架的同時,把整體 surface area 減少。