EmDash 是 Cloudflare 在 2026 年 4 月以 beta 之姿推出的開源內容管理系統,官方把它定位為 WordPress 的「精神繼承者」。它完全用 TypeScript 寫成、架在 Astro 之上、以 MIT 授權釋出,最根本的差異在於:每一個外掛都跑在獨立、沙箱化的 Cloudflare Worker 隔離環境裡,只能做它在清單裡明白宣告過的事。根據 Cloudflare 官方的介紹文章,這套設計是為了從根上解決 WordPress 最難纏的外掛安全問題,並把發布網站的成本結構帶進 serverless 時代。
不過 EmDash 目前是 v0.1.0 預覽版,外掛生態系才剛起步,沙箱外掛還需要 Cloudflare 的付費方案才能運作。它值得認真理解,但不一定值得你現在就把生產站整個搬過去。這篇會把它的設計原理、與 WordPress 的關鍵差異、成本門檻與採用判斷一次講清楚,讓你知道自己落在「現在就試」「觀望」還是「先別動」哪一類。
文章目錄
EmDash 的定位:為什麼 Cloudflare 要重做 WordPress
根據 Cloudflare 在官方文章裡的數字,WordPress 驅動了超過四成的公開網站,是開源世界最成功的內容平台之一,但 Cloudflare 也指出它的核心設計到 2026 年已經有 24 年歷史。官方點出一個很實際的時代落差:WordPress 誕生時,連 AWS EC2 都還沒出現,架站的主流方式是租一台虛擬專屬伺服器;而今天,把一個 JavaScript 套件部署到全球分散式網路的成本已經趨近於零。用 24 年前的執行模型,去跑今天以邊緣運算為主的網站,中間的浪費與摩擦就是 EmDash 想抹平的東西。
這個動機比「換個語言重寫」更深一層。WordPress 的技術債不只來自 PHP 本身,而來自一整套假設:假設你有一台常駐的伺服器、假設外掛可以自由觸碰資料庫、假設效能靠快取分層來疊。這些假設在 serverless 與邊緣運算的時代都顯得過時。EmDash 連這整套底層假設一起換掉,程式語言只是其中最表面的部分。

Cloudflare 自己也把這段歷程寫進官方文章:他們先用 AI coding agent 花一週重做過 Next.js,接著又用兩個月從無到有重建 WordPress 的功能集合。官方特別強調,EmDash 雖然目標相容於 WordPress 的功能,卻沒有複用任何 WordPress 的程式碼,這一點讓它能用比 WordPress 的 GPL 更寬鬆的 MIT 授權釋出,也讓外掛作者有更大的授權選擇空間。官方對它的描述是「為人與代理(agents)打造的開源 Astro CMS」,而 GitHub 儲存庫 在撰寫本文時已累積超過一萬一千顆星,程式碼近期仍持續更新。
把它想成「同一個任務、換一個時代的技術棧重做」會比「WordPress 殺手」更準確。它的目標是把「任何人都能低成本發布內容」這個 WordPress 當年實現的承諾,用今天的工具重新兌現一次。

