跳到正文
返回博客
作者
Zinian
发布时间
2026年5月28日
阅读时间
8 分钟阅读

产品构建

为什么建筑工作室官网不该只是作品墙

一次 MILANO UNITO ARCHITETTURA 网站复盘:从页面职责、多语言内容模型和上线验证,看建筑工作室官网如何变成可维护的系统。

建筑工作室的网站最难处理的,往往不是第一张大图。

真正麻烦的是关系:项目和理念之间的关系,中文、英文、意大利文之间的关系,浏览作品和发起咨询之间的关系,以及上线之后谁来维护这些内容。

如果这些关系没有先被整理清楚,网站会很快变成一个漂亮但脆弱的展示面。首页很好看,项目页也有图,但每次新增内容、补翻译、改联系方式、检查表单,都会牵动一串临时修补。

MILANO UNITO ARCHITETTURA 的网站复盘,核心不在于“做了一个建筑作品集”。我更在意的是,它怎样从一个公开品牌站,逐步变成一套可以维护、可以验证、也可以继续扩展的内容系统。

公开站点是 muastudio.design。中文路径下已经有首页、设计师资料、项目、材料和联系页。站点理念区的一句话是:“建筑不仅是空间的艺术,更是生活的容器。”这句话本来是在说建筑,但也很适合解释这个网站:页面不是单独存在的视觉空间,它们要承载真实的信息和动作。

这个站点真正要承接什么

一个建筑工作室官网至少要回答四个问题。

第一,工作室是谁。品牌名、空间气质、设计理念和视觉语言,需要在第一屏附近建立起来。建筑行业的官网不是 SaaS 落地页,不能只靠一句价值主张和一个按钮结束。

第二,做过什么。项目列表和详情页要能展示作品,也要能保留材料、地点、年份、状态和图像。否则项目页只是相册,不是作品档案。

第三,怎样沟通。潜在合作方可能来自中文、英文或意大利文语境,也可能通过邮箱、WhatsApp、微信或表单进入。联系入口如果只藏在页脚,网站就没有真正承接咨询。

第四,之后怎么维护。项目会增加,文案会调整,翻译会补充,联系信息也可能变化。一个不能被维护的网站,在交付当天看起来完成,过一段时间就会开始失真。

所以这个项目从一开始就不应该只按“页面数量”来判断进度。更重要的是,信息是否各自有位置,数据是否能被保存,路径是否能被验证。

首页不应该把所有任务都背在身上

这次开发里最关键的结构判断,是首页职责的收窄。

建筑工作室官网很容易把所有内容都塞进首页:完整团队介绍、完整项目说明、完整联系表单、完整材料展示。这样做看似信息充足,实际会让首页变成一个没有重点的长页面。每个模块都出现了,但每个模块都不够完整。

更稳定的做法,是让首页只承担第一印象和路径分发。

在这个站点里,首页保留 Hero、Studio Intro、精选项目入口和 Contact CTA。设计师背景交给 About / designer profile 页面,完整项目内容交给 projects,材料内容交给 materials,具体咨询动作交给 contact。

这不是简单的“移动模块”。它改变的是维护边界。

当首页只负责建立气质和引导路径,后续新增项目不会压垮首页;当联系页独立承接表单和沟通方式,首页就不需要同时处理转化细节;当设计师资料离开首页,它可以写得更完整,而不必压缩成几句装饰性文字。

一个小型网站开始变清楚,通常不是因为页面变多了,而是因为每个页面开始知道自己不该做什么。

多语言必须进入内容模型

这个项目有中文、英文和意大利文三套入口。多语言表面上是路由问题,实际上是数据问题。

只做 /zh/en/it 路由并不难。难的是让项目标题、描述、正文、地点、客户信息、按钮文案和 fallback 都按语言稳定存在。

如果多语言只停留在界面层,最常见的结果是“假国际化”:用户切换到了英文页面,但项目内容仍然依赖中文字段;或者某些页面翻译完整,某些页面退回占位文案;后台编辑时也不知道自己到底在改哪一种语言。

所以这个项目需要把语言放进内容模型里。

具体实现上,项目内容不只是单个字符串,而是按语言保存的字段。Supabase 里可以用 JSONB 这类结构保存 localized content,前端再根据当前 locale 读取对应内容,并在缺失时有明确 fallback。

这个选择的价值不在“技术更复杂”,而在于它让维护动作变得诚实。后台写入时知道自己在保存哪种语言;前台展示时知道自己在读取哪种语言;测试时也能检查翻译 key 是否对齐。

多语言网站如果没有内容模型,后面会越来越像人工复制。复制在第一版很快,维护时很慢。

技术选择只服务三个边界

这个项目的技术栈可以列很长:Next.js 14 App Router、React 18、TypeScript、Tailwind CSS、next-intl、Supabase、Vercel、Vitest、Playwright。

