每周见闻(53):工具网站将会被 AI 碾碎
约 1928 字大约 6 分钟
2026-02-01
每周见闻:2026-01-25 - 2026-02-01
终于学会了前刃
周末受到好朋友的邀请,去了太仓的阿尔卑斯雪世界滑雪。地理位置非常好,就在太仓南站对面,还有配套的酒店设施非常时候周末度假。
在日本的时候学会了单板,但只会后刃,前刃一直没有“摔”会。这次想着机会难得干脆找了个教练 1 对 1,在两个小时的训练下,成功学会了前刃。下次再去滑雪的时候,就能好好练习了。
可惜没有体力拍视频和照片了,给没滑过雪的朋友放上教学图片。

工具网站将会被 AI 碾碎
有感而发自上上周阮一峰老师周刊的题首部分“独立软件的黄昏”。
自从 AI 的能力越来越强大后,纯前端的工具网站将会被 AI 碾碎。为什么这么说呢?
我因为在做 Chrome 插件需要提交符合规定大小的图片时,因为没找到合适的网站直接让 AI 手搓了一个,然后挂到 CloudFlare page 上线,整个过程也就一个下午。
之后又因为需要 PDF,由于受不了广告和注册。又搓了做了一个 Markdown 生成 PDF 的工具网站。同样也是一个下午就上线了。
所以,我感觉那些带着广告、注册的工具网站将会被 AI 碾碎,取而代之的是一些干净、完全无广、不需注册即用即走的工具。37丫37 老师的“好拼”就是一个很明显的例子。
下面是我做的图片裁剪工具网站。MiaoCrop,无服务器,完全本地运行。干净、完全无广(就放了自己做的Chrome 插件)、不需注册即用即走。
欢迎体验:https://miaocrop.konata9.cc

AI
1、The Agent Skills Directory[^1]
标签:Tools,Resource
Vercel 出品,搜集了许多市面上 Skill 的网站。支持各种客户端以及提供了一件安装的命令。相对其他的市场,Vercel 出品的会权威一些。
上面的 Skill 非常多,支持搜索。像我平常工作中会接触到的 Fastify、MongoDB 都有。

2、Build an agent into any app with the GitHub Copilot SDK[^5]
标签:Tools,TypeScript
GitHub 推出的 Copilot SDK,通过 SDK 可以方便地把 GitHub Copilot CLI 集成到任何服务中。通过使用这个 SDK 可以简化开发。费用方面分为两种,可以订阅 Copilot 或者使用自己的 Key。感觉以后这类的 SDK 会越来越多。

3、I built an expense tracker using n8n, and it was easier than I thought[^6]
标签:FUN,Tools
作者用了 n8n 搭建了一个半自动的记账工作流。通过编辑短信(作者不想让 AI 访问邮箱),让 AI 对账目进行分类整理记录到 Google Sheet 中。并且整个项目的成本几乎为 0(自托管 n8n、Google 的免费额度)。
自动化工作流确实很有意思,我最近也在用扣子搭工作流。等调试满意了就会在公众号上和大家见面。

Coding
1、Introducing LibPDF: The PDF Library TypeScript Deserves - Documenso[^2]
标签:Tools,TypeScript
一个专门为 TypeScript 开发的现代 PDF 库。旨在解决 JavaScript 库的相关问题。支持更宽松的解析、增量保存以及原生的数字签名。需要利用到 PDF 导出的小伙伴可以考虑这个库。

2、We Fixed A 6-Year-Old JavaScript Memory Leak | DebugBear[^3]
标签:JavaScript,架构
作者修复了一个在云函数上存在了 6 年的内存泄漏问题。这个问题会导致他们处理服务的云函数每隔一段时间崩溃(好在是云函数,对业务影响不大)。
作者经过了几轮修复最后发现在使用 lodash 的 memoize 方法会保留内存中所有之前的数据,除非显式清除缓存!这个问题之所以过了 6 年才被发现,是因为本地很难复现。只有当处理来自不同网站的上千个请求的 URL 时,内存泄漏才会变得明显。有使用这个方法的朋友,可以留个心眼。
内存泄漏确实是很难处理的问题之一。当时也是分析好多种情况,后面在 AI 的帮助下暂时确定了位置。也是类似模板缓存的问题。

3、SPAs Are a Performance Dead End[^4]
标签:前端,架构
SPA(Single Page Application) 单页应用,仍是目前首选的前端技术之一。但作者认为其性能方面已经到了尽头。
SPA 的出现是为了提高网页浏览的体验。在 AJAX 出现前,所有页面都是全部刷新。介于当时的网速,用户会有一段空白的等待时期。而 AJAX 的出现,让页面的部分渲染成为了可能。页面仅更新要更新的部分,至少从观感上会好很多。同时,随着硬件的发展,浏览器处理 DOM 的能力也越来越强。数据与页面渲染的分离也让开发和维护越来越容易。
但凡事都有两面性,SPA 的代价便是过多的 HTTP 请求。作者认为,当系统变得复杂时,请求也随之变多。反而拖累了页面渲染的性能和体验,因此进入了性能的尽头,不如全部刷新。
作为曾经的前端,我对此保留意见。针对 SPA 请求爆炸的情况也并非没有办法,BFF 就是方法之一。其次则是涉及到 API 设计和页面功能设计的规划了。

其他
1、别否定那些曾经带你看世界的「信鸽」[^7]
标签:思考
相信很多人都会有过这样的感受,以前常看的文章或者书籍渐渐变得不好看了?
作者聊了聊他对这个变化的看法。人的认知、感受会随着时间成长和变化,而常看的书籍和文章都有着一个固定的“读者画像”。当你开始觉得不好看时,未必就是文章或者书籍的质量下降了。反而很可能是由于你的认知和观点发生了转变,离开了那个“读者画像”的坐标。
对此,作者认为我们因该感激这些曾经带给我们知识的内容。因为它们像是世界里的信鸽,减少我们的信息差。

参考文章:
- [1] The Agent Skills Directory: https://skills.sh/
- [2] Introducing LibPDF: The PDF Library TypeScript Deserves - Documenso: https://documenso.com/blog/introducing-libpdf-the-pdf-library-typescript-deserves
- [3] We Fixed A 6-Year-Old JavaScript Memory Leak | DebugBear: https://www.debugbear.com/blog/javascript-memory-leak
- [4] SPAs Are a Performance Dead End: https://www.yegor256.com/2026/01/25/spa-vs-performance.html
- [5] Build an agent into any app with the GitHub Copilot SDK: https://github.blog/news-insights/company-news/build-an-agent-into-any-app-with-the-github-copilot-sdk/
- [6] I built an expense tracker using n8n, and it was easier than I thought: https://www.xda-developers.com/built-expense-tracker-using-n8n/
- [7] 别否定那些曾经带你看世界的「信鸽」: https://blog.solazy.me/20260129/
