next-forge logo

next-forge

认领

next-forge 是适用于 Next.js 应用的生产级 Turborepo 模板,为 SaaS 项目提供结构化 monorepo 基础,支持独立应用、共享包和默认最佳实践。

next-forge preview

概述

next-forge 是适用于 Next.js 应用的生产级 Turborepo 模板。它为新的 SaaS 项目提供 monorepo 起点,重点是在不放弃结构化代码库的前提下快速交付。

该模板围绕独立应用和共享包进行设计,因此团队既能保持产品界面彼此独立,又能复用通用代码。文档将其描述为一个全面、带有明确主张的基础,配置极少,并采用有利于应用与包之间清晰边界的工作流。

next-forge 包含哪些内容

基于 Turborepo 的 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 以及其他已集成到模板中的工具的文档化配置。

next-forge 的常见使用方式

  • 启动新的 SaaS 项目

    当你想要启动一个新的 SaaS 产品,并获得现成的 web 应用、API、文档和配套工具,而不是逐个手动组装时,可以使用该模板。

  • 在一个仓库中组织多个应用

    当多个产品或界面需要共享包,但仍需作为独立应用部署时,可以使用这种 monorepo 布局。

  • 构建产品基础设施

    当产品需要后端端点、事务性邮件模板和数据库编辑器,并且都要放在同一代码库中时,可以将 API、email 和 studio 应用一起使用。

  • 交付并维护产品界面

    当你需要公共站点、易维护的文档以及用于前端工作的隔离组件预览时,可以使用 docs、web 和 Storybook 应用。

  • 保持大型仓库结构清晰

    当你想要一种有纪律的仓库结构,以帮助避免意外的跨应用耦合时,可以使用边界检查和应用专属的环境约定。

Pros and Cons

Pros

  • 涵盖了广泛的起步技术栈,包括 web、API、email、docs、studio 和 Storybook 应用。
  • 采用支持应用与包之间共享代码的 monorepo 结构。
  • 提供了用于应用隔离的文档化边界和环境变量约定。
  • 包含具体的项目级工具选择,而不仅仅是一个空白脚手架。

Cons

  • 文档强调默认配置带有明确主张,因此想要空白起步环境的团队可能需要替换或重做部分选择。
  • 源材料未包含带有方案细节的定价页面,因此提供页面中未说明可用性和商业条款。

FAQ

为什么 next-forge 不使用 tRPC?

next-forge 使用 Next.js Server Actions,而不是 tRPC,因为该项目更偏向原生 Next.js 方案,能够获得更紧密的框架集成并降低复杂度。

为什么选择这些工具作为默认配置?

默认工具由项目作者根据其在生产应用中的使用经验选择。文档说明,随着工具和偏好的演进,这些默认项可能会随时间变化。

为什么会在 `html` 标签上使用 `suppressHydrationWarning`?

文档说明,每个 `html` 标签上的 `suppressHydrationWarning` 遵循了 `next-themes` 的建议,用于避免因在客户端确定主题而引起的主题相关 hydration 警告。

为什么会有看起来未使用的依赖项?

FAQ 说明,某些依赖项的存在是为了防止 Turbopack 对项目中实际使用但未安装的包发出警告,否则可能会在生产环境中失败。

团队能否扩展或调整模板结构?

可以。结构文档说明每个应用和包都应保持自包含,仓库还包含贡献指南和用于使用该模板的文档页面。

Quick Facts

类别
开发者工具
平台
Next.js monorepo 模板
Monorepo 管理器
Turborepo
定价
提供的页面未发布定价详情
源域名
next-forge.com
主要用途
使用结构化的 Next.js 基础启动 SaaS 应用