为什么现在用 AI 做的自托管应用看起来都一模一样?

文章导读
有自托管用户发现,AI 辅助开发的应用正快速涌入,UI 却高度雷同,绿药丸按钮、emoji 文档、同质化设置页几乎成了模板。更让人担心的是,新项目不断带走原本维护成熟开源项目的开发者,最终老项目凋敝,新应用却缺乏长期维护。讨论中不少开发者也承认 UI 雷同不是新现象,真正的决定因素是维护和社区。
📋 目录
  1. 一个看起来像复制粘贴的应用生态
  2. UI 雷同不是 AI 才带来的
  3. “看起来一样”不是最要命的
  4. 用 AI 写代码时,容易自欺欺人
  5. AI 不是做所有事情的答案
  6. 短期能做的小决定
A A

一个很现实的现象是:AI 参与开发的自托管应用正在爆发式增加,但它们的界面和使用体验却越来越像。与其说这是审美问题,不如说这是开源生态正在被一种“快速产出、快速消耗”的方式改变。下面是一位长期使用自托管项目的用户发出的抱怨,以及围绕这件事的讨论。

一个看起来像复制粘贴的应用生态

这位用户的感受是:最初觉得 LLM 好玩有趣,但如今已经失控。新应用以极快速度出现,尤其是那些已经有想法的开发者,用 AI 辅助开发后,自托管空间从每个类型只有两三个可选,变成了拥挤而混乱的状态。以阅读类应用为例,Bookorbit、Grimmory 这些全新应用,看似不同,却让人觉得眼熟。原因很简单:开发过程中用了 AI。仔细看会发现 AI 参与的痕迹非常明显:亮色的胶囊形按钮,常常是绿色;“它不是 X,而是 Y!”式文案;带 emoji 的文档;连设置页和菜单布局都差不多。

这不仅是审美或哲学问题。如果每个人都去重复同一套模板,谁来创造真正新的东西?那些老而可爱的项目怎么办?它们界面稍显笨重,但至少是真人做的,视觉风格一致。比如 Kavita、Komga,甚至是问题一堆的 Calibre-web——界面不一定好看,但不会让人认错。讨论中有人痛心地说:有能力的开发者渐渐放弃那些投入大量热情的老项目,转而去用 AI 做单人项目。结果一边是成熟项目缺乏维护,一边是光滑却缺少灵魂的 AI 应用走马灯似的出现又消失。最终所有人都受伤。也许问题不在 AI 本身,而是很多开发者需要更谦逊一点——愿意做一个活跃社区里的一员,而不是一片废土上的首领。后者对整个社区要糟糕得多。

UI 雷同不是 AI 才带来的

有网友指出,“有才华的开发者本来就从来不是界面独特的原因。UI 需要创意,而大多数后端开发者并不擅长设计独特美观的界面。”另一位补充说,在 AI 普及之前,小项目已经常年使用 Bootstrap 模板,“可能有五年甚至十五年,一切看起来都差不多”。还有人自嘲:“我是后端开发,做 UI 时还是用 Bootstrap,因为没人有时间给一个小项目专门设计界面,后端开发者也不想把时间耗在样式上。”所以,AI 只是把这个长期存在的现实变得更明显、更模式化。也有熟悉具体项目的人说,Bookorbit 和 Grimmory 本来就是 BookLore 的 fork,当然会像;但用户更在意的是,为什么连全新项目也给人一种“同一个模板出来的”感觉。

“看起来一样”不是最要命的

讨论中有人反复提醒,UI 是否漂亮不是项目成败的关键。“项目生死取决于开发一致性、持续维护和社区支持,而 LLM 对这三件事几乎没有任何帮助。”所以很多 AI 项目会在开发者发现开源维护是无偿苦役后停止更新。一位使用者说,“视觉同质感是真的,但更大的损失是旧项目里那种奇怪而有个性的感觉。你能看出有人为某个问题折腾了一整个周末,最后做出一个有点怪但确实能用的东西。现在全是同一套 Tailwind 组件和绿色渐变按钮。”更常见的流程是:开发者从成熟项目离开,去追逐新玩具,六个月后耗竭,留下社区收拾烂摊子。这种事已经见过好几次了。

用 AI 写代码时,容易自欺欺人

也有网友列出了几种需要警惕的说法。“架构是我自己设计的”——其实只是问 AI 哪个架构好;“我逐行看过代码”——其实只是扫了一眼,感觉没问题;“所有设计决策都是我定的”——其实是 AI 给两个选项,他选了被推荐的那个;“我自己调试和测试过了”——其实是让 AI 解释错误信息,然后直接批准修改。这种“看似参与”的流程,会让项目在一开始就埋下没人理解的依赖和逻辑。还有人总结了一种常见模式:“我有问题 A,于是 AI 糊出了产品名由 AI 起的第 17 号项目。”别人问它和现有项目有什么区别,开发者说“我没注意它们存在过”。大家都可以为这种情景填一张 Bingo 卡了。

AI 不是做所有事情的答案

与 AI 生成应用热潮并行的,是另一部分开发者的反思。有做自动化项目的开发者说,客户经常开口就要 AI Agent,但实际上要的只是一个能自动处理重复任务的脚本;Python 自动化通常更可靠,成本也更低。“大多数说自己想要 AI Agent 的人,并不是真的想要 Agent,他们只是想要一段代码自动完成任务。十次里有九次,简单的 Python 脚本就能搞定。”还有人说,工作里同样的事,有人报给 AI 每次要 3 美元,而他用一个标准批处理每五分钟跑一次,完全免费。有人用幽默方式提醒:如果客户坚持要“AI”,你可以说“我实现了一个本地运行、极度节省资源的确定性 AI,它能判断输入是否超出原定意图”——其实就是一段会抛异常的 switch-case。这些都不是反对 AI,而是提醒应该准确判断问题类型,而不是把 LLM 当成万能包装。

也有人分享了更现实的冲击:有开发者被裁后,为一家公司无偿实习了近两个月,对方却在他结束后用 AI 继续做原本的工作。这种真实经历让不少人对 AI 的态度从好奇变成警惕。在自托管社区里,真正稀缺的从来不是“又一个看起来不错的应用”,而是愿意长期维护、对使用者负责的开发者。

短期能做的小决定

如果你也在用 AI 辅助自己的自托管项目,可以先问自己几句:我真的需要造一个新的轮子吗?这个应用和现有三五个项目比,有没有不可替代的差异?我有没有精力维护它一年以上?如果答案都是否定,不如把自己的改动和想法贡献给现有社区,或者干脆做一个只给自己用的小工具。与其做一片废土的首领,不如做一个活跃社区里的普通成员,后者对项目、对使用者、对开发者自己都更可持续。