页面越多,越容易风格失控
如果每次新开网页都从 page.tsx 开始堆,会越来越依赖单页手工调整,最后样式和内容混在一起,难维护。
Product Narrative Systems · Design x Engineering Delivery · AI Workflow That Ships
这个页面本身就是样板:内容在 data 层,皮肤在 theme token 层,route 只负责组装。以后要改信息,改 data;要改风格,改 theme;要换展示方式,改 renderer。
Try: ?theme=noir, ?theme=paper, ?theme=frame
目标不是再做一个漂亮版本,而是建立以后都能复用的网页生产方式。
你现在已经有一个接近诉求的求职页,但它本质上还是某个版本页面本身。真正需要沉淀的是:如何让“一个页面版本”升级为“一个稳定的系统”。
这个系统至少要有三层:内容 schema、主题 token、页面 renderer。内容只描述事实和结构,不描述视觉;主题只描述皮肤与节奏,不放业务 copy;renderer 只负责把两者组合成可读页面。
这样做的结果是,你以后做新网站,不需要从零想版式,只要提供结构化数据,再选择黑底或白底等皮肤,就能稳定产出。
如果每次新开网页都从 page.tsx 开始堆,会越来越依赖单页手工调整,最后样式和内容混在一起,难维护。
把内容抽成 data object,把黑白皮肤抽成 theme tokens,把页面结构收敛成一套 renderer,未来新增页面只是在填表与选皮肤。
这一页支持 query theme 切换,证明数据不需要跟着样式改;styles 页也能直接复用同一套 token 和组件。
不先堆功能,不先堆履历,而是先给“可验证能力”。
Problem -> Decision -> Impact -> Learning
从 schema 到 route 的落地能力
主题、组件、数据三层分离
让后续交付越来越便宜
招聘方如果要快速判断,这一块比单纯“会做页面”更能说明问题。
改一处文案,经常要重新找 JSX 和样式混写的位置。
页面事实集中在一个 SiteDocument,改数据即可。
要黑底/白底时,容易复制一份页面再改样式。
直接切 theme token,同一份内容继续复用。
每次都从 page.tsx 起手,版式越来越分叉。
优先复用 renderer 和 section kind,新增页面更便宜。
公开作品与自驱交付
围绕个人生产力、信息产品与内容系统持续交付可用版本,把产出沉淀成可复用工作流。
小团队 / 自驱项目
关注 AI 产品输入约束、原型效率与闭环交付,强调最小可用版本和快速验证。
大型互联网公司(电商 / 增长)
长期做复杂业务的信息结构、关键路径与跨团队落地,习惯在多限制环境里做高密度决策。
这部分不是为了自问自答,而是把最容易追问的维护问题提前说明。
不用。优先新建一个 data/sites/<slug>.ts,把新的 hero 和 section 顺序填进去;如果结构没变,就继续用同一个 renderer。
先看是否只需要换 theme token。只要内容结构不变,就不该复制 route;这也是 theme layer 存在的意义。
只有当结构真的不同,比如要做 FAQ、对照表、CTA 强调区,而不是只想把同一段话换个写法时。
在 data/sites 下新建一个 SiteDocument,只写页面事实、结构、链接和顺序,不碰 className 与视觉描述。
从 noir / paper / frame 里选一个,或者新增一个 theme token 对象;theme 只决定背景、边框、面板、按钮与节奏。
app/<slug>/page.tsx 只 import data 和 renderer。页面本身不再承载真实 copy,避免越写越散。
像 motion.zondev.top 一样,通过 host 判断把同一个项目映射成 styles.zondev.top 之类的新入口。
先定义问题与结构,再定义皮肤。先让内容可迁移,再让视觉可升级。
这是这次重构最重要的约束。
这块应该承担 CTA 和结论,而不是再写一段普通自述。
这个 route 不只是展示经历,它同时展示了一种生产方式:如何把求职页、介绍页、样式站和未来更多站点收束到一套可维护结构里。对需要判断“能不能把系统做出来”的团队来说,这比另一个更花的页面版本更有信息量。
Styles 已升级成 overview + components + schema + recipes
styles / motion 现在不只根页可访问
如果要展示不同皮肤,直接给同一路由追加 ?theme=paper 或 ?theme=frame。