Turborepo による monorepo 基盤
ルーティング、共有コード、ツールを一から組み立てるのではなく、本番対応の Next.js monorepo から始められます。
next-forgeは、Next.jsアプリ向けの本番対応Turborepoテンプレートです。分離したappsとshared packages、意見のあるデフォルトで、SaaS開発の基盤を整えます。
next-forgeは、Next.jsアプリ向けの本番対応Turborepoテンプレートです。構造化されたコードベースを維持しながら迅速にリリースすることに重点を置いた、新しい SaaS プロジェクト向けの monorepo の出発点を提供します。
このテンプレートは分離した apps と shared packages を中心に設計されており、チームは共通コードを再利用しつつ、プロダクトの各領域を独立して保てます。ドキュメントでは、最小限の設定と、アプリとパッケージの明確な境界を重視するワークフローを備えた、包括的で意見のある基盤として説明されています。
ルーティング、共有コード、ツールを一から組み立てるのではなく、本番対応の Next.js monorepo から始められます。
1つのリポジトリで複数の自己完結型アプリを実行でき、各アプリには推奨サブドメインと個別の環境変数が用意されています。
データベース層などのパッケージに共有コードをまとめ、スキーマ、マイグレーション、ミドルウェア、フック、コンポーネント、環境変数のエクスポートを集約できます。
`bun run boundaries` を使って、Turborepo の境界によりワークスペース違反の検出を支援します。
web、API、email、docs、studio、Storybook 向けのアプリテンプレートが含まれており、それぞれ製品スタックの異なる部分に焦点を当てています。
Next.js Server Actions、Prisma、Resend、Clerk、shadcn/ui、BaseHub、Storybook など、テンプレートにすでに組み込まれたツールを含む、文書化されたセットアップを利用できます。
各要素を手作業で組み立てるのではなく、すぐ使える web アプリ、API、docs、サポートツールを備えた新しい SaaS 製品を立ち上げたいときに、このテンプレートを使います。
いくつかの製品や表示面で共有パッケージが必要でありつつ、それぞれを別々のアプリとしてデプロイ可能に保ちたいときに、この monorepo レイアウトを使います。
1つのコードベースでバックエンドのエンドポイント、トランザクションメールテンプレート、データベースエディタが必要な製品では、API、email、studio アプリを一緒に使います。
公開サイト、保守しやすいドキュメント、フロントエンド作業のための独立したコンポーネントプレビューが必要な場合は、docs、web、Storybook アプリを使います。
厳格なリポジトリ構造で、アプリ間の意図しない結合を避けたいときは、境界チェックとアプリ別の環境変数規約を使います。
next-forge は、よりネイティブな Next.js アプローチとフレームワークとの密な統合、そして複雑さの軽減を重視しているため、tRPC の代わりに Next.js Server Actions を使用しています。
デフォルトのツールは、プロジェクト作者が本番アプリケーションでの使用経験に基づいて選定しました。ドキュメントでは、ツールや好みの変化に応じて、これらのデフォルトは将来的に変更される可能性があると説明されています。
ドキュメントでは、各 `html` タグにある `suppressHydrationWarning` は、クライアント側でテーマを判定することによって発生するテーマ関連の hydration 警告を避けるために、`next-themes` の推奨に従っていると説明されています。
FAQ では、一部の依存関係は、プロジェクト自体にはインストールされていないが使用されているパッケージに関する Turbopack の警告を防ぐために含まれており、そうしないと本番環境で失敗する可能性があると説明されています。
はい。構成ドキュメントでは、各アプリとパッケージは自己完結しているべきだとされており、リポジトリにはテンプレートの利用に関するコントリビュートガイドとドキュメントページが含まれています。