Skip to content
返回博客Back to blog
作者Written by
Zinian
发布时间Published on
2026年5月28日May 28, 2026
阅读时间Read time
8 分钟阅读8 min read

产品构建Product Building

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

一次 MILANO UNITO ARCHITETTURA 网站复盘:从页面职责、多语言内容模型和上线验证,看建筑工作室官网如何变成可维护的系统。一次 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、后台保存和测试。

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

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

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

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

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

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

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

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、后台保存和测试。

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

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

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

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

相关文章Related posts

和这个主题相邻的更多笔记。More notes close to this topic.

为技术作品集网站设计真正有说服力的案例研究Designing Case Studies for Technical Portfolio Sites

精选Featured
产品构建Product Building
2026年5月5日May 5, 20266 分钟阅读6 min read更新于 2026年5月7日Updated May 7, 2026

怎样组织案例研究,才能证明判断力,而不只是展示结果。How to structure a case study so it proves judgment, not just output.

portfolio
case-study
writing
阅读全文Read article

把 KizunaIndex 做成公共索引之后,我学到的几件事Lessons from Building KizunaIndex as a Public Index

精选Featured
产品构建Product Building
2026年5月1日May 1, 20267 分钟阅读7 min read更新于 2026年5月3日Updated May 3, 2026

公共索引真正有用,往往不是因为页面多复杂,而是因为内容模型足够小、足够清楚、足够容易改。A public index gets more useful when the content model is small, explicit, and easy to revise.

nextjs
data-modeling
public-index
阅读全文Read article

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

产品构建Product Building
2026年5月18日May 18, 20269 分钟阅读9 min read

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

cityplayer
product-building
react
阅读全文Read article

下一步Next

继续浏览文章列表,或者把这篇文章里的问题展开成一次具体讨论。Keep browsing the archive, or turn the questions in this essay into a concrete conversation.