next-forge logo

next-forge

認証する

next-forgeは、Next.jsアプリ向けの本番対応Turborepoテンプレートです。分離したappsとshared packages、意見のあるデフォルトで、SaaS開発の基盤を整えます。

next-forge preview

概要

next-forgeは、Next.jsアプリ向けの本番対応Turborepoテンプレートです。構造化されたコードベースを維持しながら迅速にリリースすることに重点を置いた、新しい SaaS プロジェクト向けの monorepo の出発点を提供します。

このテンプレートは分離した apps と shared packages を中心に設計されており、チームは共通コードを再利用しつつ、プロダクトの各領域を独立して保てます。ドキュメントでは、最小限の設定と、アプリとパッケージの明確な境界を重視するワークフローを備えた、包括的で意見のある基盤として説明されています。

next-forge に含まれるもの

Turborepo による monorepo 基盤

ルーティング、共有コード、ツールを一から組み立てるのではなく、本番対応の 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 など、テンプレートにすでに組み込まれたツールを含む、文書化されたセットアップを利用できます。

next-forge の一般的な使い方

  • 新しい SaaS プロジェクトを始める

    各要素を手作業で組み立てるのではなく、すぐ使える web アプリ、API、docs、サポートツールを備えた新しい SaaS 製品を立ち上げたいときに、このテンプレートを使います。

  • 1つのリポジトリで複数のアプリを整理する

    いくつかの製品や表示面で共有パッケージが必要でありつつ、それぞれを別々のアプリとしてデプロイ可能に保ちたいときに、この monorepo レイアウトを使います。

  • 製品インフラを構築する

    1つのコードベースでバックエンドのエンドポイント、トランザクションメールテンプレート、データベースエディタが必要な製品では、API、email、studio アプリを一緒に使います。

  • 製品の表示面を公開・維持する

    公開サイト、保守しやすいドキュメント、フロントエンド作業のための独立したコンポーネントプレビューが必要な場合は、docs、web、Storybook アプリを使います。

  • 大規模なリポジトリを構造化して保つ

    厳格なリポジトリ構造で、アプリ間の意図しない結合を避けたいときは、境界チェックとアプリ別の環境変数規約を使います。

Pros and Cons

Pros

  • web、API、email、docs、studio、Storybook の各アプリを含む、幅広いスタータースタックをカバーしています。
  • アプリとパッケージ間で共有コードをサポートする monorepo 構造を採用しています。
  • アプリの分離に向けた境界ルールと環境変数の慣例が文書化されています。
  • 空のひな形だけでなく、プロジェクト固有の具体的なツール選定が含まれています。

Cons

  • docs では意見のあるデフォルトが重視されているため、白紙に近いセットアップを望むチームは、一部の選択肢を置き換えたり再構成したりする必要があるかもしれません。
  • ソース資料にはプラン詳細を含む価格ページがないため、提供ページだけでは提供可否や商取引条件は明示されていません。

FAQ

なぜ next-forge は tRPC を使わないのですか?

next-forge は、よりネイティブな Next.js アプローチとフレームワークとの密な統合、そして複雑さの軽減を重視しているため、tRPC の代わりに Next.js Server Actions を使用しています。

なぜそれらのツールがデフォルトとして選ばれたのですか?

デフォルトのツールは、プロジェクト作者が本番アプリケーションでの使用経験に基づいて選定しました。ドキュメントでは、ツールや好みの変化に応じて、これらのデフォルトは将来的に変更される可能性があると説明されています。

なぜ `html` タグに `suppressHydrationWarning` が使われているのですか?

ドキュメントでは、各 `html` タグにある `suppressHydrationWarning` は、クライアント側でテーマを判定することによって発生するテーマ関連の hydration 警告を避けるために、`next-themes` の推奨に従っていると説明されています。

使用されていないように見える依存関係があるのはなぜですか?

FAQ では、一部の依存関係は、プロジェクト自体にはインストールされていないが使用されているパッケージに関する Turbopack の警告を防ぐために含まれており、そうしないと本番環境で失敗する可能性があると説明されています。

チームはテンプレートの構成を拡張したり調整したりできますか?

はい。構成ドキュメントでは、各アプリとパッケージは自己完結しているべきだとされており、リポジトリにはテンプレートの利用に関するコントリビュートガイドとドキュメントページが含まれています。

Quick Facts

カテゴリ
開発者向けツール
プラットフォーム
Next.js monorepo テンプレート
monorepo 管理ツール
Turborepo
価格
提供されたページには価格の詳細は掲載されていません
ソースドメイン
next-forge.com
主な用途
構造化された Next.js ベースで SaaS アプリを始めること