沙箱外掛:EmDash 怎麼解決 WordPress 最致命的安全問題
要懂 EmDash 的價值,得先看懂它要解的傷口有多深。Patchstack 在 2024 年的 WordPress 安全報告 指出,WordPress 站點大約有九成六的安全問題源自外掛,而這個數字也被 EmDash 官方儲存庫引用為其安全論述的依據;Cloudflare 官方文章則補充,2025 年 WordPress 生態系被找到的高嚴重性漏洞,比前兩年加總還多。
為什麼外掛會成為這麼大的破口?因為 WordPress 的外掛本質上是一段 PHP 程式,會直接掛進 WordPress 的執行流程,沒有任何隔離,可以直接碰網站的資料庫與檔案系統。你安裝一個外掛,等於把幾乎整個站的存取權交給它,還得信任它能把每一個惡意輸入與邊界情境都處理完美。一個有漏洞的外掛,就能拖垮整個站。
EmDash 的解法是把「隔離」變成預設值。每一個外掛都跑在自己專屬的沙箱裡,Cloudflare 稱之為 Dynamic Worker,底層對應的是 Worker Loaders 這種動態載入的隔離執行單位。外掛不會直接拿到底層資料,而是透過繫結(bindings)取得能力,而且只能取得它在 manifest 裡明白宣告需要的能力。
這套模型有一個嚴格保證:一個 EmDash 外掛只能做它在 manifest 裡宣告過的事,別的都做不了。官方在文章裡用了一個很貼切的類比,說這就像走一次 OAuth 授權流程,你在一個第三方應用上只授予它某幾個明確範圍的權限。舉個官方提供的例子,一個「文章發布後寄信通知編輯」的外掛,會在 manifest 裡宣告它需要 read:content 與 email:send 兩個能力,於是它就只能讀內容、寄信,不能做任何其他事。它預設沒有對外網路存取權;如果真的需要對外連線,也得在定義裡寫死它要連的特定主機名稱,而且只能連那一個。
換一個攻擊者視角來看,這個差別會更具體。在 WordPress 裡,一旦某個外掛出現漏洞,攻擊者拿到的是那個外掛在 PHP 環境裡的完整能力:讀寫資料庫、動檔案系統、對外發請求、甚至橫向影響其他外掛,漏洞的爆炸半徑幾乎等於整個站。在 EmDash 裡,同一個被攻破的外掛,能做的事被它的 manifest 框死:如果它只宣告了 read:content 與 email:send,就算程式碼裡藏了惡意邏輯,也無法越界去讀使用者資料表、無法對外連到任意主機。沙箱的價值在於把任何一個外掛出事時的傷害半徑,收斂到它宣告的範圍內。這個性質對「同時裝很多外掛、又沒有餘力逐一審查程式碼」的中小型站點特別有用。

但這不等於可以放棄判斷。一個惡意外掛完全可以誠實地宣告它要 read:content、write:content、email:send,外加一個特定主機名稱的網路權限,然後在權限範圍內做你不樂見的事,例如把內容同步到外部、或對你的聯絡人寄出釣魚信。沙箱提供的是「外掛能做的上限被你事先看見」,並不保證「外掛的意圖善良」。所以權限清單的審視、外掛來源的判斷仍然重要,只是判斷的依據從「這個外掛有沒有被市集背書」變成「它要求的權限合不合理」。
這件事的連帶影響比表面更大。因為外掛的需求是靜態、事先宣告的,Cloudflare 官方文章進一步指出,平台或管理員可以依「這個外掛要求哪些權限」來訂規則,決定哪些外掛能被哪些群體安裝,而不必只靠一份「安全外掛白名單」。有了這道權限邊界,使用者才比較敢安裝來源不熟的外掛,市集也才有條件更開放地流動。
從外掛安全到市場鎖定:為什麼沙箱會改變外掛生態系
WordPress.org 會人工審查並核准每一個上架的外掛,因為風險實在太高。Cloudflare 官方文章點出,在撰寫當下那個審查佇列已經超過八百個外掛、得花至少兩個星期才走得完。風險面太大,導致所有參與者在實務上都得依賴市集的聲譽、評分與評論來判斷能不能信任一個外掛;又因為 WordPress 外掛與 WordPress 本身執行在同一個環境、程式碼高度交纏,有人主張它們必須連帶承襲 WordPress 的 GPL 授權。這兩個現實疊在一起,對想開發外掛的人、對代管 WordPress 站的平台,都產生了寒蟬效應。
EmDash 的外掛有兩個特性,正好對應這兩道鎖。第一,外掛可以用任何授權,因為它獨立執行、不與 EmDash 共用程式碼,授權由作者自選,就像發布到 NPM、PyPI 一樣。第二,外掛程式碼在安全沙箱裡獨立執行,一個外掛可以被交付給 EmDash 站點並被信任,而站點甚至不需要看到外掛的原始碼。
第二點是真正打破中心化市集控制的關鍵。當外掛能做的事被宣告式權限嚴格框住,使用者要判斷「能不能信任它」就不必那麼依賴第三方市集的人工把關。一個外掛可能有幾萬行程式碼,但只要它只宣告了三件事,你加裝它時就知道自己究竟給了它什麼。Cloudflare 在官方文章裡用了一個比方:如果你信任一座城市的食品安全有在把關,你會願意嘗試新餐廳;如果你總擔心湯裡被放了圖釘,你每試一家前都要先查 Google,開餐廳對所有人都很難。安全模型劃出邊界,讓信任更容易發生,市集也才能更自由地流動。

