用 Vibecoding 做的 Next.js 轮播图生成器,一键导出
SEO 内容策略:每个功能页都有独立的 generateMetadata 和 JSON-LD,博客文章用 Article 类型,FAQ 页用 FAQPage。sitemap.xml 用 ISR 缓存,发布新内容后 revalidatePath 主动刷新。长尾关键词页面用 AI 批量生成,每篇人工改写...
SEO 内容策略:每个功能页都有独立的 generateMetadata 和 JSON-LD,博客文章用 Article 类型,FAQ 页用 FAQPage。sitemap.xml 用 ISR 缓存,发布新内容后 revalidatePath 主动刷新。长尾关键词页面用 AI 批量生成,每篇人工改写...
性能数据分享一下:PageSpeed 移动端 98 分,桌面端 100 分。LCP 0.9s,INP 86ms,CLS 0.02。关键优化是 LCP 图片用 next/image + priority,首屏不用 framer-motion 改用 CSS 动画,非首屏组件全部 next/dynamic...
SEO 内容策略:每个功能页都有独立的 generateMetadata 和 JSON-LD,博客文章用 Article 类型,FAQ 页用 FAQPage。sitemap.xml 用 ISR 缓存,发布新内容后 revalidatePath 主动刷新。长尾关键词页面用 AI 批量生成,每篇人工改写...
性能数据分享一下:PageSpeed 移动端 98 分,桌面端 100 分。LCP 0.9s,INP 86ms,CLS 0.02。关键优化是 LCP 图片用 next/image + priority,首屏不用 framer-motion 改用 CSS 动画,非首屏组件全部 next/dynamic...
最得意的功能是实时协作,用 Yjs + WebSocket 实现多人同时编辑。Yjs 处理 CRDT 数据同步,WebSocket 做实时通信,离线编辑用 IndexedDB 缓存。Next.js 的 API 路由做 WebSocket 中继服务器,部署在 Vercel 的 Edge Runtime...
踩坑最深的莫过于 Server Component 中 cookies().set() 和 redirect() 不兼容的问题。一开始在 page.tsx 里设置 cookie 后 redirect,cookie 死活不生效。后来改成 Server Action 就好了。另外 next/dynami...
数据可视化用 Recharts 做图表,折线图/柱状图/饼图都有。关键:图表组件用 next/dynamic 懒加载(ssr:false),因为 Recharts 依赖浏览器 API。数据获取在 Server Component 完成,通过 props 传给 Client Component 的图表...
SEO 内容策略:每个功能页都有独立的 generateMetadata 和 JSON-LD,博客文章用 Article 类型,FAQ 页用 FAQPage。sitemap.xml 用 ISR 缓存,发布新内容后 revalidatePath 主动刷新。长尾关键词页面用 AI 批量生成,每篇人工改写...
技术架构上,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...
最花时间的是表单交互细节。每个表单字段都有输入约束预提示(长度/格式/范围),Zod 校验错误消息和 hint 文本保持一致,四态(加载/空/错误/成功)都有视觉反馈。破坏性操作(删除/清空)有二次确认弹窗,未保存变更离开有提醒。 这个产品上线一个月了,目前 300 注册用户,日活 50 左右。获...
UI 设计灵感来自 Linear 和 Vercel,极简风格。配色用 CSS 变量控制,支持亮色/暗色/系统三种模式。组件用 Shadcn UI 做基础,自定义了按钮和卡片的圆角和阴影。响应式断点用 Tailwind 的 sm/md/lg/xl,移动端优先设计。 性能对比:ISR vs SSR v...
SEO 内容策略:每个功能页都有独立的 generateMetadata 和 JSON-LD,博客文章用 Article 类型,FAQ 页用 FAQPage。sitemap.xml 用 ISR 缓存,发布新内容后 revalidatePath 主动刷新。长尾关键词页面用 AI 批量生成,每篇人工改写...
数据可视化用 Recharts 做图表,折线图/柱状图/饼图都有。关键:图表组件用 next/dynamic 懒加载(ssr:false),因为 Recharts 依赖浏览器 API。数据获取在 Server Component 完成,通过 props 传给 Client Component 的图表...
最花时间的是表单交互细节。每个表单字段都有输入约束预提示(长度/格式/范围),Zod 校验错误消息和 hint 文本保持一致,四态(加载/空/错误/成功)都有视觉反馈。破坏性操作(删除/清空)有二次确认弹窗,未保存变更离开有提醒。 SEO 成果:上线两周 Google 收录了 38 个页面,核心关...
技术架构上,Server Component 做数据获取和 SEO 输出,Client Component 只负责交互。用 Server Action 处理表单提交,Zod 校验输入,错误消息走 next-intl i18n。认证用 Auth.js 5 JWT 模式,中间件做认证重定向和 API 限...
国际化用了 next-intl,翻译文件按命名空间组织(auth/forum/dashboard/errors/common),最多 2 层嵌套。ICU 插值用 {min}/{max} 占位符。中间件做 i18n 路由处理,URL 格式 /{locale}/...。所有用户可见文本都走 t(),没有...
数据库设计用了 Prisma + PostgreSQL,所有 DateTime 字段都加了 @db.Timestamptz。软删除用 deletedAt 字段,查询时自动过滤。索引方面,所有查询条件字段都加了 @@index,外键关系加了级联删除。迁移用 prisma migrate dev,生产用...
数据库设计用了 Prisma + PostgreSQL,所有 DateTime 字段都加了 @db.Timestamptz。软删除用 deletedAt 字段,查询时自动过滤。索引方面,所有查询条件字段都加了 @@index,外键关系加了级联删除。迁移用 prisma migrate dev,生产用...
部署流程:GitHub push → Vercel 自动构建 → Preview 环境 → 合并到 main → Production 环境。环境变量在 Vercel Dashboard 配置,区分 Production/Preview/Development。数据库迁移用 GitHub Actio...