部署你的个人网站
学习目标
到本节课结束,学员应当能够:
- 审视自己第 1 周项目的技术栈——通过问 AI 它替你选了什么框架、什么 UI 库,然后用自己的话说清楚每一个的作用。
- 通过自然语言请求 fork 一个生产级的 Vercel 模板,整个过程不用自己手动 clone 仓库,也不用敲一句
git clone。 - 用大白话描述网站内容 —— bio、项目、链接、主题色 —— 然后看着 Cursor 把这段描述翻译成干净、已 commit 的源代码改动。
- 用一句提示词触发 Vercel 部署,出错时能读 build log,并通过把错误描述给 AI 来恢复。
- 接通一个轻量版 AI 分身 到作品集里——用 Gemini 2.5 Flash +
.env.local管理的 API key。最简 UI、不流式、不持久化(这些是第 3 周的事)。
核心主题
- "AI 给我选的栈是什么?" —— 大部分同学其实早已经在用 Next.js + Tailwind 了,只是自己没意识到。
- 现代 UI 组件库:什么时候用 Shadcn UI、什么时候用 Magic UI、什么时候用 Aceternity、什么时候用 Radix——以及什么时候完全不用组件库。
- 一个 Vercel 模板如何在一段对话里就变成"你的"网站。
- "用英文描述内容,让 AI 写 MDX/TSX"——这套模式贯穿第 2–6 周。
- 专业的 本地 → GitHub → Vercel CI/CD 工作流,以及为什么"拖拽到 Vercel"是一个大坑。
- 第一次接触 LLM 集成 —— Gemini 2.5 Flash +
.env.local+ 一个最简聊天框。流式、persona、持久化都是下周的事。
工具 / 技术栈
| 工具 | 本周角色 |
|---|---|
| Cursor | 一个聊天窗,所有事都在这里发生。 |
| Vercel MCP | AI 创建项目、部署、读日志、设置环境变量。 |
| GitHub | 每次 commit 推送;Vercel 自动重建。 |
| Next.js 14 | Magic Portfolio 模板基于的框架。 |
| Tailwind CSS | 样式;当你描述视觉变化时,AI 改 class。 |
| Magic Portfolio | 我们 fork 的起点 —— Vercel 模板。 |
| UI 组件库巡礼 | Once UI · Magic UI · Shadcn · React Bits · Aceternity · Radix · 21st(见下方专门章节)。 |
| Gemini 2.5 Flash | 阶段 6 那个轻量版聊天框背后的 LLM。快、便宜。 |
| Google AI Studio | 取免费 API key 的地方(这是唯一一个"只能人做"的瞬间)。 |
UI 组件库巡礼
框架(比如 Next.js)提供结构 —— 路由、SSR、性能默认值。UI 组件库 提供的是积木:按钮、对话框、动效标题、动效充沛的着陆页 section。两者搭配带来三件事:开发速度、视觉一致性、可扩展性。这张表先扫一眼,第 3–6 周你还会反复回来查它。
| 组件库 | 一句话定位 | 链接 |
|---|---|---|
| Once UI | 干净、基础的设计系统 | once-ui.com |
| Magic UI | 现代动效、抓眼球的交互 | magicui.design |
| Shadcn UI | 当前最火,复制粘贴式组件,可彻底定制 | ui.shadcn.com |
| React Bits | 轻量级 React 片段 | reactbits.dev |
| Aceternity UI | 潮、未来感、动效极强的 landing page | ui.aceternity.com |
| Radix UI | 无障碍优先(屏幕阅读器、键盘导航) | radix-ui.com |
| 21st | 现代组件的发现型注册表 | 21st.dev |
Shadcn UI 是个特例:你不是把它当一个庞大的 npm 依赖装进去,而是把每个组件的源码 直接复制粘贴 到你的项目里。这就是它现在最火的原因 —— 你拥有这段代码,所以你能调任何一个像素,不用跟一个组件库的 API 较劲。
专业的 CI/CD 工作流
不可妥协的规则:任何部署都走 GitHub。本地改、commit、push —— Vercel 自动重建。每一次 push 都会拿到一个独立的 preview URL,你可以审完再推到生产。
本地改完文件、手动上传到 Vercel(在 dashboard 里拖拽,或者在一个不是 git repo 的文件夹里跑 vercel deploy)—— 这是个大坑。没有 git 历史就意味着无法回退、无法审计、无法 review,下一次出问题你甚至不知道是哪一次改动捅的篓子。整个学期,每一次部署都走 GitHub。就这样。
课堂计划
| 时间 | 活动 |
|---|---|
| 0 – 15 分钟 | 回顾与 Check-in。 第 1 周第一次拿到 Vercel URL 的同学举手。还卡住的——给两分钟和同学结对解一下。然后所有人在自己第 1 周的 repo 里跑下面的 阶段 0 技术栈提示词。 |
| 15 – 40 分钟 | 概念讲解。 技术栈识别(框架 vs UI 组件库 —— 见上方表格)。"模板优先"模式。为什么 fork 一个好模板比从零开始更划算。CI/CD 流程图,以及为什么 GitHub 是唯一真实数据源。 |
| 40 – 75 分钟 | 现场演示。 讲师对 Cursor 只发一句提示词:"Fork Magic Portfolio,把它改成关于我,然后部署。"全班看着整套流程——fork、clone、改、commit、部署——在一段对话里发生。然后接通轻量版 AI 分身。 |
| 75 – 105 分钟 | 动手 Lab。 每位学员上线自己的作品集 URL 并接通一个能用的聊天框(背后是 Gemini 2.5 Flash)。每个人挑一种不同的强调色,整个教室会有差异性可供互评。 |
| 105 – 120 分钟 | Q&A + 收尾。 Show-and-tell:三位学员把自己的线上 URL 贴出来,并跟"自己"聊两句,全班反应一下。 |
动手 Lab
任务。 下课时你应该有一个 yourname-portfolio-*.vercel.app URL,上面有你的照片、一段简介、两个真实项目(或学习项目)、你的邮箱,外加 一个能跑的小聊天框,由"轻量版 AI 你"作答 —— 全 部都在一个响应式、支持深色模式的站点里。
阶段 0 —— 回顾 & 技术栈识别
上周你让 AI 自由挑起步方案。很多同学最后落到了 Next.js + Tailwind,自己却没明确要求过。今天我们把"已经存在的栈"叫出名字。
打开我第 1 周的项目(
hello-technest)。这个项目用了什么技术栈?请把它们分类成 开发框架 vs UI 组件库 vs 其他工具(lint、formatter、构建工具)。每一项用一句话说明它具体的作用,以及为什么对一个个人网站来说是合理选择。如果有什么是冗余的,请实话实说。
AI 回答完之后,我们绕一圈:AI 给 你 选的栈是什么?它的理由说服你了吗?每人两句话。注意听规律——大多数人会反复听到 "Next.js" 和 "Tailwind"。
阶段 1 —— Fork & 搭骨架
请把 Vercel 上叫 Magic Portfolio 的那个模板(Next.js 那个)fork 到我 GitHub 账号下一个新的公开仓库,叫
my-portfolio。把它 clone 进当前工作区,用 pnpm 装依赖,然后启动 dev server。dev server 起来以后,在我浏览器里打开http://localhost:3000。先别改任何代码——我想先看看模板原样长什么样。
- 浏览器打开
http://localhost:3000,显示 Magic Portfolio 的 demo 站。 - 你的 GitHub 账号下出现了
my-portfolio仓库。 - 你的文件树里现在有一个
my-portfolio文件夹,里面是 Next.js 的标准结构。