引言:一個技術選型的起點

2024 年 6 月,我坐在會議室裡,面對著老闆和行銷總監,準備報告我對公司新系統 CMS 的技術選型建議。這不是一個輕鬆的決定——選錯了,可能浪費數百萬的開發成本;選對了,能為公司省下可觀的人力支出。

經過數週的研究與分析,作為一個架構規劃師同時也是技術決策者,我最終選擇了 Strapi 作為我們的 Headless CMS 解決方案。這篇文章將分享我的決策過程、考量因素,以及最重要的——這個選擇如何為公司省下大筆預算。


什麼是 Headless CMS?

在深入 Strapi 之前,先理解 Headless CMS 的核心概念。

傳統 CMS vs Headless CMS

Mermaid Diagram

傳統 CMS 將前端與後端緊密耦合,網站的外觀和內容管理綁在一起。而 Headless CMS 則專注於內容管理和 API 提供,讓前端團隊可以使用任何技術框架來消費這些 API。

Headless CMS 的核心優勢

特性傳統 CMSHeadless CMS
前後端耦合緊密耦合完全分離
前端技術選擇受限於 CMS 模板任意框架(Vue、React、Flutter)
多平台支援僅限網頁Web、App、IoT 皆可
擴展性中等極高
API 優先

為什麼選擇 Strapi?三大核心原因

原因一:前後端完全分離

Strapi 作為 Headless CMS,天生就是為了前後端分離而設計。這意味著:

Mermaid Diagram

實際效益:

  • 前端團隊可以使用最熟悉的框架(我選擇 Vue.js)
  • 後端 API 可以同時服務網站和未來的 App
  • 前後端可以獨立部署、獨立擴展
  • 開發進度不會互相卡住

原因二:自動生成 API 和 Schema

這是我選擇 Strapi 最重要的原因——Content-Type Builder 功能讓我們可以在 Admin Panel 中直接設計資料結構,Strapi 會自動生成對應的 REST API 和 GraphQL API。

Mermaid Diagram

傳統做法 vs Strapi 做法:

Mermaid Diagram

這代表什麼? 原本需要後端工程師花 2-3 天完成的 CRUD API,現在只需要 10 分鐘在 Admin Panel 點一點就完成了。

原因三:開源且可自架

Strapi 是 MIT License 的開源專案,這意味著:

  • 零授權費用:不像 Contentful 或 Sanity 需要按用量付費
  • 完全掌控:程式碼在自己手上,可以自由修改
  • 資料主權:資料存在自己的伺服器,不用擔心供應商鎖定

技術選型過程:為什麼不選 Wagtail?

在選擇 Strapi 之前,我也認真評估過另一個強大的 Headless CMS——Wagtail

Wagtail 的發現過程

當時公司的電子商城服務商是 Shopline,我很好奇他們後台用的是什麼技術。經過一番調查:

Mermaid Diagram

我自己把Wagtail在本地架起來,做一個prototype試了幾個功能,確認 Wagtail 確實是一個被大型電商平台採用的成熟方案。

Wagtail vs Strapi 比較

項目WagtailStrapi
程式語言Python (Django)Node.js (JavaScript)
成熟度非常成熟成熟
Admin UI優秀、友善中等
台灣開發者生態較少較多
外包報價偏高合理

為什麼最終沒選 Wagtail?

一個字:人。

Mermaid Diagram

當時在台北尋找外包商時,我發現:

  1. Python 後端團隊非常稀少:有能力做 Django/Wagtail 的外包商屈指可數
  2. 報價明顯偏高:大概比 Node.js 團隊貴 30-50%
  3. 時程無法配合:稀缺的團隊案子排滿,無法配合我們的上線時間

相比之下,熟悉 Node.js 的開發團隊在台北隨處可見,報價合理,選擇性也多。

結論:技術再好,找不到人做也是白搭。


Strapi 的缺點:必須面對的現實

任何技術選型都必須誠實面對缺點,Strapi 也不例外。以下是我們實際使用後遇到的挑戰。

缺點一:Admin Panel 學習門檻因人而異

Strapi 的 Admin Panel 對於平常就有在操作商業軟體的人來說,其實上手不難,熟能生巧。但對於那些本身對辦公室商業軟體就沒什麼 sense 的人,就會覺得 Strapi 很難用。

