<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Vercel | 锤子前端</title><description>Now vibe coding, so learning hammer FE ?</description><link>https://channel.meo-ai.com</link><item><title>《用 AI 定制框架替换 Next.js：一个静态网站的“超个性化”重构实验》</title><link>https://channel.meo-ai.com/posts/707</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/707</guid><pubDate>Mon, 14 Sep 2026 01:14:08 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《用 AI 定制框架替换 Next.js：一个静态网站的“超个性化”重构实验》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;br /&gt;&lt;a href=&quot;/search/result?q=%23Web%E5%BC%80%E5%8F%91&quot; title=&quot;#Web开发&quot;&gt;#Web开发&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF%E5%B7%A5%E7%A8%8B&quot; title=&quot;#前端工程&quot;&gt;#前端工程&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23AI%E8%BE%85%E5%8A%A9%E7%BC%96%E7%A8%8B&quot; title=&quot;#AI辅助编程&quot;&gt;#AI辅助编程&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23NextJs&quot; title=&quot;#NextJs&quot;&gt;#NextJs&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E9%9D%99%E6%80%81%E7%BD%91%E7%AB%99&quot; title=&quot;#静态网站&quot;&gt;#静态网站&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A1%86%E6%9E%B6&quot; title=&quot;#自定义框架&quot;&gt;#自定义框架&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96&quot; title=&quot;#性能优化&quot;&gt;#性能优化&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Vercel%E9%83%A8%E7%BD%B2&quot; title=&quot;#Vercel部署&quot;&gt;#Vercel部署&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;&lt;br /&gt;作者 Max Leiter 用 Claude Code（Fable 5 架构、Opus 实现）在约 3 小时内把个人博客从 Next.js 迁移到了一个为站点量身定制的静态构建框架。新方案把全站编译成纯 HTML，按需加载少量 Preact islands，结果页面体积、Lighthouse 分数、构建时间全面大幅优于 Next.js；代价是放弃了框架生态的无数隐性优化，后续维护与安全问题也由自己承担。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;&lt;br /&gt;1. 作者让 AI “按需造一个比 Next.js 更快的专属框架”，核心思路是只保留这个网站真正用到的 Next.js 功能，而不是继续背着整个框架跑。&lt;br /&gt;&lt;br /&gt;2. 新框架本质上是一个构建脚本：读取文章目录，用 React 在服务端渲染每条路由为静态 index.html，再按 &lt;mark class=&quot;highlight&quot;&gt;Vercel&lt;/mark&gt; Build Output API 输出，M2 MacBook 上热构建只要约 0.5 秒。&lt;br /&gt;&lt;br /&gt;3. 性能提升非常夸张：首页 JS 从 208 KB 降到 2.3 KB（约 -99%），移动端 LCP 从 2.4 秒降到 1.3 秒，整页重量从 1153 KB 降到 78 KB，Lighthouse 直接冲到 100 分。&lt;br /&gt;&lt;br /&gt;4. 博客文章页同样收益明显：HTML 更小、JS 只剩 2.3 KB，移动端 LCP 从 2.2 秒降到 1.1 秒，页面重量从 405 KB 降到 57 KB，软导航也改成更轻的 partial/prerender 方案。&lt;br /&gt;&lt;br /&gt;5. 交互没有消失，而是改成“islands”模式：桌面窗口管理器和命令面板用 Preact 组件按需水合，命令面板首次按 Cmd+K 才加载，Preact 兼容层只有约 7 KB，比 React 的 52 KB 轻很多。&lt;br /&gt;&lt;br /&gt;6. 构建链路保留原有体验：MDX 仍在构建期用同一套 remark/rehype 插件编译，shiki 在构建时同时输出两套主题的代码高亮，所以切换主题不需要额外 JS。&lt;br /&gt;&lt;br /&gt;7. AI 还写了一个“parity harness”，对旧站 101 条路由做快照，对比 head、正文和代码块，结果抓出了 8 篇未发布文章泄漏进 RSS、以及一张 404 的 OG 图这类真实问题。&lt;br /&gt;&lt;br /&gt;8. 整个实验花费约 669 美元，API 运行 8 小时 27 分，代码新增 20914 行、删除 2022 行，大约用掉 Claude Code 20x 订阅额度的 10%。&lt;br /&gt;&lt;br /&gt;9. 作者认为这种做法的意义在于“只 vendor 你真正需要的东西”：框架被压缩到约 5000 行，人和模型都更容易审查，也能减少供应链攻击面。&lt;br /&gt;&lt;br /&gt;10. 缺点也很直白：Next.js 里成百上千个小优化和边界处理 AI 未必都知道或能复现；没有现成的 agent 工具链集成；安全修复不再自动从上游来；而且网站一旦有问题，bug、安全、功能需求都归你自己管。&lt;br /&gt;&lt;br /&gt;11. 文章还记录了两个浏览器层面的坑：Chrome 的跨文档 view transitions 会因 head 里的外部 module script 静默跳过入场动画，所以 runtime 必须内联；Safari 对 Speculation Rules 的 feature detection 需要同时检查 API 支持和 document.prerendering。&lt;br /&gt;&lt;br /&gt;12. 作者最后判断：未来可能会出现更多“vendoring”和 agentic rewrite，也就是所谓“slop forks”；更激进的猜测是，框架本身可能会消亡，因为框架真正值钱的是沉淀下来的庞大知识，而这些知识未来可能被蒸馏成 skills 或某种新标准。&lt;br /&gt;&lt;br /&gt;URL：&lt;br /&gt;&lt;a href=&quot;https://maxleiter.com/blog/thank-u-next&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://maxleiter.com/blog/thank-u-next&quot;&gt;https://maxleiter.com/blog/thank-u-next&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://maxleiter.com/blog/thank-u-next&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Replacing Next.js with a vibe-coded &amp;quot;framework&amp;quot;&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Max Leiter&apos;s website&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;thank u, next | Max Leiter&quot; src=&quot;/static/https://cdn4.telesco.pe/file/kdFAJcXQWvQ2Hj_EO_jXHHu2J1wxQFmIrOIai3MRmDev1LDm5NObdkw9VgPPK3jmGCVtjEshJuSDFb44jM17_RzpPl7XeG0dWZdV94wpyMni3pCIfuAIuWxSLYgtTMV7Ai4WbjKhd5NSW55lby8LaqIfZBwyIvm2PC9DyUqNV4QLsd3jzBGVCYlpAVn5vz0B1xnj_Oba_VkRiPQXzEpyY2BDSpSd1ncfHuZ3I9QzKfPmtGh9n2T167qhPgO2L6qvP_smC8glhYfXnFX1AToNywb10Bs3dvKsv6o6tHSuD9y7THN-_qUuKx7BVOUTLvr7eCxAi6n1grRoYoCFt8B2Cw.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;thank u, next | Max Leiter&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Replacing Next.js with a vibe-coded &quot;framework&quot;&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>《Mirage：AI Agent的统一虚拟文件系统》</title><link>https://channel.meo-ai.com/posts/629</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/629</guid><pubDate>Fri, 08 May 2026 23:24:01 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《Mirage：AI Agent的统一虚拟文件系统》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23AI_Tools&quot; title=&quot;#AI_Tools&quot;&gt;#AI_Tools&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23AI_Agent&quot; title=&quot;#AI_Agent&quot;&gt;#AI_Agent&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F&quot; title=&quot;#文件系统&quot;&gt;#文件系统&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Python&quot; title=&quot;#Python&quot;&gt;#Python&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23TypeScript&quot; title=&quot;#TypeScript&quot;&gt;#TypeScript&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23SDK&quot; title=&quot;#SDK&quot;&gt;#SDK&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23S3&quot; title=&quot;#S3&quot;&gt;#S3&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Slack&quot; title=&quot;#Slack&quot;&gt;#Slack&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23GitHub&quot; title=&quot;#GitHub&quot;&gt;#GitHub&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Redis&quot; title=&quot;#Redis&quot;&gt;#Redis&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E7%BC%93%E5%AD%98&quot; title=&quot;#缓存&quot;&gt;#缓存&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23OpenAI&quot; title=&quot;#OpenAI&quot;&gt;#OpenAI&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Vercel_AI_SDK&quot; title=&quot;#Vercel_AI_SDK&quot;&gt;#Vercel_AI_SDK&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23LangChain&quot; title=&quot;#LangChain&quot;&gt;#LangChain&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;Mirage 是一个专为 AI Agent 设计的统一虚拟文件系统，它将 S3、Google Drive、Slack、Gmail、Redis 等数十种后端服务挂载到同一棵文件树下。Agent 只需用熟悉的 Unix/bash 工具（如 grep、cat、cp）就能跨服务读写数据，无需学习 N 个 SDK 或 MCP。支持 Python/TypeScript SDK 和 CLI，可嵌入 FastAPI、Express 等应用，并内置双层缓存（索引缓存 + 文件缓存）减少网络开销，兼容 OpenAI Agents SDK、&lt;mark class=&quot;highlight&quot;&gt;Vercel&lt;/mark&gt; AI SDK、LangChain 等主流框架。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;- 统一挂载，万物皆文件：把 S3、GDrive、Slack、GitHub、MongoDB、Redis 等后端并排挂载到同一个根目录下，Agent 看到的始终只有一棵树&lt;br /&gt;- 零学习成本：任何懂 bash 的 LLM 都能直接上手，用 &lt;code&gt;grep&lt;/code&gt;、&lt;code&gt;cat&lt;/code&gt;、&lt;code&gt;cp&lt;/code&gt;、&lt;code&gt;wc&lt;/code&gt; 这些经典命令跨服务操作，不用记新 API&lt;br /&gt;- 双层缓存省流量：自带索引缓存（目录列表）和文件缓存（对象字节），默认用内存，也可切 Redis 共享给多进程/多机器&lt;br /&gt;- 多语言 SDK + CLI：提供 Python 和 TypeScript（Node / Browser / Core）SDK，以及轻量 CLI，可嵌入你的 FastAPI、Express 或浏览器应用&lt;br /&gt;- 主流框架即插即用：已适配 OpenAI Agents SDK、&lt;mark class=&quot;highlight&quot;&gt;Vercel&lt;/mark&gt; AI SDK、LangChain、Pydantic AI、CAMEL、OpenHands 等&lt;br /&gt;- 工作空间可移植：支持克隆、快照、版本化管理，Agent 运行环境能在机器间迁移而不必重新配置&lt;br /&gt;&lt;br /&gt;文章URL：&lt;a href=&quot;https://github.com/strukto-ai/mirage&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://github.com/strukto-ai/mirage&quot;&gt;https://github.com/strukto-ai/mirage&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://github.com/strukto-ai/mirage&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;The World&apos;s First Virtual Terminal for AI Agents. Contribute to strukto-ai/mirage development by creating an account on GitHub.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;GitHub&lt;/div&gt;
  
  &lt;div class=&quot;link_preview_title&quot;&gt;GitHub - strukto-ai/mirage: The World&apos;s First Virtual Terminal for AI Agents&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;The World&apos;s First Virtual Terminal for AI Agents. Contribute to strukto-ai/mirage development by creating an account on GitHub.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>《Portless：告别端口号的本地开发代理工具》</title><link>https://channel.meo-ai.com/posts/620</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/620</guid><pubDate>Sat, 02 May 2026 07:08:24 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《Portless：告别端口号的本地开发代理工具》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7&quot; title=&quot;#开发工具&quot;&gt;#开发工具&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%9C%AC%E5%9C%B0%E5%BC%80%E5%8F%91&quot; title=&quot;#本地开发&quot;&gt;#本地开发&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23DevServer&quot; title=&quot;#DevServer&quot;&gt;#DevServer&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23HTTPS&quot; title=&quot;#HTTPS&quot;&gt;#HTTPS&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Monorepo&quot; title=&quot;#Monorepo&quot;&gt;#Monorepo&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Turborepo&quot; title=&quot;#Turborepo&quot;&gt;#Turborepo&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Vercel&quot; title=&quot;#Vercel&quot;&gt;#Vercel&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;Portless 是 &lt;mark class=&quot;highlight&quot;&gt;Vercel&lt;/mark&gt; Labs 推出的本地开发代理工具，用 &lt;code&gt;https://myapp.localhost&lt;/code&gt; 这类稳定命名 URL 彻底取代难记的端口号。它默认开启 HTTPS + HTTP/2，自动分配端口并适配 Next.js、Vite、Astro 等主流框架，支持 Monorepo 多包路由、Git Worktree 自动子域名、LAN 内网共享及 Tailscale 团队协作，让本地开发环境对人类和 AI 代理都更加友好。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;- 一键替换端口号：把 &lt;code&gt;localhost:3000&lt;/code&gt; 变成 &lt;code&gt;https://myapp.localhost&lt;/code&gt;，告别记端口的烦恼，对人类可读、对 AI 代理也更友好&lt;br /&gt;- 开箱即用的 HTTPS/HTTP/2：首次运行自动生成本地 CA 并加入系统信任，浏览器零警告；HTTP/2 多路复用解决 Vite 等开发服务器大量并发请求的性能瓶颈&lt;br /&gt;- 框架零配置适配：自动识别 Next.js、Express、Nuxt、Vite、Astro、Expo 等框架，通过 &lt;code&gt;PORT&lt;/code&gt; 环境变量或自动注入 &lt;code&gt;--port&lt;/code&gt;/&lt;code&gt;--host&lt;/code&gt; 参数，无需手动改配置&lt;br /&gt;- Monorepo 与 Turborepo 原生支持：通过 &lt;code&gt;portless.json&lt;/code&gt; 或 &lt;code&gt;package.json&lt;/code&gt; 的 &lt;code&gt;portless&lt;/code&gt; 字段统一管理多包路由，如 &lt;code&gt;api.myapp.localhost&lt;/code&gt; 和 &lt;code&gt;web.myapp.localhost&lt;/code&gt;，与 Turborepo 无缝集成&lt;br /&gt;- Git Worktree 智能隔离：自动检测 Git Worktree，用分支名作为子域名前缀，避免多个工作区端口冲突，无需额外配置&lt;br /&gt;- 多场景网络共享：LAN 模式通过 mDNS 让手机等设备访问 &lt;code&gt;.local&lt;/code&gt; 域名；Tailscale 集成支持团队内网共享，甚至通过 Funnel 一键暴露到公网&lt;br /&gt;- 灵活的子域名与自定义域名：支持 &lt;code&gt;api.myapp.localhost&lt;/code&gt; 等子域名组织服务，也可切换 &lt;code&gt;.test&lt;/code&gt; 等自定义 TLD，自动同步 &lt;code&gt;/etc/hosts&lt;/code&gt; 保证 Safari 兼容&lt;br /&gt;&lt;br /&gt;文章URL：&lt;a href=&quot;https://github.com/vercel-labs/portless&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://github.com/vercel-labs/portless&quot;&gt;https://github.com/vercel-labs/portless&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://github.com/vercel-labs/portless&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Replace port numbers with stable, named local URLs. For humans and agents. - vercel-labs/portless&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;GitHub&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;GitHub - vercel-labs/portless: Replace port numbers with stable, named local URLs. For humans and agents.&quot; src=&quot;/static/https://cdn4.telesco.pe/file/hYuG4oO20wH0fbYMLcLLQV0UxSkt9VsbYsexs2i88PEgHWeFHXcm-0Ll-QS54Z8UlFrsCJKMQfq5vkyfO0j5IcBr75_Jd5P8FXjbqrWKjWsDexG7lIiOpBukjWsEJhOAOSEhUrlganM_7iqkFGsPc86iZ7dG1znEyDrk9wbeISvwK7vO9YVbKALSQGi1UWbhf0qG7eEvIP4661MNLC1IrtAmdoHTx6sILu5D3KJc_w1oIH98yJras3BlpECnp2ZrENAlQ7PRrI4l0hVHNMszBVbbBe9ZpSXsGKPnVSSw9ePUa2EtXZ8487QIwByjNTFcaL2o0nDle_lXMEnnKtHMig.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;GitHub - &lt;mark class=&quot;highlight&quot;&gt;vercel&lt;/mark&gt;-labs/portless: Replace port numbers with stable, named local URLs. For humans and agents.&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Replace port numbers with stable, named local URLs. For humans and agents. - &lt;mark class=&quot;highlight&quot;&gt;vercel&lt;/mark&gt;-labs/portless&lt;/div&gt;
&lt;/a&gt;</content:encoded></item></channel></rss>