2026年Jamstack已死嗎?炒作消退後發生了什麼
你的部署完成,12,000個靜態頁面發送到CDN。沒有伺服器啟動。沒有數據庫查詢在請求中觸發。它快速、版本化,託管成本為19美元/月——正是Netlify在2019年創造「Jamstack」術語時向你承諾的。但到了2026年,沒有人再這樣叫它了。該架構活了下來。品牌卻沒有。你看到的不是死亡——而是變異。Gatsby陷入了維護模式。Next.js吸收了一半的生態系統,並轉向React服務器組件。Astro推出了島嶼架構,並將靜態生成稱為「顯而易見的預設值」。你所依賴的模式分裂成了五種相競爭的理念,每一種都聲稱通過不是Jamstack來做得更好。
現在是2026年,談話內容發生了巨大變化。Jamstack Discord伺服器更安靜了。Gatsby實際上已死。Netlify裁減了大量員工。然而——這是人們忽視的部分——Jamstack背後的想法無處不在。它們只是不再帶著這個標籤了。
那麼Jamstack死了嗎?老實說答案很複雜,我認為細緻入微的理解比聳人聽聞的標題更重要。
目錄
- Jamstack的真實含義
- 衰退時間表
- Jamstack永久勝利的地方
- Jamstack失利的地方
- 伺服器組件和混合渲染的興起
- Next.js應用路由:Jamstack的殺手還是其演進?
- Astro與靜態生成的文藝復興
- 無頭CMS層:比以往更強大
- 2026年現代架構實際上的樣子
- 常見問題

Jamstack的真實含義
讓我們精確定義,因為許多「Jamstack已死」的討論都存在人們爭論不同事物的問題。
原始Jamstack(JavaScript、API、標記)有幾個核心原則:
- 預呈現:在構建時生成HTML,而不是請求時
- 解耦:將你的前端與後端/CMS分離
- CDN優先:從邊緣提供所有內容
- API驅動:通過API和無伺服器函數處理動態功能
關鍵的哲學承諾是構建時間優於請求時間。你在部署期間進行一次繁重的工作,每個訪問者都獲得快取的結果。
這對部落格、營銷網站、文檔和電子商務產品頁面效果顯著。它對任何需要個性化、實時數據或每幾分鐘變更一次內容的功能效果很差。
衰退時間表
以下是Jamstack敘述如何崩潰的大致過程:
| 年份 | 事件 | 影響 |
|---|---|---|
| 2020 | Gatsby融資2,800萬美元C輪 | Jamstack炒作高峰 |
| 2021 | Next.js推出ISR(增量靜態再生) | 模糊靜態和動態之間的界限 |
| 2022 | React服務器組件宣佈 | 向伺服器渲染的範式轉變 |
| 2023 | Next.js應用路由穩定,Gatsby使用率暴跌 | 混合渲染成為預設值 |
| 2023 | Netlify收購Gatsby,然後基本上擱置它 | 「純」Jamstack的象徵性終結 |
| 2024 | Astro 4.x獲得主要牽引力,Vercel推進PPR | 靜態生成以新形式延續 |
| 2025 | Next.js 15搭載成熟的RSC模式 | 伺服器優先成為主流預設值 |
| 2026 | 「Jamstack」一詞很少出現在職位列表或招標書中 | 品牌已死,原則持續 |
Gatsby的故事特別值得說明。在其高峰期,Gatsby擁有數千個外掛程式、龐大的社區和真正的企業採用。到2024年,其npm下載量較高峰下降超過80%。Netlify的收購並未拯救它——這更多是一次悄悄風行的聘僱行為。
但將Gatsby的衰落歸咎於「Jamstack死亡」則忽略了要點。Gatsby衰落是因為它有真實的技術問題:荒謬的長構建時間、複雜的數據層(GraphQL用於所有事物,無論你是否想要),以及變成負擔的外掛生態系統。Next.js擊敗Gatsby不是因為靜態生成是錯誤的,而是因為Next.js做得更好並提供了更多靈活性。
Jamstack永久勝利的地方
以下是我認為人們對「Jamstack已死」敘述的理解中的重大誤解:核心想法贏得如此徹底,以至於我們停止注意到它們。
解耦架構是預設值
最大的Jamstack勝利是解耦前端現在是任何嚴肅網路項目的常規做法。在2018年,你必須為將前端從WordPress或你的CMS分離進行辯論。在2026年,問題不是「我們應該解耦嗎?」——而是「哪個無頭CMS和哪個前端框架?」
這是永久性的架構轉變。沒有人會回到新項目的單一龐大PHP模板(遺留代碼維護是另一個故事)。無頭模式——無論你是否稱其為Jamstack——已經勝出。
我們在我們的無頭CMS開發工作中不斷看到這一點。客戶不再問「我們應該使用無頭嗎?」他們問哪個無頭CMS適合他們的內容模型。
CDN優先交付
每個主要框架和託管平台現在都優先考慮邊緣交付。Vercel、Cloudflare、Netlify、AWS——它們都假設你的內容應該盡可能靠近用戶。這在成為行業預設值之前是一個Jamstack原則。
基於Git的工作流程
你的網站從git推送部署的想法,經過CI/CD,並在進入生產前進入預覽URL?那在2017年是激進的。現在是基本要求。每個前端平台都提供這個。Jamstack將其規範化。
靜態生成作為工具(不是宗教)
SSG並未死亡。它成為了許多工具之一。每個主要框架——Next.js、Astro、Nuxt、SvelteKit——都支持靜態生成。區別在於它現在是每頁選擇,而不是全有或全無的架構。

