<?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，再按 Vercel 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></channel></rss>