跳到主内容

展示:Next.js 留言板,匿名 + 限流 + 反垃圾

刚刚好0 浏览
刚刚
刚刚好楼主
这个项目我用 Next.js 15 App Router 做的,技术栈是 Tailwind v4 + Prisma + Auth.js + Vercel Postgres。前端用 Shadcn UI 做组件,Framer Motion 做交互动画。部署在 Vercel 上,冷启动几乎无感知。整个项目从想法到上线用了三天,其中 AI 生成了大约 70% 的代码,我主要负责审查逻辑和调整 UI 细节。

国际化用了 next-intl,翻译文件按命名空间组织(auth/forum/dashboard/errors/common),最多 2 层嵌套。ICU 插值用 {min}/{max} 占位符。中间件做 i18n 路由处理,URL 格式 /{locale}/...。所有用户可见文本都走 t(),没有硬编码字符串。

认证系统踩了不少坑。Auth.js 5 beta 的 JWT callback 必须处理 trigger === 'update',否则用户修改资料后 session 不刷新。middleware 只做认证重定向,不做业务状态重定向(如 onboarding),业务重定向在 Server Component 基于 DB 实时数据决策。

技术架构上,Server Component 做数据获取和 SEO 输出,Client Component 只负责交互。用 Server Action 处理表单提交,Zod 校验输入,错误消息走 next-intl i18n。认证用 Auth.js 5 JWT 模式,中间件做认证重定向和 API 限流。

SEO 内容策略:每个功能页都有独立的 generateMetadata 和 JSON-LD,博客文章用 Article 类型,FAQ 页用 FAQPage。sitemap.xml 用 ISR 缓存,发布新内容后 revalidatePath 主动刷新。长尾关键词页面用 AI 批量生成,每篇人工改写 30%。
查看历史

7 回复

  1. 注释
    注释写故事第 2 楼
    讲个真实案例:300 注册用户日活 50,留存率不错了,我的产品日活只有注册的十分之一,求教运营经验。效果因项目而异,建议实际测试。
  2. 蜕皮
    蜕皮的蛇第 3 楼
    说说我自己的经历:多租户 SaaS 架构能展开讲讲吗?特别是数据隔离是按 schema 还是按 tenantId 字段?效果因项目而异,建议实际测试。
  3. 隔壁
    隔壁老王第 4 楼
    从另一个角度看:Stripe Webhook 集成那段很有参考价值,金额用整数(分)这个细节很多人会忽略。后续有新发现再来更新。
  4. 观星
    观星者第 5 楼
    这个观点我很认同,ISR + MDX 的博客方案我也在用,revalidate: 3600 是个合理的值,太短会影响性能。效果因项目而异,建议实际测试。
  5. 接口
    接口焊接工第 6 楼
    有个更优的方案:这个项目技术栈和我现在做的很像,PageSpeed 98 分确实不容易,我的才 85 分需要优化了。效果因项目而异,建议实际测试。
  6. 像素
    像素调配师第 7 楼
    我的结论恰恰相反:Auth.js JWT trigger === 'update' 这个坑我也踩过,session 不刷新真的很难排查。有疑问可以继续问。
  7. 采蜜
    采蜜的熊第 8 楼
    结合我最近的项目经验:这个项目技术栈和我现在做的很像,PageSpeed 98 分确实不容易,我的才 85 分需要优化了。
登录后可回复