跳到主内容

作品分享:Next.js 播客托管平台,RSS 自动生成

小青年225 浏览
小青
小青年楼主
安全方面做了:密码 bcrypt 哈希、API 限流(认证 5 次/15min,通用 60 次/min)、CORS 只允许主域、禁止 dangerouslySetInnerHTML、环境变量分离 NEXT_PUBLIC_ 和服务端变量。XSS 和 SQL 注入 Prisma 天然防护。

踩坑最深的莫过于 Server Component 中 cookies().set() 和 redirect() 不兼容的问题。一开始在 page.tsx 里设置 cookie 后 redirect,cookie 死活不生效。后来改成 Server Action 就好了。另外 next/dynamic + ssr:false 不能在 Server Component 中用,得包一层 'use client' 组件。

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

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

数据库设计用了 Prisma + PostgreSQL,所有 DateTime 字段都加了 @db.Timestamptz。软删除用 deletedAt 字段,查询时自动过滤。索引方面,所有查询条件字段都加了 @@index,外键关系加了级联删除。迁移用 prisma migrate dev,生产用 prisma migrate deploy。
Next.js
查看历史

7 回复

  1. 摸鱼
    摸鱼的锦鲤第 2 楼
    暗色模式用 next-themes 确实方便,我的项目也是这么做的,但要注意 suppressHydrationWarning。
  2. BU
    Budi Santoso第 3 楼
    我调研过这块,多租户 SaaS 架构能展开讲讲吗?特别是数据隔离是按 schema 还是按 tenantId 字段?效果因项目而异,建议实际测试。
  3. 竹林
    竹林深处第 4 楼
    这个观点我很认同,Server Component 和 Client Component 边界划得很清晰,我之前总是搞混导致 hydration 报错。效果因项目而异,建议实际测试。
  4. 慢慢
    慢慢来第 5 楼
    讲个真实案例:多租户 SaaS 架构能展开讲讲吗?特别是数据隔离是按 schema 还是按 tenantId 字段?感谢楼主的启发。
  5. AH
    Ahmed Al-Farsi第 6 楼
    ISR + MDX 的博客方案我也在用,revalidate: 3600 是个合理的值,太短会影响性能。
  6. CH
    Chloe Bennett第 7 楼
    讲个真实案例:Yjs 实时协作的方案很完整,但 Vercel Edge Runtime 上跑 WebSocket 会不会有连接数限制?共同进步。
  7. 刚刚
    刚刚好第 8 楼
    补充一个可能被忽略的点:多租户 SaaS 架构能展开讲讲吗?特别是数据隔离是按 schema 还是按 tenantId 字段?欢迎交流讨论。
登录后可回复
    数据正在加载中…