上周我们的首页经历了十五次彻底改版。不是 Figma 稿——是十五个实际部署、像素级完整的页面。有静谧的深色“评审套件”风格,有蓝图规格清单的样式,有一篇研究论文的排版,还有一张黄色荧光笔标题的贴纸海报。
这些页面说的完全是同一套话,因为所有十五个页面都从同一个 Markdown 文件里读取文案。
![]()
不用只听我说——最终胜出的版本已经上线 workupai.com,其余十四个落选页面也仍然部署在它们各自的版本链接上。对比蓝图规格清单、研究论文版本和原始版本,再看那个贴纸海报风格的主页:同样的文字,完全不同的世界。
这篇文章想说的是令这件事成为可能的那套模式,它怎样消灭了我们持续最久的例会,以及你如何也能把它拿走用到自己的项目里。这其实是一篇后续,延续了我们之前分享的理念:设计师怎样能不写代码就完成前端改动。现在我们把同样的哲学用在了自己的落地页上。这个页面销售的是 Spuree,我们为 AI 生成内容提供的评审与记忆层,但它挂载在 workupai.com 这个独立域名上——我们给营销实验分配独立的域名,以便在完全自主的基础设施上任意重建,绝不会碰触产品主站。
问题出在哪儿?文案争论和设计争论被塞进了同一间屋子。我参加过的每一次落地页评审,都把两种毫不相干的争论搅在一起:“标题里应该提到团队,而不只是智能体”——这是文案问题;“感觉太企业化了,能不能更活泼一点?”——这是设计问题。当两者都写在同一个 React 组件里时,每次修改都互相纠缠。你没法公平地比较两种设计,因为它们的文案已经各自偏移了几处不同的措辞。你也没法改一句措辞,而不让旁人重新挑起关于用色的讨论。
所以我们把二者物理分离了。
整个流程 30 秒内就可以说清楚:
所有文案存放在 content/vme.md,一个纯 key: value 形式的 Markdown 文件,任何人都能编辑。每一种设计是一个完全自包含的页面,位于 src/app/v1/page.tsx … v15/page.tsx。每一个页面在构建时都读取同一个文案文件。所有页面上都有一个浮动的“版本”菜单,让任何人都可以在十五种设计之间点击切换。收到的反馈是排名的形式(“我喜欢 v7 大于 v9 大于 v8”),下一批设计就会吸收优胜者的 DNA,丢弃失败者的。上线优胜者只需一行改动——根路由重新导出选中的版本。
没有 CMS,没有特性开关,甚至没有一个客户端组件。整个网站就是一次 Next.js 的静态导出。
技术栈的刻意约束在于:所有内容都在构建时渲染。在禁用 JavaScript 的情况下,每个页面也完全可读——线上唯一传输的 JS 只是 Next 自带的运行时,因为我们没有编写客户端组件。这也是为什么十六个路由几乎不花钱就能托管:这个网站的 AWS 账单只花掉零钱级别。核心技巧是:文案即数据。
文案文件的模样大概如此:
## herokicker: The review and memory layer for AI-generated creativeheadline: AI made drafts cheap. _Feedback is still scattered across your team._subheadline: Creative Engine pulls
这个模式杀死了我们例会上那种无休止的相互等待。文案人可以独立打磨措辞,设计师可以并行产出完全不同的视觉版本,而比较发生在同一套文案基底之上,公平且干净。最终的选择不是来自于冗长的讨论,而是来自于页面访问者真实的注意力和行为。
如果你也想在自己的落地页上复现这套做法,关键就是把“副本”视为一份可替换的数据层,而不是嵌在设计里的一部分。一旦你将文案文件与页面实现解耦,十五个落地页就不再是十五倍的维护负担,而是一场真正可度量的创意实验。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.