但对这篇复盘来说,值得展开的只有三个选择。

Next.js 14 App Router 稳定页面和路由边界。
公开页面、项目详情、联系页、后台路径、metadata、sitemap 和 API route 都在同一个应用里处理。对这种体量的品牌站来说,这比一开始拆成多个服务更容易交付,也更容易在上线前整体验证。

next-intl 和 localized content 稳定语言边界。
翻译 JSON、三语路由、后台写入字段和 fallback 逻辑一起工作。这样语言不是一个按钮,而是贯穿数据、页面和维护流程的结构。

Supabase、fixture/fallback 和测试脚本稳定交付边界。
Supabase 承接项目、设置和提交类数据;fixture/fallback 让本地开发和构建不会被远端数据源完全卡住;Vitest、Playwright、i18n parity、typecheck 和 build 检查让“页面能打开”变成“关键路径有证据”。

这三个边界合在一起,形成了一个比较轻的系统:前台负责表达,数据层负责内容,验证流程负责交付收口。

它没有一开始上复杂 CMS,也没有把所有东西都写死在页面里。这个中间状态对小型品牌站很重要,因为它既保留了速度,也留下了继续维护的空间。

上线前的验证不是装饰

网站能部署,不等于网站能交付。

这类项目上线前最容易漏掉的,不是大功能,而是关键路径里的小断点:某个语言页面 fallback 不对,项目详情入口跳错,联系表单没有真正提交,移动端导航遮挡内容,生产域名和本地环境表现不一致。

所以 Web studio 的后期工作里,验证不是最后看一眼页面,而是一个收口动作。

build 和 typecheck 确认代码层没有明显断裂;i18n parity 检查三语翻译 key 是否对齐;Vitest 覆盖基础逻辑;Playwright 检查浏览器路径;生产域名上线后还要做 live readback,确认公开页面真的返回内容,而不是只看部署平台显示成功。

这部分工作不显眼,但决定项目能不能交出去。

很多早期网站的问题,不是没有做功能,而是没有建立“我怎样知道它现在是好的”这条证据链。没有证据链,维护就会依赖记忆;依赖记忆的系统,迟早会变重。

留下来的系统形状

最终留下来的,不是一个只有首页的展示站,而是一组相互分工的路径。

首页建立品牌气质和建筑理念;设计师资料页补足信任背景;项目页和详情页承接作品档案;材料页沉淀内容资产;联系页承接咨询动作;后台和数据层负责让项目、设置和提交类信息可以继续维护。

这就是作品墙和内容系统的区别。

作品墙回答“我做过什么”。内容系统还要回答:内容从哪里来,放在哪里,谁能修改,缺失时怎么办,上线前怎么确认它没有坏。

对一个建筑工作室来说,这些问题不应该被视为额外复杂度。它们本来就是官网要承担的工作。

这次复盘里的判断

第一,建筑工作室官网的核心不是把项目图摆满,而是建立叙事和路径。好的首页应该让人理解工作室的气质,也应该知道下一步去哪里。

第二,多语言要从内容层开始设计。路由和按钮只是入口,真正影响维护的是字段、fallback、后台保存和测试。

第三,小型品牌站不一定需要很重的后台,但需要清楚的数据边界。早期最有价值的不是“功能很多”,而是每次新增内容时不会把结构弄乱。

第四,上线验证是交付的一部分。部署成功只是平台状态,关键路径通过才是产品状态。

如果以后再做类似的建筑、设计或本地服务品牌站,我会先问的不是“首页要多酷”,而是:哪些内容会长期变化,哪些页面应该承担主流程,多语言是否真的进入数据模型,以及交付时有什么证据能说明它已经可以被维护。

这些问题看起来比视觉稿慢一点,但它们会决定网站三个月后是继续变清楚,还是开始靠临时修补维持。

相关文章

和这个主题相邻的更多笔记。

为技术作品集网站设计真正有说服力的案例研究

精选
产品构建
2026年5月5日6 分钟阅读更新于 2026年5月7日

怎样组织案例研究,才能证明判断力,而不只是展示结果。

portfolio
case-study
writing
阅读全文

把 KizunaIndex 做成公共索引之后,我学到的几件事

精选
产品构建
2026年5月1日7 分钟阅读更新于 2026年5月3日

公共索引真正有用,往往不是因为页面多复杂,而是因为内容模型足够小、足够清楚、足够容易改。

nextjs
data-modeling
public-index
阅读全文

CityPlayer:不只是活动列表,而是本地活动系统

产品构建
2026年5月18日9 分钟阅读

一次 CityPlayer 复盘:如何把米兰本地活动信息整理成可维护的发布、后台和验证流程。

cityplayer
product-building
react
阅读全文

下一步

继续浏览文章列表,或者把这篇文章里的问题展开成一次具体讨论。