不只安全:結構化內容、AI 原生與可攜部署
把安全講完之後,EmDash 還有幾個設計值得拆開來看,它們共同回答了「為什麼這是一個屬於這個時代的 CMS」。
第一是結構化內容。WordPress 把富文本存成夾雜註解的 HTML,內容與它的 DOM 結構綁死;EmDash 改用 Portable Text,一種結構化的 JSON 格式,把內容與呈現脫鉤。同一份內容可以渲染成網頁、手機 app、電子郵件或 API 回應,不必回頭解析 HTML。內容類型定義在資料庫裡,由後台視覺化的 schema builder 建立,每一種 collection 都是一張有型別欄位的真實 SQL 資料表,開發者還可以從線上 schema 產出 TypeScript 型別。這代表內容資產不會被綁在某一種呈現方式上,對日後想做多頻道輸出(網站、app、語音摘要)的團隊是結構性的優勢。
更值得單獨拆開的是它對 AI 代理的設計,這也是「為代理打造」的具體兌現。EmDash 內建三樣東西:Agent Skills,會告訴你的 AI 代理 EmDash 能提供哪些能力、有哪些 hook、怎麼寫外掛,甚至怎麼把舊 WordPress 主題移植過來;EmDash CLI,讓代理可以程式化地上傳媒體、搜尋內容、管理 schema,做所有後台能做的事;以及一個內建的 MCP server,讓 Claude、ChatGPT 這類工具能直接與你的站互動。換句話說,最無聊的內容搬移、欄位轉換、重新命名這類繁瑣工作,EmDash 設計成可以交給代理代勞。
用一個具體一點的流程來感受「AI 原生」實際長什麼樣。假設你想新增一個「文章發布後自動發到外部社群」的功能,傳統做法是找外掛、裝、設定。在 EmDash 裡,你可以把站點的 MCP server 接給你的 AI 工具,讓代理讀懂 EmDash 的 Agent Skills(它會說明有哪些 hook、怎麼宣告 capability、怎麼寫外掛),接著代理透過 EmDash CLI 建立一個新外掛,宣告 content:afterSave 這個 hook 與必要的網路權限,產出符合規範的外掛骨架,再由你審過權限清單後安裝。整個過程裡,代理做的是繁瑣的樣板與搬移,你做的是判斷與把關。要強調的是,這個流程是根據官方文件描述的能力推導出的合理工作方式,不是逐字實測的步驟錄影;實際的指令名稱、hook 名稱與可用能力,仍以你安裝版本裡的 Agent Skills 與文件為準。

