2026-04-17 | 高木悠哉 → 子安さん
飲食店がスマホで料理画像をアップロードすると、AI がキャプション・ハッシュタグを自動生成し、 承認フロー or 即時で Instagram に投稿する SaaS。既に v2 が稼働中。 これを 100店舗まで安全に拡大するための v3 を、段階リリースで進めたい。
| 機能 | Stage 1 (10店舗) | Stage 2 (20+店舗) |
|---|---|---|
| 画像アップロード + AI キャプション生成(Claude) | MVP | 継続 |
| 即時投稿 / 予約投稿(日時指定) | MVP | 継続 |
| 承認フロー(店長承認後に投稿) | MVP | 継続 |
| 投稿履歴画面・店舗設定 GUI | MVP | 継続 |
| IG トークン自動更新・投稿メソッドモード | MVP | 継続 |
| LINE 通知 / 店舗設定 GUI 拡充 / フィードバック学習 | — | Phase 2 |
| 助っ人API連携(カプセル社) | — | Phase 3 |
技術スタック自体は Stage 1 / 2 で変えない。サービスの有効化・add-on 購入・冗長化レベルだけを段階的に上げる。
| コンポーネント | Stage 1(軽) | Stage 2(本格) |
|---|---|---|
| Supabase | Pro $25(Micro compute 込み) | Pro + Small $15 + PITR $100 add-on |
| Cloudflare Workers | Paid $5 | Paid $5 |
| Cloudflare R2 | 使用分(~$1) | 使用分(~$5) |
| Cloudflare WAF Rate Limiting | —(未導入) | $20/月(攻撃対策) |
| Cloudflare Turnstile | — | Free |
| Sentry | Developer Free(5k events/月) | Team $26/月 |
| Better Stack | Free(1 responder, 基本監視) | 2 responder $68/月(24/7 SMS) |
| Claude API | usage(10店舗で $5〜$10) | usage(100店舗で $30〜$50) |
| Staging/Dev | Free project で運用 | 有料 $15〜30 |
| 項目 | Stage 1(10店舗) | Stage 2(100店舗想定) |
|---|---|---|
| Supabase | $25 | $142($25 + Small $15 + PITR $100 + 使用超過分) |
| Cloudflare (Workers/R2/Pages) | $6 | $10 |
| Cloudflare WAF | $0 | $20 |
| Sentry | $0 (Developer Free) | $26 (Team) |
| Better Stack | $0 (Free) | $68 (2 responder / 24/7 SMS) |
| Claude API (usage) | $8 | $40 |
| Staging/Dev | $0 (Free) | $30 |
| 月額合計 | 約 $39(≒ ¥5,900) | 約 $336(≒ ¥50,400) |
Stage 1 の 10店舗運用では有料 add-on を極力使わず、Supabase Pro と Cloudflare Workers だけで立ち上げる。20店舗を超えて収益が見えてきた段階で PITR・WAF・24/7 on-call などの本格投資に切り替える。
| リスク | Stage 1 の割り切り | Stage 2 での対応 |
|---|---|---|
| DB 障害時のデータ復旧 | PITR なし。Supabase 日次バックアップのみ(RPO 24時間) | PITR $100 add-on で RPO 5分に |
| ログイン攻撃・DDoS | Cloudflare 標準の DDoS 保護のみ(WAF なし) | WAF Rate Limiting + Turnstile で多層防御 |
| 障害検知・アラート | Better Stack Free の基本監視のみ(SMS 無し) | 2 responder 24/7 SMS + Sentry 詳細 trace |
| 承認フロー | URL承認 + CSRF のみ(LINE 通知なし) | LINE 通知連携(Phase 2) |
| 24/7 体制 | 営業時間内対応のみ(夜間は best-effort) | 24/7 on-call + 手当支給 |
| データ residency の完全担保 | PII は Supabase Tokyo に閉じ込める設計は Stage 1 から | 顧客契約書に明記・監査ログで証跡 |
前提: Stage 1 は 10店舗まで。20店舗を超える前に Stage 2 投資を発動する。
| 比較項目 | Supabase + CF | 却下: Neon+Clerk+Trigger.dev | 却下: Cloudflare all-in (D1) |
|---|---|---|---|
| Tokyo region (PII 国内保管) | ✅ 対応 | ❌ いずれも非対応 | ✅ CF edge はあるが DB が別問題 |
| PITR(Stage 2 で必須) | ✅ 7日 add-on | ✅ 7日 | ❌ D1 は PITR 未提供 |
| Stage 1 の最小構成コスト | ◎ $39/月で立ち上げ可 | ✕ Neon CU課金でミニマムが重い | ◎ 最も安いが Stage 2 で詰む |
| 単一ベンダ集中度 | ◎ DB+Auth+Vault+Queue 統合 | △ 3ベンダ組合せ | ◎ CF 単一 |
| 学習コスト / 実績 | Postgres 標準、ドキュメント豊富 | Trigger.dev が新興 | Durable Objects 専門知識が必要 |
軽構成でも設計原則は Stage 2 と同じ。後で Stage 2 に移る時に手戻りが起きないように。
| 原則 | 実装で担保 |
|---|---|
| ① PII は絶対に国外に出さない | Class 1 データは Supabase Tokyo のみ(Stage 1 から適用) |
| ② 国外送信は redaction 済みデータのみ | Sentry / BetterStack / Claude には redaction 後のみ |
| ③ Instagram 投稿は絶対に二重実行しない | external_operations ledger + idempotency_key |
| ④ 予約投稿ジョブは race-free | Postgres FOR UPDATE SKIP LOCKED + lease CAS |
| ⑤ 監査ログは改竄検知可能 | hash chain + monotonic sequence |
| ⑥ 削除は GDPR 準拠の erasure flow | Meta token revoke → soft delete → 物理削除 |
| フェーズ | 期間 | Stage | 内容 |
|---|---|---|---|
| Phase 0: Prototype | Week 1-2 | S1 | リスク検証(publish idempotency / audit / migration) |
| Phase 1a: Core 実装 | Week 3-8(6週) | S1 | Auth / Publish / Approval / Upload / Audit / Migration tool |
| Phase 1b: Stage 1 ローンチ準備 | Week 9 | S1 | v2→v3 データ移行・軽監視・最終テスト |
| Stage 1 GW明け運用開始 🚀 | Week 10〜 | S1 | 10 店舗で実運用 |
| Phase 2: Stage 2 本格化 | 20店舗到達時に 2-3週 | S2 | PITR / WAF / Turnstile / 24/7 on-call / 運用ダッシュボード |
GW明け(5月中旬)ローンチ逆算で 今週中にキックオフ、Week 9 末(7月中旬)までに Stage 1 完成・運用開始。
Stage 1 / 2 で子安さんへの報酬・稼働体制も段階的にしたい。 Stage 1 は軽くスタートし、収益が立つ 20店舗到達時に正式に予算を組んで本格化する、という契約の仕方にさせていただきたいです。
| 項目 | Stage 1(10店舗) | Stage 2(20+店舗) |
|---|---|---|
| 実装範囲 | MVP(Phase 0-1) | ハードニング + Phase 2 機能 |
| 稼働期間 | 約 9週間(GW明け前まで) | 20店舗到達時に追加 2-3週 |
| on-call 体制 | 営業時間内ベストエフォート | 24/7 escalation + 手当 |
| 報酬形態(子安さん判断) | 軽め(固定 or 実費) | 本格(月額 retainer + on-call 手当) |
GW 明けローンチ逆算で、今週中にキックオフしたいです。48時間以内にざっくりでもお返事いただけると助かります。
判断に必要な情報は 1-9 章に集約済み。以下は実装時の参考。