ドキュメント

StartFast Pro

StartFast Pro は、認証、決済、チーム、i18n、アナリティクス、ブログ、クリーンな UI システムを備えたプレミアムな本番環境対応の Next.js 15 ボイラープレートです。

このドキュメントで、素早く開始し、SaaS 製品に合わせて StartFast Pro をカスタマイズできます。

含まれるもの

  • Next.js 15 App Router(React 19 とサーバーコンポーネント付き)
  • Better Auth 認証(メール、Google、GitHub OAuth)
  • PostgreSQL データベース(Drizzle ORM)
  • Stripe 決済(サブスクリプションと Webhooks)
  • Resend によるメール配信
  • next-intl による国際化(7言語)
  • チームと RBAC(組織、ロール、権限)
  • PostHog アナリティクス統合
  • ブログシステム(Markdown、SEO、読了時間)
  • 管理ダッシュボード(ユーザー、注文、アナリティクス、コンテンツ)
  • Playwright E2E テスト
  • TypeScript エンドツーエンド型安全性

クイックスタート

1リポジトリをクローン
git clone https://github.com/Harries/startfast-pro.git my-saas
2依存関係をインストール
cd my-saas && npm install
3環境を設定
cp .env.example .env.local
4データベースをセットアップ
npm run db:push
5開発を開始
npm run dev

http://localhost:3000 を開く

環境変数

.env.example を .env.local にコピーして設定:

# App
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_APP_NAME=StartFast Pro

# Database (Postgres)
DATABASE_URL=postgresql://username:password@localhost:5432/startfast_pro

# Authentication (Better-Auth)
BETTER_AUTH_SECRET=your-secret-key-at-least-32-characters
BETTER_AUTH_URL=http://localhost:3000

# Email (Resend)
RESEND_API_KEY=re_xxxxx
EMAIL_FROM=onboarding@yourdomain.com

# Stripe
STRIPE_SECRET_KEY=sk_test_xxxxx
STRIPE_WEBHOOK_SECRET=whsec_xxxxx
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_xxxxx

# Optional: Google OAuth
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

# Optional: GitHub OAuth
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=

# Analytics (PostHog)
NEXT_PUBLIC_POSTHOG_KEY=
NEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com

# Default Locale
NEXT_PUBLIC_DEFAULT_LOCALE=en

データベースセットアップ

StartFast Pro は PostgreSQL と Drizzle ORM を使用します。サーバーレス PostgreSQL には Neon をお勧めします。

  1. 1.PostgreSQL データベースを作成(ローカルまたは Neon)
  2. 2..env.local に DATABASE_URL を設定
  3. 3.npm run db:push でスキーマをデータベースにプッシュ
  4. 4.npm run db:studio で Drizzle Studio を使ってデータを表示/編集
  5. 5.npm run db:generate でマイグレーションを生成

Schema: データベーススキーマは src/db/schema.ts で Drizzle の TypeScript ファーストアプローチで定義されています。DB クライアントは src/db/index.ts からエクスポートされます。

認証

StartFast Pro は Better Auth と Drizzle アダプターを使用して認証を行います。メール/パスワードとソーシャル OAuth をサポート。

  1. 1.BETTER_AUTH_SECRET を設定(32文字以上)
  2. 2.BETTER_AUTH_URL をアプリの URL に設定
  3. 3.(オプション)Google OAuth を設定:GOOGLE_CLIENT_ID と GOOGLE_CLIENT_SECRET
  4. 4.(オプション)GitHub OAuth を設定:GITHUB_CLIENT_ID と GITHUB_CLIENT_SECRET

Tip: 認証設定は src/lib/auth.ts(サーバー)と src/lib/auth-client.ts(クライアント)にあります。セッションはデフォルトで7日後に期限切れ。

Stripe 決済

StartFast Pro は Stripe サブスクリプションと Webhook 処理をサポートします。

  1. 1.Stripe Dashboard → API Keys から API キーを取得
  2. 2.STRIPE_SECRET_KEY、NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY を設定
  3. 3.https://your-domain.com/api/webhook/stripe に Webhook エンドポイントを作成
  4. 4.Webhook 署名シークレットを STRIPE_WEBHOOK_SECRET にコピー

Tip: ローカルテストには stripe listen --forward-to localhost:3000/api/webhook/stripe を使用

メール設定

StartFast Pro はトランザクションメールに Resend を使用します。

  1. 1.Resend アカウントを作成
  2. 2.API キーを取得して RESEND_API_KEY を設定
  3. 3.EMAIL_FROM を認証済みの送信者アドレスに設定
RESEND_API_KEY=re_xxxxx
EMAIL_FROM=onboarding@yourdomain.com

国際化

StartFast Pro は next-intl による多言語サポートを含み、7つの言語が組み込まれています。

  • 英語 (en)
  • 中国語 (zh)
  • 日本語 (ja)
  • 韓国語 (ko)
  • ドイツ語 (de)
  • フランス語 (fr)
  • スペイン語 (es)

翻訳ファイルは src/i18n/messages/ にあります。デフォルトロケールの設定:

NEXT_PUBLIC_DEFAULT_LOCALE=en

アナリティクス

StartFast Pro は PostHog と統合してプロダクトアナリティクスを提供します。サインアップ、サブスクリプション、チームアクションなどのイベントトラッカーが含まれています。

  1. 1.PostHog アカウントを作成
  2. 2.NEXT_PUBLIC_POSTHOG_KEY と NEXT_PUBLIC_POSTHOG_HOST を設定

Tip: アナリティクスヘルパーは src/lib/analytics.ts にあります。analytics.signUp()、analytics.subscriptionStarted() などを使用。

チームとロール

StartFast Pro には完全な組織とロールベースのアクセス制御(RBAC)システムが含まれています。

ロール

  • オーナー — 完全なアクセス権。所有権を譲渡可能。
  • 管理者 — メンバー、設定、ほとんどのリソースを管理。
  • メンバー — コンテンツの作成と編集。設定アクセスは制限付き。
  • ビューアー — 読み取り専用アクセス。

Tip: 権限は src/lib/permissions.ts で定義されています。hasPermission(role, permission) でアクセスを確認。

デプロイ

数分で Vercel にデプロイ:

  1. 1.コードを GitHub にプッシュ
  2. 2.Vercel でリポジトリをインポート
  3. 3.すべての環境変数を追加
  4. 4.デプロイ!

Important: デプロイ後、Stripe Webhook URL を本番ドメインに更新してください。

サポート

お困りですか?お問い合わせください: