stackbook

← 辞書(分野別)

§19

ケース別の構成

最終確認:2026年9月

§1〜18の既定から、ケースごとに組み合わせたもの。記載のないレイヤーは各セクションの既定を使う。

19-1. コーポレートサイト・LP・メディア

フロント
Astro+Tailwind CSS
CMS
microCMS(セルフホストならPayload)
ホスティング
Cloudflare Pages
フォーム
Cloudflare Workers+Resend、スパム対策にCloudflare Turnstile
検索
Pagefind
分析
Cloudflare Web Analytics(取引先やマーケティング担当がGA4を求めるならGA4)
監視
Better Stack(外形監視)
Webhookフォーム送信

ユーザー

Cloudflare Pages
Astro 静的サイト

編集者

microCMS

ビルド

Cloudflare Workers

Resend

自分で書く自分で運用するマネージド

更新の即時反映は、CMSのWebhookからビルドを起動して行う。

19-2. EC(標準)

本体
Shopify(テーマはLiquid)
決済
Shopify Payments+国内決済アプリ
追加機能
Shopifyアプリ。独自処理が必要ならShopify Functions

購入者

Shopify
Liquid テーマ

Shopify Payments

Shopify アプリ/Functions

自分で書く自分で運用するマネージド

19-3. EC(独自要件が多い)

コマースエンジン
Medusa(TypeScript)
フロント
Next.js+shadcn/ui
DB
RDS for PostgreSQL
決済
Stripe+KOMOJU(国内決済手段)
検索
Meilisearch
画像
Cloudflare Images
メール
Amazon SES+React Email
インフラ
ECS on Fargate、Cloudflare(CDN・WAF・Waiting Room)
監視
Sentry+Grafana Cloud

購入者

Cloudflare
CDN・WAF・Waiting Room

Next.js

Medusa API
ECS Fargate

Cloudflare Images

PostgreSQL
RDS

Meilisearch

Stripe/KOMOJU

Amazon SES

自分で書く自分で運用するマネージド

19-4. 業務システム・社内ツール(Rails構成)

アプリ
Rails+Hotwire+tailwindcss-rails+ViewComponent
DB
PostgreSQL
ジョブ・キャッシュ
Solid Queue/Solid Cache
認証
Railsの認証ジェネレータ(社内ならGoogle/Entra IDのSSO)
認可
Pundit
管理画面
Avo
帳票
Playwright(HTML→PDF)
デプロイ
Kamal(オンプレVM・VPS)またはRender
テスト
Minitest+システムテスト
静的解析
RuboCop、Brakeman、bundler-audit
デプロイ

社員

SSO
Google/Entra ID

Rails
Hotwire

PostgreSQL
Solid Queue/Solid Cache

Playwright
PDF 帳票

Kamal

自分で書く自分で運用するマネージド

19-5. 業務システム・社内ツール(TypeScript構成)

フロント
React+Vite+TanStack Router+TanStack Query
UI
shadcn/ui+TanStack Table(編集が重いならAG Grid)
フォーム
React Hook Form+Zod
API
Hono(RPCでフロントと型共有)
DB
PostgreSQL+Drizzle
認証
Better Auth(社内ならSSO)
ジョブ
BullMQ+Valkey(またはpg-boss)
リポジトリ
pnpm workspaces+Turborepo(apps/web、apps/api、packages/shared)
デプロイ
Render(AWSならECS on Fargate、オンプレならコンテナでVM)
Hono RPC

社員

React+Vite
TanStack Router/Query

Hono API

PostgreSQL
Drizzle

BullMQ+Valkey

ワーカー

自分で書く自分で運用するマネージド

19-6. 自社SaaS(B2B)

フロント
Next.js+shadcn/ui+TanStack Query
バックエンド
Go(net/http+sqlc+pgx)。少人数ならHono
API
OpenAPI(oapi-codegen)→ openapi-typescriptでクライアント生成
DB
PostgreSQL(テナントIDカラム+Row Level Security)
ジョブ
River
認証
Clerk(SSO/SCIMが必要になったらWorkOS)
課金
Stripe Billing
監査ログ
専用テーブルに追記のみで記録
インフラ
ECS on Fargate+RDS+Terraform
分析・機能フラグ
PostHog
監視
Sentry+OpenTelemetry+Grafana Cloud
OpenAPI

利用企業

Next.js

Clerk/WorkOS

Go API
ECS Fargate

PostgreSQL
RLS でテナント分離

River ワーカー

Stripe Billing

OpenTelemetry

Grafana Cloud

自分で書く自分で運用するマネージド

最初に決めること:マルチテナントの分離方式、SSO対応の時期、監査ログの範囲。

