作品:AI 起名工具,Next.js + 多语言支持
最有成就感的是 Core Web Vitals 全绿。LCP 优化用了 next/image + priority + next/font,INP 优化拆分了长任务用 requestIdleCallback,CLS 优化给所有图片设了 width/height。移动端测试用 PageSpeed In...
最有成就感的是 Core Web Vitals 全绿。LCP 优化用了 next/image + priority + next/font,INP 优化拆分了长任务用 requestIdleCallback,CLS 优化给所有图片设了 width/height。移动端测试用 PageSpeed In...
数据库设计用了 Prisma + PostgreSQL,所有 DateTime 字段都加了 @db.Timestamptz。软删除用 deletedAt 字段,查询时自动过滤。索引方面,所有查询条件字段都加了 @@index,外键关系加了级联删除。迁移用 prisma migrate dev,生产用...
踩坑最深的莫过于 Server Component 中 cookies().set() 和 redirect() 不兼容的问题。一开始在 page.tsx 里设置 cookie 后 redirect,cookie 死活不生效。后来改成 Server Action 就好了。另外 next/dynami...
性能数据分享一下:PageSpeed 移动端 98 分,桌面端 100 分。LCP 0.9s,INP 86ms,CLS 0.02。关键优化是 LCP 图片用 next/image + priority,首屏不用 framer-motion 改用 CSS 动画,非首屏组件全部 next/dynamic...
性能对比:ISR vs SSR vs SSG。我的选择是公共页面用 ISR(revalidate: 3600),用户页面用 SSR(个性化数据),认证页面用 SSG(表单页)。ISR 缓存安全要确保 SSR 输出对所有用户相同,不含 session 数据。 从 0 到 1 的节奏:第一天搭框架(认...
踩坑最深的莫过于 Server Component 中 cookies().set() 和 redirect() 不兼容的问题。一开始在 page.tsx 里设置 cookie 后 redirect,cookie 死活不生效。后来改成 Server Action 就好了。另外 next/dynami...
用户反馈最积极的是暗色模式和加载体验。暗色模式用 next-themes 实现,CSS 变量控制配色。加载状态用 skeleton 骨架屏,比 spinner 体验好很多。表单提交用按钮 loading 状态 + toast 反馈,空状态有引导文案和插画。 数据库设计用了 Prisma + Pos...
踩坑最深的莫过于 Server Component 中 cookies().set() 和 redirect() 不兼容的问题。一开始在 page.tsx 里设置 cookie 后 redirect,cookie 死活不生效。后来改成 Server Action 就好了。另外 next/dynami...
项目的 generateMetadata 完整配置:title 用模板({页面标题} | {品牌名}),description 120-160 字符含关键词,OG 图片用 next/og 动态生成 1200x630,Twitter Card 用 summary_large_image,robots...
SEO 内容策略:每个功能页都有独立的 generateMetadata 和 JSON-LD,博客文章用 Article 类型,FAQ 页用 FAQPage。sitemap.xml 用 ISR 缓存,发布新内容后 revalidatePath 主动刷新。长尾关键词页面用 AI 批量生成,每篇人工改写...
踩坑最深的莫过于 Server Component 中 cookies().set() 和 redirect() 不兼容的问题。一开始在 page.tsx 里设置 cookie 后 redirect,cookie 死活不生效。后来改成 Server Action 就好了。另外 next/dynami...
从 0 到 1 的节奏:第一天搭框架(认证 + 数据库 + UI 组件库),第二天做核心功能(CRUD + 交互),第三天打磨体验(动画 + 错误处理 + 响应式)。AI 帮我省了大量模板代码时间,但架构设计和用户体验细节还是靠人的判断。 项目的 generateMetadata 完整配置:tit...
从 0 到 1 的节奏:第一天搭框架(认证 + 数据库 + UI 组件库),第二天做核心功能(CRUD + 交互),第三天打磨体验(动画 + 错误处理 + 响应式)。AI 帮我省了大量模板代码时间,但架构设计和用户体验细节还是靠人的判断。 安全方面做了:密码 bcrypt 哈希、API 限流(认证...
部署流程:GitHub push → Vercel 自动构建 → Preview 环境 → 合并到 main → Production 环境。环境变量在 Vercel Dashboard 配置,区分 Production/Preview/Development。数据库迁移用 GitHub Actio...
性能对比:ISR vs SSR vs SSG。我的选择是公共页面用 ISR(revalidate: 3600),用户页面用 SSR(个性化数据),认证页面用 SSG(表单页)。ISR 缓存安全要确保 SSR 输出对所有用户相同,不含 session 数据。 SEO 成果:上线两周 Google 收...
技术架构上,Server Component 做数据获取和 SEO 输出,Client Component 只负责交互。用 Server Action 处理表单提交,Zod 校验输入,错误消息走 next-intl i18n。认证用 Auth.js 5 JWT 模式,中间件做认证重定向和 API 限...
最得意的功能是实时协作,用 Yjs + WebSocket 实现多人同时编辑。Yjs 处理 CRDT 数据同步,WebSocket 做实时通信,离线编辑用 IndexedDB 缓存。Next.js 的 API 路由做 WebSocket 中继服务器,部署在 Vercel 的 Edge Runtime...
这个项目的代码约 60% 是 Cursor 生成的,30% 是 AI 生成后我调整的,10% 是纯手写。AI 最擅长的是 CRUD 页面、表单组件、类型定义。我手写的主要是复杂业务逻辑、认证流程、支付 Webhook 这些不能出错的部分。 这个项目我用 Next.js 15 App Router...
部署流程:GitHub push → Vercel 自动构建 → Preview 环境 → 合并到 main → Production 环境。环境变量在 Vercel Dashboard 配置,区分 Production/Preview/Development。数据库迁移用 GitHub Actio...
支付集成用的 Stripe,Webhook 处理订阅状态变更。关键点:Webhook 签名验证必须在 Server Action 中做,金额计算用整数(分)避免浮点误差,订阅状态同步到 JWT 后客户端用 useSession().update() 刷新。 国际化用了 next-intl,翻译文件...