Jamstack失利的地方
誠實意味著也要承認真實的失敗。
構建時間是真實的問題
大型Jamstack網站的肮髒祕密是構建時間。我在2021年從事一個有40,000個產品頁面的項目。完整重建?45分鐘。即使有增量構建,任何架構變更都意味著重新開始。當你的內容編輯必須等待20分鐘才能在實時網站上看到變更時,你已經在關於開發者體驗的論證中失利了。
Next.js中的ISR和按需重新驗證是對此問題的直接回應。它們承認在構建時預呈現所有內容不能擴展到某個點之外。
個性化始終是個技巧
當所有人看到相同內容時,Jamstack網站表現很好。一旦你需要用戶特定的內容——登入狀態、個性化建議、A/B測試、地理目標定價——你就在與架構對抗。客戶端提取會造成佈局轉變。邊緣中介軟體增加了複雜性。你最後構建了一個帶額外步驟的伺服器呈現應用。
Jamstack中的「J」變得臃腫
Jamstack網站上的JavaScript套件大小失控了。Gatsby網站例常為本質上是部落格的內容運送300-500KB的JavaScript。靜態HTML是快速的,但隨後的混合步驟會在移動設備上鎖定主執行緒好幾秒。這是自我挫敗。
Astro的島嶼架構和伺服器組件都源於對此JavaScript膨脹問題的直接反應。
預覽和編輯體驗受損
習慣了WordPress實時預覽的內容編輯在Jamstack上度過了困難的時光。你會在CMS中變更標題,觸發webhook,等待構建,然後可能看到你的變更。像視覺編輯器和草稿模式的工具改進了事情,但體驗從未與傳統CMS開箱即用提供的相符。
伺服器組件和混合渲染的興起
React服務器組件(RSC)代表自SPA時代以來前端架構中最大的哲學轉變。它們在根本上與純Jamstack思想相衝突。
原因如下:RSC假設在請求時在伺服器上渲染是好的,實際上是。你不是預構建所有內容,而是在伺服器上渲染組件,將HTML串流到客戶端,並為不需要交互的組件發送零JavaScript。
這翻轉了Jamstack的劇本。它不是「在時間前構建所有內容並提供靜態文件」,而是「按需呈現,但對需要JavaScript的內容聰明」。
結果對自己說話。一個構建良好的RSC應用可以匹配或擊敗靜態網站的首字節時間,同時處理個性化、實時數據和動態內容,無需任何Jamstack解決方案。
// Next.js應用路由中的伺服器組件——沒有客戶端JS發送
async function ProductPage({ params }: { params: { slug: string } }) {
const product = await getProduct(params.slug);
const reviews = await getReviews(product.id);
return (
<main>
<h1>{product.name}</h1>
<p>{product.description}</p>
{/* 此組件在伺服器上運行。零KB發送到瀏覽器。 */}
<ReviewsList reviews={reviews} />
{/* 只有此交互組件運送JavaScript */}
<AddToCartButton productId={product.id} />
</main>
);
}
心智模型比Jamstack等效項更簡潔,在那裡你會靜態生成產品頁面,然後客戶端提取評論,然後混合購物車按鈕,處理每個的加載狀態。
Next.js應用路由:Jamstack的殺手還是其演進?
我認為兩者都是。Next.js沒有殺死Jamstack——它吸收了它。
Next.js 15在2025年支持你想要的所有渲染策略:
- 靜態生成(SSG):在構建時呈現的頁面
- 伺服器端渲染(SSR):每個請求呈現的頁面
- 增量靜態再生(ISR):在時間表上重新驗證的靜態頁面
- 部分預呈現(PPR):帶有伺服器呈現動態孔的靜態殼層
- 客戶端渲染:用於純交互組件
PPR特別有趣。它預呈現頁面的靜態殼層(佈局、導航、靜態內容)並留下孔用於在每個請求上伺服器呈現和串流的動態內容。它就像Jamstack和SSR生了一個孩子。
// 使用PPR,靜態部分被預呈現,動態部分串流
import { Suspense } from 'react';
export default function DashboardPage() {
return (
<main>
{/* 這在構建時被預呈現 */}
<h1>你的儀表板</h1>
<Navigation />
{/* 這在每個請求上動態串流 */}
<Suspense fallback={<DashboardSkeleton />}>
<PersonalizedContent />
</Suspense>
</main>
);
}
我們的Next.js開發實踐已大幅轉向這些混合模式。大多數項目現在在每個頁面或甚至每個組件的基礎上使用靜態和動態渲染的混合,在純Jamstack時代這將是異端。
框架級決定已從「靜態或動態」轉移到「每一塊內容需要什麼渲染策略?」這是一個更成熟的對話。
Astro與靜態生成的文藝復興
如果你想論證Jamstack活著,Astro是你最好的證據。
Astro採用了Jamstack的最佳部分——靜態生成、最少的JavaScript、預設快速——並構建了一個框架,修正了最糟糕的部分。其島嶼架構意味著你預設運送零JavaScript,並且只在需要時選擇交互。
對於內容繁重的網站,Astro的方法很難被擊敗:
- 典型的Astro部落格頁面運送0KB的JavaScript,除非你明確添加交互組件
- 構建時間很快,因為Astro不捆綁完整的React執行時
- 內容集合提供了類型安全的內容層,無需GraphQL複雜性
- 你可以使用React、Vue、Svelte或純HTML組件——選擇你的毒藥
---
// 這是一個Astro組件。它只在構建時運行。
const posts = await getCollection('blog');
---
<html>
<body>
<h1>部落格</h1>
{posts.map(post => (
<article>
<h2><a href={`/blog/${post.slug}`}>{post.data.title}</a></h2>
<p>{post.data.excerpt}</p>
</article>
))}
{/* 只有此島嶼運送JavaScript */}
<SearchWidget client:load />
</body>
</html>
Astro的伺服器島嶼(在2024年末引入)增加了在否則靜態頁面中擁有動態伺服器呈現組件的能力——本質上從靜態優先方向到達了類似於Next.js PPR的目的地。
我們在我們的Astro開發工作中越來越多地使用Astro處理營銷網站、文檔和內容驅動的項目,其中性能是優先事項,交互需求謙虛。
| 功能 | Next.js(應用路由) | Astro 5.x | 舊Jamstack(Gatsby) |
|---|---|---|---|
| 預設渲染 | 伺服器(RSC) | 靜態(SSG) | 靜態(SSG) |
| 運送的JavaScript | 每個組件 | 預設為零 | 完整React執行時 |
| 構建時間(10k頁面) | ~3-5分鐘 | ~1-2分鐘 | ~15-30分鐘 |
| 動態內容 | 原生(RSC/SSR) | 伺服器島嶼 | 客戶端提取 |
| 個性化 | 內建 | 中介軟體+島嶼 | 最多是技巧 |
| CMS集成 | 優秀 | 優秀 | 取決於外掛 |
| 學習曲線 | 陡峭(RSC模型) | 中等 | 中等至高 |
| 最適合 | 應用+內容混合 | 內容優先網站 | 部落格(歷史上) |
無頭CMS層:比以往更強大
以下是讓我最難反駁「Jamstack已死」敘述的東西:無頭CMS市場蓬勃發展。如果該架構確實死亡,其內容基礎設施不會繁榮。
無頭CMS市場在2024年的價值約為21億美元,預計到2030年將達到55億美元(各種分析師估計將CAGR放在20-25%)。主要參與者都在發佈強勁的增長:
- Contentful繼續主導企業無頭CMS,在2025年改進了可組合性功能
- Sanity以其實時協作編輯和GROQ查詢語言快速增長
- Storyblok通過其視覺編輯器開闢了強大利基,解決了困擾早期Jamstack的預覽問題
- Payload CMS(開源、自託管)已經以希望完全控制的開發者獲得了真正的牽引力
- Hygraph(以前的GraphCMS)繼續服務GraphQL優先的團隊
無頭CMS不在乎你的前端是否使用靜態生成、伺服器組件或信鴿。它通過API提供結構化內容。就這樣。渲染策略是你的前端的問題。
此解耦是最耐久的Jamstack遺產。內容層和展示層分離不是一個趨勢——它是一個在品牌死亡後倖存的架構原則。
2026年現代架構實際上的樣子
那麼,如果我們不稱其為Jamstack,我們如何稱呼大多數現代網站的構建方式?我在對話中一直使用「無頭混合」,儘管我不喜歡它。該行業還沒有確定一個術語,這可能很好。我們不需要一個營銷標籤來表示良好的架構。
以下是2026年典型項目的樣子:
內容層:無頭CMS(Sanity、Contentful、Payload、Storyblok——根據需求和預算而定)
前端框架:Next.js用於任何具有應用類功能或複雜交互的內容。Astro用於內容優先網站。如果團隊有這些偏好,使用SvelteKit或Nuxt。
渲染策略:混合。營銷頁面是靜態生成的。產品頁面使用ISR或PPR。用戶儀表板使用伺服器端渲染。交互式小工具使用客戶端渲染。框架處理所有這些。
託管:邊緣優先平台。Vercel、Cloudflare Pages、Netlify或AWS(CloudFront + Lambda@Edge),具體取決於規模和預算。
構建過程:基於Git的CI/CD,帶預覽部署。來自CMS的Webhook觸發的重新驗證。
如果你眯著眼睛,這看起來很像Jamstack有更多靈活性。而那基本上就是要點。
我們在我們的無頭CMS開發契約期間幫助客戶進行的架構決策反映了這種混合現實。沒有適合所有人的呈現策略。正確答案取決於內容量、個性化需求、編輯工作流要求和預算。如果你正在為自己的項目權衡這些取捨,我們很樂意談論。
常見問題
2026年Jamstack死了嗎? 該品牌實際上已死——你在許多職位列表或招標書中看不到「Jamstack」。但核心架構原則(解耦前端、CDN交付、API驅動內容、基於Git的工作流程)比以往任何時候都更廣泛。它們已被主流網路開發完全吸收,以至於它們不需要單獨的標籤。Gatsby具體來說已死。該哲學堅持。
什麼取代了Jamstack? 像Next.js(帶應用路由和RSC)、Astro、Nuxt 3和SvelteKit這樣的混合渲染框架已取代純靜態生成方法。這些框架讓你為每個頁面甚至每個組件選擇正確的渲染策略——靜態、伺服器呈現或客戶端。無頭架構模式(解耦CMS +前端框架+邊緣託管)仍然是標準;它只是不再帶著Jamstack標籤。
2026年靜態網站生成仍然相關嗎? Absolutely。SSG對於不經常變更且不需要個性化的內容仍然是最佳選擇——部落格、文檔、營銷頁面、著陸頁。Astro已成為靜態優先網站的首選框架。Next.js和Nuxt仍然在許多渲染選項中支持SSG。改變的是SSG現在是一個在適當時到達的工具,而不是整個架構哲學。
Gatsby發生了什麼? Gatsby在2023年初被Netlify收購,實際上已被停用。其最後一次有意義的更新是在2023年。生態系統崩潰了,因為外掛維護者已轉向Next.js、Astro和其他框架,社區遷移了。Gatsby的核心問題——過度的構建時間、強制GraphQL數據層、龐大的JavaScript包和複雜的外掛系統——從未得到充分解決。
我在2026年應該仍然使用無頭CMS嗎? 是的,無頭CMS平台的市場比以往任何時候都更強大。Contentful、Sanity、Storyblok、Payload CMS等都已大幅成熟。無頭CMS解耦是最耐久的Jamstack原則。它讓你獨立選擇前端,在通道中重複使用內容,並避免與龐大平台的供應商鎖定。除非你正在構建個人部落格(markdown文件很好),否則無頭CMS值得投資。
React服務器組件如何改變Jamstack方程? RSC從「在構建時預呈現」根本上轉變為「在請求時在伺服器上呈現」的預設值。伺服器組件在伺服器上運行,向瀏覽器運送零JavaScript,並可以直接訪問數據庫和API。這消除了許多Jamstack對動態內容所需的解決方案——不再有客戶端提取、加載微調器或伺服器可能包含在初始響應中的數據的佈局轉變。RSC使伺服器渲染感到與靜態生成一樣符合人體工程學。
Next.js應用路由值得從Jamstack設置遷移到嗎? 取決於你解決什麼問題。如果你當前的靜態設置處理你的需求——你的內容主要是靜態的,構建速度足夠快,你不需要個性化——沒有急迫的理由遷移。如果你在與構建時間對抗、添加越來越複雜的客戶端數據提取或在預覽工作流中苦惱,應用路由的混合渲染模型可能值得遷移成本。RSC和應用路由的學習曲線是真實的,所以將其納入你的決定。
2026年新內容網站的最佳框架是什麼? 對於純內容網站(部落格、文檔、營銷),Astro很難被擊敗——預設為零JavaScript、快速構建、優秀的DX和出色的無頭CMS集成。對於混合內容和應用功能的網站(電子商務、用戶賬戶、儀表板),Next.js通過其混合渲染選項為你提供最大的靈活性。如果你的團隊更喜歡Vue,Nuxt 3提供了與Next.js類似的功能。在這三者中沒有錯誤的答案;選擇取決於你的團隊的專業知識和項目的特定需求。