可攜與不鎖死是另一個面向。EmDash 在每一層都用可攜抽象:SQL 用 Kysely、儲存用 S3 API,因此能跑在 SQLite、Cloudflare D1、Turso、PostgreSQL、R2、AWS S3 或本地檔案上。官方說它在 Cloudflare 上跑得最好,但不鎖死在 Cloudflare。這對擔心被單一廠商綁住的團隊是一個重要的保險。不過要留意一個但書:沙箱外掛的 Dynamic Workers 是 Cloudflare 特有的能力,一旦你把 EmDash 搬到別的 Node.js 環境,這個最關鍵的安全特性就會跟著失效,等於回到「外掛與主程式共用執行環境」的舊世界。
認證是常被忽略、卻會直接影響維運負擔的一環。EmDash 預設用 passkey(WebAuthn),沒有會外洩的密碼、沒有暴力破解面,搭配 OAuth 與 magic link 作為備援,並有管理員、編輯、作者、投稿者這套熟悉的角色權限,還能接 SSO 與 IdP 自動開通。和 WordPress 對照會更清楚:WordPress 預設仍是帳號密碼,要強認證通常得另裝二階段驗證外掛,而 EmDash 把 passkey 放進地基,等於把「強認證」從一個要額外安裝的東西變成預設值。對多人協作的發布流程來說,少裝一個 2FA 外掛,就少一個需要維護與更新、也少一個可能被攻破的環節。
前端與主題:Astro 帶來的熟悉感與安全邊界
EmDash 的主題就是一個 Astro 專案。和 WordPress 靠 functions.php 串接後台邏輯的做法不同,EmDash 的主題是純粹的前端 Astro 專案,不碰資料層,所以前端工程師能獨立改主題、而不會動到 CMS 邏輯。根據官方說明,一個 EmDash 主題包含用來渲染內容的頁面、共享版面、可重用元件、樣式,以及一份告訴 CMS 要建立哪些內容類型與欄位的 seed 檔(JSON 格式)。這套結構對前端開發者很熟悉,對已經大量學過 Astro 的大型語言模型也很熟悉,等於讓「AI 協助改主題」這件事變得可行。
這裡有一個與 WordPress 截然不同的安全邊界值得單獨點出。WordPress 的佈景主題透過 functions.php 整合,而 functions.php 是一個幾乎什麼都能做的執行環境,讓佈景同時具備強大與危險兩面;越主流的佈景,越容易成為攻擊目標。EmDash 的主題設計把這個風險反過來處理:官方明確指出,你的主題永遠不能執行資料庫操作。主題能做版面與呈現,不能碰資料底層,這讓主題的安全風險被收斂在一個可控的範圍裡,「換個佈景會不會把站搞壞」這類焦慮也跟著大幅降低。
serverless 與 AI 時代的計費:scale-to-zero 與 x402
WordPress 不是 serverless,它需要你預先準備與管理伺服器,為了效能與流量尖峰,免不了要預留一些閒置運算。EmDash 走的是相反方向,它建在 Cloudflare 開源執行環境 workerd 的 v8 isolate 架構上:請求一進來,Workers 執行環境瞬間啟一個 isolate 來處理並回應,沒有請求就縮回零,而且只對實際做事的 CPU 時間計費。Cloudflare 官方文章進一步說明,在 Cloudflare 上你可以用同一套全球網路與執行環境,跑大量可瞬間縮回零、並能快速擴展的 EmDash 實例,官方原文以「數百萬個」來形容這樣的規模。

對已經習慣「為了應付偶發流量而長年養著一台機器」的人來說,這個差別會直接反映在帳單上,尤其是那種內容必須即時伺服器渲染、無法完全快取的站點。把計費模型想清楚,就會發現 EmDash 的成本結構對「平時流量不大、偶爾爆量」的內容站相對友善,因為你不必為了那幾次的尖峰而常駐一台高規機器。
另一個更前沿、也更能反映 Cloudflare 對「網路的下一個商業模式」怎麼想的設計,是 x402 的內建支援。x402 是一套開放、中立的網路原生付款標準:客戶端(例如一個 AI 代理)送出 HTTP 請求,伺服器回 HTTP 402 Payment Required,客戶端再按需付費取得內容。EmDash 把它做進每一個站,代表你不用寫程式、不用搞訂閱機制,就能對特定內容收費,根據官方說明只要設定哪些內容要收費、收多少、並提供一個錢包地址即可。官方把這套機制定位為面向 AI 時代的內建商業模型,背後的假設是:當造訪網站的越來越常是代人類行動的代理、而不是會看廣告的人,內容創作者需要新的收費路徑。這套機制目前還很新,離主流還有距離,但它是 EmDash 與其他 CMS 在願景上明顯不同的地方。

