我們仍在交付手工打造的前端,而 AI 已經能夠生成完整的介面。如果瀏覽器本身能根據 API manifest 和你的偏好來生成 UI 呢?
我們正處於前端開發一個真正奇特的轉折點。AI 現在能夠生成完整的介面。大型語言模型(LLM)能夠理解資料和佈局。然而——大多數 SaaS 產品仍然交付手工打造的 React 應用程式,每一個都建構自己的 UI、自己的無障礙性層、自己的佈景主題系統、自己的響應式斷點。並非所有服務都是如此,但絕大多數都是。
這對於本質上是相同工作——向人類展示一些資料並讓他們進行操作——來說,是大量的重複勞動。
我最近一直在深入思考這個問題,並建構了一個概念驗證來測試一個想法:如果瀏覽器本身生成 UI 呢?
業界正從多個角度圍繞這個想法打轉,但還沒有人真正實現它。
伺服器驅動 UI 已經存在一段時間了——Airbnb 等公司在行動裝置上率先採用了它,因為應用程式商店的審查週期使得 UI 變更的發布變得痛苦。伺服器會傳送一個描述要渲染內容的 JSON 樹,而客戶端只需遵循指示。這很聰明,但伺服器仍然是發號施令者。
Google 最近發布了 Natively Adaptive Interfaces——一個使用 AI 代理來讓無障礙性成為預設而非事後補救的框架。這是個非常棒的想法,也是正確的直覺。但它仍然在單一應用程式的界限內運作。你的無障礙性偏好不會在 Google 的產品和,比如說,你的專案管理工具之間傳遞。
然後是生成式 UI 的浪潮——CopilotKit、Vercel 的 AI SDK 等等,它們建構了讓 LLM 即時生成元件的框架。這些是強大的開發者工具,但它們仍然是開發者工具。生成發生在建構時或伺服器端。服務仍然在控制之中。
看到模式了嗎?每種方法都將權力保留在服務端。
這就是自適應瀏覽器背後的想法:如果生成發生在你這邊呢?
與其讓服務交付一個完成的前端,不如發布一個 manifest——一個結構化的描述,說明它能做什麼。它的功能、端點、資料形狀、可用的動作。你可以將它想像成一個 API 規格,但更具語義。不只是「這裡有一個 GET 端點」,而是「這裡有一個儲存庫列表,它們可以按星級和語言排序,你可以創建、刪除、標記或 fork 它們」。
你的瀏覽器會接收這個 manifest,呼叫實際的 API,獲取真實的資料,然後根據你的偏好生成 UI。你的字體大小。你的配色方案。你偏好的佈局(表格對卡片對看板)。你的無障礙性需求。所有這些都普遍適用於所有服務。
像 GitHub 這樣的東西的 manifest 大致如下——一個服務描述它的功能,而瀏覽器會處理其餘的:
瀏覽器接收這個,獲取資料,並生成一個訂製的介面——使用 LLM 來理解如何最好地呈現它,這取決於你是誰以及你正在做什麼。
當我在 Xero 建構應用程式商店和整合平台時,一個持續的痛點是每個第三方整合都有自己的 UI 模式。使用者必須為他們連接的每個應用程式學習一個新的介面。如果瀏覽器能根據共享的偏好生成 UI,這個問題就……消失了。
無障礙性是最大的問題。目前,無障礙性是一個事後才添加的功能——而且通常做得不好。當瀏覽器生成 UI 時,無障礙性不是一個功能。它是預設。你的偏好——高對比度、鍵盤優先導航、螢幕閱讀器優化、較大的文字——適用於所有地方。並非因為每個開發者都記得實現它們,而是因為它們已經內建在 UI 生成的過程中。
個人化也變得真正個人化。不是「從開發者製作的三種佈景主題中選擇」,而是「這就是我與軟體互動的方式,就這樣」。
前端的複雜性急劇下降,但複雜性並沒有消失——它轉移到了 API 之後。老實說,它可能還會增加。
API 設計變得更加重要。你不能隨便組合一些 REST 端點就了事。你的 manifest 需要具有語義——描述資料的含義,而不僅僅是它的形狀。服務之間的資料合約變得更重要。版本控制變得更重要。
但關鍵在於——這個權衡將我們推向了一個真正有趣的方向。如果每個服務都需要通過 API 和 manifest 來語義化地描述自己,那麼這些 API 就成為了實際的產品表面。不是前端。是 API。
一旦 API 成為產品表面,在平台之間共享上下文就成為一個有趣的問題。你的專案管理工具知道你在做什麼。你的電子郵件客戶端知道你在和誰說話。你的程式碼編輯器知道你在建構什麼。目前,這些工具之間沒有任何有意義的溝通,因為它們都被鎖在各自的 UI 背後。在一個以 manifest 為驅動的世界裡,這種上下文將通過 API 流動——而你的瀏覽器可以將它們縫合在一起,形成一個連貫的整體。
我認為我們還有 3-5 年的時間才能看到這個趨勢成為主流。所有零件都已到位——能夠理解 UI 的 LLM、關於通過 API 發送 UI 意圖的標準化工作,以及使用者越來越期望軟體能夠適應他們,而不是反過來。
在這個世界裡獲勝的服務將不是那些擁有最漂亮手工 UI 的服務。它們將是那些擁有最佳 API、最豐富 manifest 和最有價值資料的服務。前端將成為一個生成的輸出,而不是一個手工的輸入。
組織將設定偏好限制——「我們的人可以使用深色或淺色模式,必須有破壞性操作確認,這些欄位始終可見」——而個人則在這些限制內進行客製化。你的瀏覽器將成為你的代理,而不僅僅是一個渲染器。
我建構了自適應瀏覽器作為一個概念驗證來測試這個想法——它使用 Claude 從 GitHub manifest 和 YAML 中定義的使用者偏好來生成 UI。它還很粗糙,但方向感覺是對的。
前端並未消亡。但我們所認為的「前端開發」即將改變。有趣的工作將轉移到 API 設計、語義資料合約以及建構足夠聰明的瀏覽器來充當真正的使用者代理。