Mermaid Diagram

重點不是 Strapi 難不難,而是使用者的軟體素養。

缺點二:高度客製化需要額外 UI 層

如果你的後台需要非常客製化的 UI/UX,例如複雜的 Dashboard、特殊的審核流程、或品牌化的介面設計,就需要額外建立一層客製化的管理介面,再透過 API 串接 Strapi 的資料。

Mermaid Diagram

額外 UI 層的成本分析(略估)

項目預估工時預估成本
需求分析與 UI 設計40 小時40,000 TWD
前端開發(Vue.js/React)120 小時120,000 TWD
API 整合與測試40 小時40,000 TWD
後續維護(每月)16 小時16,000 TWD/月
一次性開發總成本-200,000 TWD

這筆「隱藏成本」必須在決策時納入考量。


成本效益分析:完整版

現在讓我們把所有成本都算進去,做一個更完整的分析。

人力成本計算

根據 2024 年台灣市場行情,資深後端工程師的月薪大約落在 7 萬到 9 萬 之間。

Mermaid Diagram

三年總成本比較

項目傳統自建方案Strapi + 客製 UI
後端人力(36 個月)16 萬 × 36 = 576 萬0
全端/前端人力(36 個月)6 萬 × 36 = 216 萬12 萬 × 36 = 432 萬
客製化 UI 開發(一次性)020 萬
客製化 UI 維護(36 個月)01.6 萬 × 36 = 57.6 萬
伺服器費用(36 個月)1 萬 × 36 = 36 萬0.8 萬 × 36 = 28.8 萬
三年總成本828 萬538.4 萬
節省金額-289.6 萬

即使加上客製化 UI 的成本,三年下來仍可省下約 290 萬!


決策時的風險評估

任何技術選型都有風險,以下是我當時的考量:

風險與對策

風險可能性影響對策
Strapi 專案停止維護開源社群活躍,可 Fork 自維護
效能瓶頸可透過快取和資料庫優化解決
功能不足需客製Strapi 支援 Plugin 和自訂 API
團隊學習曲線官方文件完善,社群資源豐富
Admin UI 不符需求預先規劃客製化 UI 預算

為什麼不選其他方案?

方案排除原因
Wagtail (Python)台北 Python 團隊稀少、報價過高
WordPress + REST API效能差、架構老舊、安全性疑慮
ContentfulSaaS 收費高,資料不在自己手上
Sanity同上,且台灣用戶較少
自建 Node.js API開發時間長,需要更多人力

給決策者的建議

根據我的經驗,選擇 Strapi 的適用情境:

✅ 適合使用 Strapi 的情況

  • 有1個資深工程師或工程團隊可以處理技術問題
  • 使用者有基本的商業軟體操作經驗
  • 預算有限但需要快速上線
  • 需要 API-First 的架構
  • 未來可能需要支援 App

⚠️ 需要額外考量的情況

  • 使用者完全沒有軟體操作經驗
  • 需要高度客製化的後台介面
  • 對 UI/UX 有嚴格要求

❌ 不建議使用 Strapi 的情況

  • 完全沒有技術人員
  • 需要開箱即用的完整方案
  • 預算極度有限,無法負擔客製化 UI

結論:技術選型是一門藝術

回顧這次的技術選型,我學到幾個重要的經驗:

  1. 技術選型不只是技術問題:更是商業決策,必須考慮成本、時間、人力
  2. 沒有完美的解決方案:只有最適合當前情境的選擇
  3. 量化效益很重要:用數字說服老闆比用技術術語有效得多
  4. 人才市場是關鍵:再好的技術,找不到人做也是白搭(Wagtail 的教訓)
  5. 誠實面對缺點:Strapi 的 Admin UI 確實需要使用者有一定的軟體素養

沒有任何框架或工具是萬能的,Strapi 也不是萬能的,但在我們的場景下——中小型專案、有技術團隊、預算有限、需要快速上線——它是一個極佳的選擇。

最終結果? 專案在預定時間內上線,後端開發時間縮短了 60%,雖然我們額外花了四週規劃客製化管理介面(不包括實作時間),但整體而言仍比自建後端省下大量成本和時間。老闆看到成本分析表後非常滿意——這就是一個成功的技術選型帶來的價值。


參考資源

官方文件

延伸閱讀