跳转至

别再让 AI 把前端做成一次性原型:我为什么做 floop

太长不读:

AI 写前端很快,但它经常把你的设计系统写散。

第一版像魔法,第五版像事故现场。

所以我做了 floop:一个开源、local-first 的质量回路,让 AI 在生成 UI 前先理解 token 和组件,在生成后被规则反向检查。


前端 AI 开发最爽的地方,也是最危险的地方

过去我写一个后台页面,脑子里会自动跑一遍流程:

这个按钮用哪个组件?主色是不是该走 token?表单错误态有没有复用已有模式?这个列表为空时展示什么?

有了 AI agent 以后,这些事突然变快了。

你说一句:

帮我做一个订单管理页,左边筛选,右边表格,支持批量操作。

十几秒后,它真的给你一个页面。看起来还不错。甚至有阴影、有圆角、有 hover、有 loading。

第一天你会很兴奋。

第二天你会继续让它加功能。

第三天它开始自己发明新的蓝色。

第四天它把已有的 Button 组件绕过去,手写了一个 <button class="px-4 py-2 ...">

第五天你打开代码,发现你的项目里同时存在三套间距、四种卡片、五种按钮写法,以及一堆没人敢删的 inline style。

AI 没有恶意。它只是太擅长“往前生成”了。

问题是,工程不是一直往前堆。

工程还需要往回看:看已有约束,看组件边界,看设计系统,看团队约定。

这就是 floop 想补上的地方。

为什么 prompt 不够?

你当然可以在 prompt 里写:

请严格遵守我们的设计系统,不要写 hardcoded color,不要重复造组件。

有用吗?

有一点。

但不稳定。

因为 prompt 是建议,不是约束。AI 生成到兴头上时,很容易为了完成当前页面,把“复用组件”这件事当成次要目标。

尤其当你连续迭代时,上下文里充满了临时需求:

  • 把按钮挪右边
  • 加一个高级筛选
  • 表格支持 sticky header
  • 这个弹窗改成两步
  • 先别管样式,跑通再说

这些小改动堆起来,AI 会逐渐忘记最开始那套规则。

你以为你在做产品迭代。

实际上你在喂养一个越来越难维护的临时原型。

我把它叫做“一次性原型陷阱”。

floop 的想法:给 AI 加一个质量回路

floop 不是另一个 UI 生成器。

它更像一个夹在 AI agent 和代码库之间的质量回路。

核心思路很简单:

生成前,先让规则显性化。

生成后,再用规则反向检查。

在 floop 里,AI 不应该直接冲进页面写 HTML。它要先理解项目里的设计 token 和组件结构,例如:

  • 哪些颜色、间距、圆角、字号是允许的
  • 哪些组件已经存在
  • 哪些场景应该复用 ButtonCardDialogTable
  • 哪些写法属于违规,比如裸写颜色值、绕过组件库、重复造 wheel

然后 floop 用 CLI 做校验。

如果 agent 写了一个硬编码的 #333,而项目要求用 var(--text-primary),检查应该失败。

如果 agent 在已有按钮组件的场景里手写原生 <button>,检查也应该失败。

失败不是坏事。

失败是回路的一部分。

AI 看到错误,回去改,再检查,直到符合项目规则。

这才是我想要的 AI 前端开发:不是“生成一次就算完”,而是“生成、检查、修正、再检查”。

它和 Figma Make、Google Stitch 不同在哪里?

Figma Make 和 Google Stitch 很强。

但它们更像是在自己的生态里完成从设计到原型的生成。

我想要的是另一种东西:

一个能放进现有代码库、现有终端、现有 agent workflow 里的开源工具。

我不想把项目规则锁进某个云端黑盒。

我希望设计规则就放在仓库里,像代码一样被 review,像配置一样被版本控制。

这也是 floop 选择 local-first 的原因。

AI agent 可以换。今天 Cursor,明天 Claude Code,后天 Copilot 或 Codex。

但规则应该留在你的项目里。

你的设计系统不应该跟着工具迁移。

真正的问题不是“AI 不会写 UI”

AI 会写 UI。

它甚至写得太快了。

真正的问题是:AI 不天然理解“这个项目的 UI 应该怎么继续长”。

一个成熟项目里,前端代码不是孤立页面集合,而是一套不断演化的设计语言。

好的 UI 工程不只是页面好看,还包括:

  • 新页面能不能继承旧页面的视觉语言
  • 新组件会不会破坏已有组件边界
  • 快速迭代后,样式债会不会不可控
  • 多个 agent 参与开发时,规则是否仍然一致

这些东西靠人脑盯,很累。

靠 code review 兜底,也太晚。

floop 想把这件事提前。

在 AI 写出一堆“看起来能用”的代码之后,立刻问它:

你真的遵守项目规则了吗?

我希望 floop 成为什么

我不想把 floop 做成一个“更聪明的生成器”。

生成器已经够多了。

我更想把它做成 AI UI 工程里的刹车和护栏。

快,是 AI 的优势。

稳,应该由工程系统补上。

如果一个工具能让 agent 少发明一次颜色,少绕过一次组件库,少制造一次后期重构,那它就已经有价值。

因为真实项目里,最贵的从来不是写第一版。

最贵的是第三周还能继续改,第六周还能放心合并,第十二周新人接手时不会想重写。

这就是 floop 的出发点:

让 AI 写出的 UI,不再只是 demo,而是能进入工程生命周期的代码。

项目地址:

https://github.com/lijma/floop-server