EmDash vs WordPress:關鍵差異與誰該用誰
把前面的設計整理成一張比較表,這張表要你看的是不同情境下哪一邊更合用。
| 面向 | WordPress | EmDash | 什麼情況偏向這一邊 |
|---|---|---|---|
| 技術棧 | PHP + MySQL,外掛與佈景主題可直接存取資料庫與檔案系統 | TypeScript + Astro,跑在 workerd 的 v8 isolate | 已有 PHP 技術堆疊、需要極致生態系成熟度 → WordPress;想用現代 JS 與邊緣運算 → EmDash |
| 外掛安全 | 無隔離,外掛可直接存取資料庫與檔案系統,是多數安全問題的源頭 | 沙箱化,能力由 manifest 宣告,預設無對外網路 | 對外掛風險高度敏感、無力逐一審查 → EmDash |
| 外掛生態系 | 數萬個外掛,涵蓋電商、會員、SEO、表單等 | 剛起步,多數需求需自行開發 | 重度依賴特定大型外掛(如電商、會員)→ WordPress;需求單純或願自行開發 → EmDash |
| 內容儲存 | 富文本為夾雜註解的 HTML | Portable Text 結構化 JSON | 內容需跨多種呈現(web、app、API)重用 → EmDash |
| 部署與計費 | 需自備伺服器,常需預留閒置運算 | serverless,scale-to-zero,只算 CPU 時間 | 流量波動大、想壓低閒置成本 → EmDash |
| AI 整合 | 多為外掛與第三方整合 | 內建 Agent Skills、CLI、MCP server | 想讓 AI 代理直接管理站點內容 → EmDash |
| 成熟度 | 24 年,極穩定 | v0.1.0 預覽版,仍在快速變動 | 需要穩定 SLA、關鍵生產站 → WordPress;可接受 beta、新專案 → EmDash |
(表格「外掛安全」欄的九成六數字,完整出處與歸屬請見前面「沙箱外掛」段的 Patchstack 說明。)對著自己的處境一欄一欄往下對,如果你每一欄都落在 WordPress 那一側,現在沒有理由動;如果你落在 EmDash 那一側的欄位夠多,就適合認真評估。評估時也別只看技術欄,把你的時程壓力、可用預算與團隊的技術能力一起放進來看,這三個變數往往比技術規格更能決定一次遷移專案最後成不成功。

該不該現在採用:成熟度、成本與限制的誠實評估
這是整篇文章最該誠實的一段。EmDash 的願景很吸引人,但有幾個會直接影響你決策的現實門檻,必須說清楚。
排在最前面的是成熟度風險。EmDash 還是 v0.1.0 預覽版,官方自己也是以「早期開發者 beta」的姿態釋出,並邀請社群回饋與貢獻。預覽版意味著 API、schema、行為都可能在後續版本調整,文件也可能落後於實作。把一個關鍵的生產站整個押上去,等於自願承擔這份變動風險。
緊接著是成本門檻。EmDash 的安全賣點完全建立在 Dynamic Workers 之上,而根據儲存庫 README,Dynamic Workers 目前只在付費帳號提供,Cloudflare 的開發者平台方案 從每月 5 美元起跳。如果你用免費方案,就得把 wrangler.jsonc 裡的 worker_loaders 區塊註解掉,代價是停用外掛功能,也就是說你最想用的那個差異化特性會整個關掉。這是一個會直接影響總擁有成本的門檻,並不是「免費開源就能無痛跑」。
生態系的距離同樣現實。WordPress 有數萬個外掛覆蓋電商、會員、SEO、表單、快取等幾乎所有需求;EmDash 的外掛與主題數量還在很早期的階段。如果你現有的站重度依賴某些大型 WordPress 外掛,例如電商或會員系統,這些在 EmDash 裡很可能要自行開發或等待社群。儲存庫雖然提供 Blog、Marketing、Portfolio 三個起始模板,但離 WordPress 佈景與外掛的廣度還很遠。
最後是本文的研究邊界。所有關於行為、效能、中文相容性的描述,都基於官方文件與儲存庫,屬於推論而非第一手實測;舉凡「實際部署後中文內容、排序、全文搜尋表現如何」「實際遷移一個中型 WordPress 站會遇到哪些摩擦」,都需要你自己在測試環境驗證,不宜直接照搬本文的推論當成結論。
把這些門檻綜合起來,可以得出一個樸素的分流判斷。如果你的情境是新專案、技術團隊主導、想擁抱 serverless 與 AI、外掛需求低或願意自己寫、可以接受 beta 與每月 5 美元的 Dynamic Workers,現在就適合開一個 EmDash 站認真試。如果你現有的是大型 WordPress 生產站、重度依賴特定外掛、需要穩定 SLA、由非技術團隊維運,現階段貿然全面遷移的風險大於好處。介於兩者之間最務實的做法,是用 EmDash 起一個子站或實驗站,主站維持 WordPress 不動,一邊觀察 EmDash 的成熟度,一邊累積團隊對新棧的掌握度。

