基于 Turborepo 的 monorepo 基础
从生产级的 Next.js monorepo 开始,而不是从头拼装路由、共享代码和工具链。
next-forge 是适用于 Next.js 应用的生产级 Turborepo 模板,为 SaaS 项目提供结构化 monorepo 基础,支持独立应用、共享包和默认最佳实践。
next-forge 是适用于 Next.js 应用的生产级 Turborepo 模板。它为新的 SaaS 项目提供 monorepo 起点,重点是在不放弃结构化代码库的前提下快速交付。
该模板围绕独立应用和共享包进行设计,因此团队既能保持产品界面彼此独立,又能复用通用代码。文档将其描述为一个全面、带有明确主张的基础,配置极少,并采用有利于应用与包之间清晰边界的工作流。
从生产级的 Next.js monorepo 开始,而不是从头拼装路由、共享代码和工具链。
在一个仓库中运行多个独立应用,并为每个应用提供推荐的子域名和单独的环境变量。
将共享代码保存在诸如数据库层之类的包中,在那里集中管理 schema、迁移、中间件、hooks、组件和环境导出。
使用 Turborepo 边界来帮助通过 `bun run boundaries` 捕获工作区违规。
随附 web、API、email、docs、studio 和 Storybook 的应用模板,每个模板都专注于产品栈的不同部分。
使用包含 Next.js Server Actions、Prisma、Resend、Clerk、shadcn/ui、BaseHub、Storybook 以及其他已集成到模板中的工具的文档化配置。
当你想要启动一个新的 SaaS 产品,并获得现成的 web 应用、API、文档和配套工具,而不是逐个手动组装时,可以使用该模板。
当多个产品或界面需要共享包,但仍需作为独立应用部署时,可以使用这种 monorepo 布局。
当产品需要后端端点、事务性邮件模板和数据库编辑器,并且都要放在同一代码库中时,可以将 API、email 和 studio 应用一起使用。
当你需要公共站点、易维护的文档以及用于前端工作的隔离组件预览时,可以使用 docs、web 和 Storybook 应用。
当你想要一种有纪律的仓库结构,以帮助避免意外的跨应用耦合时,可以使用边界检查和应用专属的环境约定。
next-forge 使用 Next.js Server Actions,而不是 tRPC,因为该项目更偏向原生 Next.js 方案,能够获得更紧密的框架集成并降低复杂度。
默认工具由项目作者根据其在生产应用中的使用经验选择。文档说明,随着工具和偏好的演进,这些默认项可能会随时间变化。
文档说明,每个 `html` 标签上的 `suppressHydrationWarning` 遵循了 `next-themes` 的建议,用于避免因在客户端确定主题而引起的主题相关 hydration 警告。
FAQ 说明,某些依赖项的存在是为了防止 Turbopack 对项目中实际使用但未安装的包发出警告,否则可能会在生产环境中失败。
可以。结构文档说明每个应用和包都应保持自包含,仓库还包含贡献指南和用于使用该模板的文档页面。