19-7. toCサービス(Web+モバイル)

Web
Next.js
モバイル
React Native+Expo(Expo Router、NativeWind)
バックエンド
Hono(またはGo)
DB・認証・ストレージ
Supabase(小〜中規模)/ RDS+Clerk+S3(中規模以上)
プッシュ通知
FCM(Expo Notifications)
画像・動画
Cloudflare Images/Cloudflare Stream
分析
PostHog
配信
EAS Build/Submit/Update
プッシュ通知

Next.js

Hono/Go API

Expo アプリ

Supabase
DB・Auth・Storage

FCM

Cloudflare Images/Stream

自分で書く自分で運用するマネージド

19-8. AI/LLMプロダクト

フロント
Next.js(ストリーミング表示)
AIバックエンド
LLM API呼び出し中心ならHono(TS)、埋め込み・ML処理があるならFastAPI(uv、Ruff、Pydantic)
DB・ベクトル
PostgreSQL+pgvector
長時間処理
Temporal、またはInngest
評価・トレース
Langfuse
監視
Sentry+OpenTelemetry

ユーザー

Next.js
ストリーミング表示

Hono または FastAPI

LLM API

PostgreSQL+pgvector

Temporal/Inngest
長時間処理

Langfuse
評価・トレース

自分で書く自分で運用するマネージド

利用規約・データ取り扱い(学習への利用有無、保存リージョン)を利用者に説明できる状態にしておく。

19-9. リアルタイム系(チャット・通知・共同編集)

Rails
Action Cable+Solid Cable
TS・マネージド
Cloudflare Durable Objects
TS・自前運用(AWS・オンプレ)
Node.js(WebSocket)+Valkey Pub/Sub
同時接続が非常に多い・プレゼンスが必要
Elixir(Phoenix Channels+Presence)
同時接続が多い(Elixirを採用しない場合)
Go(WebSocket)+Valkey Pub/Sub
共同編集
Yjs(マネージドならLiveblocks)
片方向で足りる
Server-Sent Events
WebSocketWebSocket

クライアント

Phoenix Channels
+Presence

クライアント

Phoenix PubSub
ノード間配信

PostgreSQL

自分で書く自分で運用するマネージド

19-10. インフラツール・CLI

言語
Go(Cobra、slog)
配布
GoReleaser(GitHub Releases、Homebrew tap)
性能が厳しい箇所
Rust(clap、Tokio)

Go ソース

GoReleaser

GitHub Releases

Homebrew tap

コンテナイメージ

自分で書く自分で運用するマネージド

19-11. 個人開発・MVP

TS全部入り
Next.js+Supabase+Vercel
エッジ
Hono+Cloudflare Workers+D1/R2
Railsワンマン
Rails+SQLite+Kamal+VPS
Go単体
Go+PostgreSQL+htmx

PaaSは必ず支出上限を設定する。

19-12. 高トラフィック(セール・チケット販売)

入場制御
Cloudflare Waiting Room
読み取り
静的生成+CDNキャッシュ
在庫・注文
SQSで直列化、在庫は行ロックまたは条件付きUPDATE
DB
RDS Proxy+リードレプリカ
事前検証
k6で本番相当の負荷試験
カート・決済のみ

大量アクセス

Cloudflare Waiting Room

CDN キャッシュ
静的ページ

アプリ

SQS
注文を直列化

ワーカー

RDS Proxy

PostgreSQL

リードレプリカ

自分で書く自分で運用するマネージド

動的処理は「カート投入」と「決済」に絞り、それ以外はキャッシュから返す。

19-13. データ基盤・バッチ

集計
SQL(DuckDB、規模が大きければBigQuery)
変換
Python+Polars(uv、Ruff)
ワークフロー
Temporal
実行
RenderのCron Job(AWSならECSのスケジュールタスク)
監視
Sentry(Cron Monitoringで実行漏れを検知)

業務DB・外部API

Temporal
ワークフロー

Python+Polars
変換

DuckDB/BigQuery

SQLで集計

自分で書く自分で運用するマネージド

再実行・中断再開が必要な大規模バッチやストリーム処理は、変換をKotlin(Spring Batch/Kafka Streams)にする(§2-10 手順2)。

19-14. モバイルアプリ単体

アプリ
React Native+Expo(Expo Router、NativeWind)
DB・認証・ストレージ
Supabase
プッシュ通知
FCM(Expo Notifications経由)
配信
EAS Build/Submit/Update
分析
PostHog
監視
Sentry

Webの画面が必要になったら §19-7 に移る。Supabaseから離れるときは §24 に従う。