EasyStarter logoEasyStarter

プロジェクト構造

Monorepo アーキテクチャの概要

概要

EasyStarter は Turborepo monorepo 構造と pnpm workspaces を使用しています。

ディレクトリ構造

easysaas/
├── apps/
│   ├── web/           # フロントエンド(React + TanStack Start)
│   ├── server/        # バックエンド(Hono + Cloudflare Workers)
│   ├── native/        # モバイル(React Native + Expo)
├── packages/
│   ├── i18n/          # 共有国際化
│   ├── api-client/    # 型安全な API クライアント
│   └── storage-config/ # ストレージ設定
└── docs/              # ドキュメント

アプリ

Web (apps/web/)

以下の技術で構築されたフロントエンドアプリケーション:

  • React 19 - UI ライブラリ
  • TanStack Start - フルスタック React フレームワーク
  • TanStack Router - 型安全なルーティング
  • TanStack Query - データフェッチング
  • TailwindCSS - スタイリング
  • shadcn/ui - コンポーネントライブラリ
apps/web/src/
├── components/    # 再利用可能な UI コンポーネント
├── routes/        # ページコンポーネントとルーティング
├── hooks/         # カスタム React フック
├── lib/           # ユーティリティ関数
├── configs/       # アプリ設定
└── styles/        # グローバルスタイル

Server (apps/server/)

以下の技術で構築されたバックエンド API:

  • Hono - Web フレームワーク
  • Cloudflare Workers - サーバーレスランタイム
  • Drizzle ORM - データベースツールキット
  • oRPC - 型安全な RPC
apps/server/src/
├── routers/       # API ルーター(oRPC)
├── handlers/      # ビジネスロジック
├── db/            # データベーススキーマとマイグレーション
├── middlewares/   # リクエストミドルウェア
├── emails/        # メールテンプレート
└── lib/           # 共有ユーティリティ

Native (apps/native/)

以下の技術で構築されたモバイルアプリ:

  • React Native - クロスプラットフォームモバイル
  • Expo - 開発プラットフォーム
  • Expo Router - ファイルベースのルーティング

パッケージ

i18n (packages/i18n/)

すべてのサポートされるロケールの翻訳を含む共有国際化パッケージ。

api-client (packages/api-client/)

サーバーの型から生成された型安全な API クライアント。

storage-config (packages/storage-config/)

共有ストレージ設定とユーティリティ。

主要ファイル

ファイル目的
turbo.jsonTurborepo パイプライン設定
pnpm-workspace.yamlワークスペースパッケージ定義
.oxlintrc.jsonリンティングルール(oxlint
.oxfmtrc.jsonフォーマットルール(oxfmt
tsconfig.jsonTypeScript 設定

開発ワークフロー

# 依存関係をインストール
pnpm install

# すべてのアプリを起動
pnpm dev

# 特定のアプリを起動
pnpm dev:web
pnpm dev:server

# すべてをビルド
pnpm build

# 型チェック
pnpm check-types

On this page