現階段 EmDash 明顯做不到的事
把願景講完,也要把目前做不到的事攤開,這些往往是決定「現在要不要用」的關鍵。把它們列清楚,是為了讓你評估時不會被願景帶著走,而漏掉自己其實高度依賴、卻還沒有著落的功能。
電子商務是最大一塊。WordPress 有 WooCommerce 這類成熟方案,EmDash 目前沒有對等選擇,結帳、訂閱、會員權限都得自行用外掛開發。視覺化頁面編輯器也是同理:WordPress 生態系有 Elementor、區塊編輯器等讓非技術人員直接排版的方式,EmDash 的主題是 Astro 專案,版面調整仍偏前端工程師的工作,還沒有等價的所見即所得體驗。
外掛與佈景的數量與分類也還在很早期。許多 WordPress 使用者習慣的特定類別,例如特定的 SEO 工具、表單、快取、多語系外掛,在 EmDash 裡未必有對應,需要自行開發或等社群補上。後台介面的繁體中文化、中文全文搜尋的分詞行為,官方也都尚未正式提供,需要你自行驗證。
與其說是設計缺陷,不如說是 v0.1 預覽版必然的現狀。判斷的標準很直接:把你現在倚賴、且 EmDash 還做不到的功能逐一列出來,如果清單上有任何一項是你的站「不能沒有」的,那就先把這項的替代或自建成本算進去,再決定要不要動。
二級判斷:分流之外的五個細節問題
前面給的是大方向的新舊站分流,真正會左右成敗的,往往是下面這些更細、前文沒有直接回答的判斷點。逐一對照,可以幫你把「適不適合」看得更具體。
你的站是否依賴特定的 WordPress 工作流,例如 WP-CLI 指令、Rank Math 或 Yoast 的 SEO 中繼資料、固定連結結構?這些不會隨 WXR 自動搬到 EmDash,遷移後要手動重建,處理不好會直接影響既有排名與收錄。
團隊有沒有 serverless 或邊緣運算的維運經驗?Cloudflare Workers 的除錯、日誌、監控方式與傳統 VPS 不同,沒接觸過會有一段學習曲線,出問題時排查節奏也會跟著變。
你是否需要保留大量已建立的結構化資料與 schema.org 標記?EmDash 用 Portable Text 與 schema builder 重新組織內容,舊的結構化資料要重新對應,這在內容資產龐大的站會是一筆實實在在的工程。
你能否接受 beta 期文件落後實作、需要自己翻原始碼找答案?開源預覽專案常見的狀況是功能先上、文件後補,這對「照文件操作」的團隊會比较吃力。
你是否需要多人協作裡非常細粒度的審稿與發布流程?EmDash 有管理員、編輯、作者、投稿者的角色權限,但發布工作流(多階審核、排程協作)的成熟度仍待驗證,重度倚賴這類流程的話要自行確認。
在地實務:可用性、成本與中文考量
Cloudflare 是全球服務,台灣使用者可以直接使用,沒有地區封鎖的問題。需要留意的是計價以美元計算:Dynamic Workers 所在的開發者平台方案是每月 5 美元起,加上後續依用量計費,實際花費會隨流量與 CPU 使用浮動,匯率也會讓成本感受略有不同。
中文內容的處理是另一個需要自己驗證的重點。EmDash 以 TypeScript、Astro、Portable Text 為基礎,底層使用 UTF-8,理論上儲存與顯示繁體中文沒有障礙;但後台介面的在地化程度、日期與排序的中文行為、全文搜尋(FTS5)對中文分詞的支援,這些都會影響實際使用體驗,而 Cloudflare 官方公告目前有英文、日文與韓文版本,就是沒有繁體中文。這個缺口正是像本篇這類深度繁中解說存在的價值,但也意味著你在導入時要做好「介面與文件得自己消化」的準備。
對以 SEO 與內容資產為核心的團隊,EmDash 有兩個適合長期觀察的方向。一是結構化內容:Portable Text 把內容與呈現脫鉤,加上 Astro 的伺服器端渲染,對搜尋引擎與 AI 摘要系統理解頁面相對友善。二是 AI 原生管理:內建 MCP server 讓 AI 工具能直接讀寫站點內容,在「AI 代理代讀者取用內容」日漸普遍的趨勢下,這會影響內容被發現與被引用的方式。不過有幾件事換了 CMS 也不會改變:內容本身的品質與原創性、外部連結與作者權威、站內連結與主題聚類的扎實度,這些依然是排名與能見度的根本。把 EmDash 當成「讓上述努力更容易被機器讀懂」的載具,會比把它當成「換了就會排名變好」的魔法踏實得多。
動手試用:本機起一個 EmDash 站與 WordPress 匯入
如果想自己感受 EmDash,最低門檻是先用官方在文章裡提供的 EmDash Playground,在瀏覽器裡試後台介面,不必安裝任何東西。覺得方向對了,再進到實際部署。
建立一個新的本機 EmDash 站,官方提供的指令是:
npm create emdash@latest
這會用官方模板引導你建一個新站。你也可以從 Cloudflare 儀表板部署,實際可用指令以官方儲存庫與文件為準。部署完成後,把 EmDash 加進 Astro 設定,就能得到一個完整的 CMS:後台面板、REST API、認證、媒體庫與外掛系統。
從 WordPress 匯入,官方提供三條路徑:從 WordPress 後台匯出 WXR 檔、透過 WordPress REST API、或從 WordPress.com 匯入。儲存庫也提供一個 EmDash Exporter 外掛,裝在 WordPress 站上後會設定一個只對你開放、受你控制的 WordPress 應用程式密碼保護的安全端點。匯入會自動把附帶媒體帶進 EmDash 的媒體庫。根據官方文章的說法,純內容搬移本身很快,但這指的是文章與媒體的標準內容,不包含自訂欄位、外掛行為與佈景的重新實作。

有幾樣東西不會自動搬過來,這是評估遷移成本時最容易低估的地方。其一是 shortcode 與頁面編輯器產生的內容:WordPress 裡大量用簡碼或 Elementor 等編輯器砌出來的版面,背後是外掛專屬的資料結構,匯入 WXR 不會把這些結構還原成 EmDash 的 Portable Text,多半需要重建。其二是外掛專屬資料:表單外掛的紀錄、SEO 外掛設定的中繼資料、會員外掛的資料表,這些都不在標準匯入範圍。其三是佈景的客製:WordPress 佈景裡 functions.php 寫的邏輯,在 EmDash 裡要重新思考成 Astro 元件與外掛的組合。WordPress 的自訂文章類型則可以對應成 EmDash 的內容類型,但同樣要手動設定。一旦你的站高度客製化,真正的成本會落在重建這些非標準資產上,而這部分往往才是遷移專案最吃工的地方。
對多數有包袱的站,分期遷移會比一次到位穩當。可以先挑一個獨立的子站或新頻道用 EmDash 起,把發布流程、中文行為與效能跑順;同時把主力留在 WordPress,用 EmDash 的 WordPress 匯入工具做單向內容搬移作為演練。等團隊對 Astro、外掛沙箱與 Portable Text 都摸熟了,再評估要不要把更多內容移過來。這種漸進方式讓你隨時能踩煞車,代價只是一段雙軌並行的維運期,而不是把整個站的命運押在一次大跳躍上。
常見問題
EmDash 是免費的嗎?
EmDash 本身是 MIT 授權的開源軟體,免費使用、可自行部署。但它最關鍵的沙箱外掛功能依賴 Dynamic Workers,而 Dynamic Workers 目前只在 Cloudflare 付費帳號提供,入門方案每月 5 美元起。用免費方案可以跑 EmDash,但必須停用外掛功能。
EmDash 現在適合用在我的正式站嗎?
目前是 v0.1.0 預覽版,官方以早期開發者 beta 的姿態釋出。對新專案、實驗站或技術團隊主導的場景很合適;對需要穩定 SLA、重度依賴特定 WordPress 外掛的關鍵生產站,建議先觀望或只做子站實驗。
我需要會寫程式才能用 EmDash 嗎?
基本的內容發布與後台操作不需要,因為內容類型可在後台視覺化建立。但要把 EmDash 用得深,例如自訂佈景主題、寫外掛、做遷移,會需要 TypeScript 與 Astro 的基礎。EmDash 的 Agent Skills 與 CLI 設計成可以讓 AI 代理分擔一部分這類工作。
EmDash 能完全取代 WordPress 嗎?
在功能願景上它瞄準相容於 WordPress,但外掛與佈景生態系還在很早期,無法逐一對應 WordPress 數萬個外掛。對生態系依賴低、需求可自行開發的站,取代是可行的;對重度依賴電商、會員等大型外掛的站,短期內還辦不到。
EmDash 跟 WordPress 比,SEO 上有差嗎?
EmDash 架在 Astro 上、支援伺服器端渲染,對搜尋引擎理解頁面相對友善;結構化的 Portable Text 內容也便於跨呈現重用。但 SEO 成敗最終取決於內容品質、網站結構與外部權威等既有因素,換 CMS 本身不保證排名提升。
Dynamic Workers 是什麼?
它是 Cloudflare Workers 的一種動態載入、隔離執行能力,EmDash 用它來跑沙箱化的外掛,讓每個外掛待在自己獨立的 isolate 裡。這項能力目前是 Cloudflare 付費方案的功能,也是 EmDash 安全模型的技術基礎;一旦離開 Cloudflare 的執行環境,這層沙箱就無法複製。
EmDash 只能跑在 Cloudflare 嗎?
不是。EmDash 用了可攜抽象(SQL 用 Kysely、儲存用 S3 API),可以跑在任何 Node.js 伺服器上,搭配 SQLite、PostgreSQL、Turso 等資料庫。但沙箱外掛這項安全特性依賴 Cloudflare 的 Dynamic Workers,搬離 Cloudflare 等於失去它,這是「可攜」與「完整功能」之間必須取捨的地方。
EmDash 支援電子商務嗎?
目前沒有對等於 WooCommerce 的成熟方案。WordPress 生態系裡的電商、會員、訂閱等功能,在 EmDash 裡多半需要自行用外掛開發,或等待社群補上。如果你的站核心就是電商交易,現階段 EmDash 還不是合理的選項。
誰在維護 EmDash?
EmDash 是 Cloudflare 的專案,官方介紹文章由 Cloudflare 的 Matt “TK” Taylor 與 Matt Kane 共同署名,原始碼在 emdash-cms/emdash 儲存庫以 MIT 授權開源,接受社群貢獻,聯絡窗口是 [email protected]。它雖然由 Cloudflare 主導,但因為開源、又能跑在非 Cloudflare 環境,並不是一個被封死的封閉產品。
結語:把 EmDash 當成一個值得長期追蹤的方向
EmDash 的份量,在於它把「外掛沙箱化」這件過去很難做好的事,變成了 CMS 的地基,並且把結構化內容、AI 原生管理與 serverless 計價一併重做。對一個已經被外掛安全問題、伺服器維運與閒置成本折騰多年的 WordPress 站長來說,這個方向適合長期追蹤。
但它的現狀也要看清楚:v0.1.0 預覽版、外掛生態系剛起步、沙箱外掛需要付費方案。把這兩面放在一起,最務實的下一步是用 EmDash 開一個實驗站,拿一個不那麼關鍵的內容需求試水溫,同時把主站維持在 WordPress 上不動。等 EmDash 走過預覽版、外掛生態系補上、你對新棧的掌握度也夠了,再決定要不要進一步遷移,會是風險與機會都比較平衡的路徑。
