Product Specification

Sociofy 仕様書

Sociofyは、1つのプロダクトに対して複数の編集切り口と言語別アカウントを運用し、 静止画スライドショーの生成、承認、スケジューリング、TikTok・Instagram・YouTube Shortsへの投稿を自動化するプラットフォームである。 初期版は内部運用ツールとして構築し、将来的に外部公開できるSaaS構成を前提にする。

最終更新: 2026-05-26 SmartScout初期運用: 4切り口 x 4 active locale x 1日1投稿 通常投稿ジョブ: 48件/日 最大投稿ジョブ: 64件/日

1. 決定事項

  • 提供形態
    最初は内部ツール。将来的には外部顧客が自分のSNSアカウントを接続するマルチテナントSaaSへ拡張する。
  • 承認
    公開前に人間の承認を必須にする。完全自動投稿はMVP対象外。
  • コンテンツ形式
    静止画スライドショーが中心。AI生成の動画そのものは扱わず、静止画から決定的にMP4を生成する。
  • Instagram
    CarouselとReelsの両方をサポートするが、投稿ごとに承認者が有効化する形式を選ぶ。
  • TikTok
    MVPではPhoto Modeのみ。動画フォールバックは将来検討に回す。
  • YouTube
    Shorts専用APIではなく通常の動画アップロードAPIで縦型MP4を投稿する。
  • 言語
    ユーザー選択式。MVPでは英語、スペイン語、韓国語、中国語に最低対応する。
  • 画像生成
    OpenAI GPT Image 2、モデルID gpt-image-2 を主画像生成モデルにする。
  • スライド構成
    初期はAI生成画像4枚 + 固定CTA画像1枚の5枚構成。CTA画像は日次生成せず、将来の可変化に備えて設定化する。

2. プロダクト設計

アカウント戦略

1つのプロダクトに対して、教育、ユースケース、データ/インサイト、Founder発信、特定ペルソナ向けなど、 複数の編集切り口を持つアカウントを運用する。

初期セットアップ時、オペレーターは人間が事前に考えた編集アカウントコンセプトを手動登録する。 Sociofyは切り口の入力、編集、複製、有効化、言語別フィード作成を支援するが、切り口自体のAI提案やレコメンドは行わない。

言語戦略

言語ごとに別アカウントで運用する。言語とロケールは分離して保存し、 es-ESes-419zh-Hanszh-Hant のような差分を扱えるようにする。

MVPの最低対応言語は eneskozh。 SmartScout初期は中国語デフォルトを繁体字 zh-Hant にし、簡体字 zh-Hans は追加候補として残す。

コンテンツパッケージ

Sociofyは論理フィードごとに、1日1つの承認済みコンテンツパッケージを生成する。

要素 内容
企画 トピック、目的、対象切り口、対象言語
スライド 構成、見出し、本文、ビジュアル指示、代替テキスト。MVPではAI生成画像4枚 + 固定CTA画像1枚。
投稿文 Instagram、TikTok、YouTube向けキャプション、タイトル、説明文、ハッシュタグ
レンディション TikTok Photo、Instagram Carousel、Instagram Reels MP4、YouTube Shorts MP4
開示 AI生成、ブランド投稿、広告/提携のラベル情報

3. MVPスコープ

対象

  • 内部管理者ログイン
  • プロダクトプロフィール管理
  • 手動入力された編集切り口と言語別アカウント管理
  • 言語別アカウント管理
  • AIによる企画、コピー、キャプション、ローカライズ生成
  • 静止画スライド生成とMP4スライドショー生成
  • 人間の承認フロー
  • 予約投稿、ステータス追跡、リトライ
  • API制限、監査ログ、公開準備チェック
  • ジョブ状態、失敗理由、再実行回数、生成コスト概算の記録
  • API/workerの最低限のCloudWatch Logs

MVP対象外

  • レビューなしの完全自動投稿
  • AI生成モーション動画
  • 高度な分析最適化
  • コメント/返信自動化
  • 広告運用
  • 課金
  • 外部向けセルフサーブオンボーディング
  • 細かいチーム権限管理
  • 本格モニタリング。CloudWatch dashboard、CloudWatch alarms、X-Ray、OpenTelemetry、PagerDuty/オンコール連携、SLO/SLA管理
  • AI/ChatGPTによる編集切り口の自動提案、レコメンド、ランキング

4. 推奨技術スタック

内部MVPではTypeScript-firstの業務アプリケーションを推奨する。 機能的に独立Repositoryへ切り分けるほどの境界はまだないため、初期は単一モノレポで進める。 ドメイン設計はモジュラーモノリス寄りに保ちつつ、apps/*packages/* で実行単位と共有コードを分離する。

社内でAWSを既に利用している前提のため、実行基盤、キュー、ストレージ、ログ、シークレット管理はAWS managed servicesを第一候補にする。 例外はOpenAIによるAI生成、各SNSの公式API、既存開発ワークフローに密接なツールに限定する。

領域 推奨
リポジトリ 単一モノレポ。apps/webapps/apiapps/workerpackages/sharedpackages/uipackages/configを基本構成にする。
パッケージマネージャ pnpm workspace
Build orchestration Turborepo。buildlinttesttypecheckdb:migratedeployの依存関係とキャッシュを管理する。
フロントエンド React SPA、TypeScript、MUI v7、Emotion。SSRはMVPでは採用しない。
フロントエンドホスティング AWS S3 + CloudFront。S3 bucketはprivateにし、CloudFront Origin Access Controlを使って直接S3アクセスを防ぐ。
バックエンド 既存バックエンド標準に合わせたTypeScript API。NestJSを使う場合も、workspace分割、lint/test/release手順はモノレポのTurborepo pipelineに合わせる。REST/JSONとOpenAPI schema generationを提供する。
API実行基盤 Amazon ECS on AWS Fargate、Amazon ECR、Application Load Balancer。外部SaaS化時にAPI Gateway + WAFを追加検討する。
データベース Amazon Aurora PostgreSQL Serverless v2を第一候補。既存DB運用や固定負荷/コスト予測性を優先する場合は、現行と同じ非ServerlessのRDS/Aurora PostgreSQL構成を選択できる。
ORM/migration TypeORM。バックエンド側のリリース手順、migration実行、rollback手順と統一するためPrismaは採用しない。
キュー/ジョブ Amazon SQS standard queues + dead-letter queues。厳密な順序制御が必要なジョブのみFIFO queueを使う。
スケジューリング Amazon EventBridge Schedulerで投稿予定時刻にpublish jobを投入する。
オーケストレーション AWS Step FunctionsはMVP標準にしない。ContentPackagePlatformRenditionPublishJobJobAttemptのDB状態を正とし、SQS workerが次のjobを作る薄い自前オーケストレーターを実装する。
ストレージ/CDN AWS S3 private bucket、CloudFront、カスタム検証済みメディアドメイン
レンダリング ECS Fargate worker、Node、SVG/テンプレート合成、Sharp、FFmpeg
キャッシュ/レート制御 Amazon ElastiCache for Valkeyは任意。MVPではSQSをジョブキューにし、ElastiCacheは高頻度参照キャッシュや分散rate-limitが必要になった時だけ導入する。
AI OpenAI Responses API、OpenAI Image API gpt-image-2
認証 Amazon Cognito User Poolsを第一候補。社内利用では既存IdPやIAM Identity CenterとのSAML/OIDC連携を使い、外部SaaS化時もtenant/user管理へ拡張する。SNS OAuth tokenはCognitoとは分けて管理する。
シークレット管理 AWS Secrets Manager + AWS KMS。SNS token、OpenAI API key、DB credentialを集中管理する。
ログ/運用可視性 MVPではAmazon CloudWatch Logs、DB上のジョブ状態、JobAttempt、監査ログ、生成コスト概算を必須にする。CloudWatch Metrics/Alarms、dashboards、AWS X-Ray、AWS Distro for OpenTelemetry、外部通知連携はMVP後の運用強化で導入する。
インフラ AWS CDK TypeScript。S3、CloudFront、ACM、WAF、Aurora/RDS、ECS/Fargate、ECR、SQS、EventBridge Scheduler、Cognito、Secrets Manager、KMS、CloudWatch LogsをMVP範囲で管理する。CloudWatch Metrics/AlarmsやdashboardはMVP後に追加する。
CI/CD モノレポのTurborepo pipelineを前提にする。変更差分に応じて対象workspaceのbuild/test/deployだけを実行し、フロントエンドはS3 deploy + CloudFront invalidation、バックエンド/ワーカーはcontainer build + ECS deployを標準にする。
テスト VitestまたはJest、Playwright、Testcontainers、必要に応じてLocalStack

技術スタック対応表

領域 標準案
Repository 単一モノレポ、apps/* + packages/*
Package manager pnpm workspace
Build orchestration Turborepo
Web frontend React SPA、TypeScript、MUI v7、Emotion
Web hosting S3 private bucket + CloudFront + OAC
API/worker runtime ECS Fargate、ECR、ALB
Database Aurora PostgreSQL Serverless v2、または既存方針に合わせたRDS/Aurora PostgreSQL
ORM/migration TypeORM
Queue SQS standard/FIFO、dead-letter queue
Schedule EventBridge Scheduler
Orchestration DB-backed thin orchestrator、SQS workers、Step FunctionsはMVP対象外
Media storage S3 private buckets
Public media delivery CloudFront、ACM、WAF
User auth Cognito User Pools、必要に応じてIAM Identity Center/既存IdP
Secrets Secrets Manager、KMS
Operational visibility MVP: CloudWatch Logs、DB job status、JobAttempt、audit log、cost tracking。MVP後: CloudWatch Metrics/Alarms、dashboard、X-Ray/OpenTelemetry
Infrastructure AWS CDK TypeScript、既存CIまたはCodePipeline/CodeBuild

5. コアワークフロー

1プロダクトプロフィール
2切り口手動登録
3AIドラフト生成
4ローカライズ
5画像/動画レンダリング
6人間レビュー
7予約
8投稿ジョブ
9ステータス取得
10公開/失敗
承認はコンテンツパッケージ単位で必須。各プラットフォーム向けレンディションは予約前に個別に無効化できる。

6. 生成・レビュー要件

プロダクト設定で必要な情報

  • プロダクト名、URL、カテゴリ、短い説明
  • 価値提案、機能一覧、ターゲットユーザー
  • 証明可能な主張、禁止主張
  • 競合、ポジショニング
  • ブランドトーン、ビジュアルスタイル
  • CTAライブラリ
  • 対応言語とロケール
  • 規制や広告ポリシー上の注意点

編集切り口の手動設定

Sociofyは編集切り口の自動提案機能をMVPに含めない。 初期の切り口は人間が手動で考え、オペレーターが管理画面から登録する。 SmartScout初期は既存運用にある4つの切り口を取り込む。

  • EditorialAngleのCRUD、複製、並び替え、有効/無効切り替えを提供する。
  • CSVまたは簡易フォームでの一括登録を許容する。
  • 各切り口は、作成後に言語別LogicalFeedへ展開される。
  • 切り口の良し悪しの評価、候補生成、ランキングはMVP対象外にする。

コンテンツ生成の出力

{
  "topic": "string",
  "objective": "awareness | education | activation | retention",
  "angle_id": "string",
  "language": "string",
  "slides": [
    {
      "index": 1,
      "role": "hook | body | proof | cta",
      "headline": "string",
      "body": "string",
      "visual_prompt": "string",
      "alt_text": "string"
    }
  ],
  "captions": {
    "instagram": "string",
    "tiktok_title": "string",
    "tiktok_description": "string",
    "youtube_title": "string",
    "youtube_description": "string"
  },
  "hashtags": ["string"],
  "disclosures": {
    "synthetic_media": true,
    "own_brand_promotion": true,
    "paid_partnership": false
  }
}

レビューUIで表示するもの

  • プロダクト、切り口、言語、対象アカウント
  • 全スライドの順序付きプレビュー
  • プラットフォーム別プレビューとキャプション
  • AI生成、ブランド投稿、提携などのラベル
  • 予約時刻、API準備警告、投稿上限警告
  • InstagramではCarousel、Reels、両方のいずれかを選択

7. レンダリング要件

画像サイズ

  • vertical_9_16: 1080x1920
  • portrait_4_5: 1080x1350
  • square_1_1: 1080x1080

MP4仕様

  • MP4、H.264
  • 1080x1920、30 FPS
  • 1枚2.5から3.0秒
  • 合計15から45秒
  • 無音AACトラックを標準

スライド数

  • MVP標準: 5枚
  • 1-4枚目: GPT Image 2で生成
  • 5枚目: 固定CTA画像
  • Instagram Carousel: 将来は最大10枚まで対応
  • TikTok Photo Mode: API上限35枚、将来も10から12枚を上限目安
GPT Image 2で生成するのは1コンテンツパッケージあたり4枚。固定CTA画像は日次生成対象外で、承認済みアセットを再利用する。 生成したオリジナル画像はS3に保存し、そこからプラットフォーム別の派生画像を生成する。 最終コピーは構造化データとして編集可能に残し、厳密な文字表現が必要な場合はテンプレート合成で文字を配置する。

8. SNS API共通仕様

プラットフォームAPIは変更が多いため、本番公開前および外部SaaS化前に公式ドキュメントを再確認する。 各SNS連携は共通インターフェースを持つアダプターとして実装し、UIから直接呼び出さず、必ずキュー経由で実行する。

interface SocialPublisher {
  validate(job: PublishJob): Promise<ValidationResult>;
  publish(job: PublishJob): Promise<PublishInitResult>;
  pollStatus(job: PublishJob): Promise<PublishStatus>;
  cancel?(job: PublishJob): Promise<void>;
}

共通要件

  • idempotency keyを使い、ワーカー再実行で重複投稿しない。
  • リクエストID、プラットフォームID、エラーコード、HTTPステータスを保存する。
  • アカウント別、アプリ別のレート制限を適用する。
  • トークンと署名付きURLをログに出さない。

公開メディアURL

  • 生成物の原本と非公開派生物はAWS S3に保存する。
  • 投稿時にSNSが取得するURLはCloudFrontのカスタムメディアドメインで配信する。
  • 本番では生のS3 URLを使わない。
  • TikTok Pull From URLではリダイレクトなし、所有確認済みURL prefixが必要。
  • 最低48時間は取得可能にする。

9. TikTok API仕様

MVP方針 TikTokはPhoto Mode Direct Postのみを使う。

項目 仕様
必要な製品/権限 TikTok Developer app、Content Posting API、Direct Post用の video.publish
主要エンドポイント /v2/post/publish/creator_info/query//v2/post/publish/content/init//v2/post/publish/status/fetch//v2/oauth/token/
Photo投稿 media_type=PHOTOpost_mode=DIRECT_POSTPULL_FROM_URL
画像制約 WebP/JPEG、最大20MB/枚、API上限35枚。Sociofyでは10から12枚を推奨。
テキスト制約 タイトル最大90 UTF-16 runes、説明文最大4000 UTF-16 runes。
レート制限 content/init はユーザーアクセストークンごとに6 requests/min。
トークン アクセストークン24時間、リフレッシュトークン365日。
審査 公開Direct PostにはTikTokの監査承認が必要。
自社プロダクトのプロモーションでは brand_organic_toggle、提携/広告では brand_content_toggle を現在のポリシーに従って設定する。 Photo Modeに明示的なAIGCフィールドがない場合は、説明文にAI生成であることを明示する。

10. Instagram API仕様

MVP方針 CarouselとReelsを両方生成可能にし、投稿ごとに承認者が選ぶ。

項目 仕様
前提 Instagram Professional account、Meta platform setup。
権限 instagram_basicinstagram_content_publishpages_read_engagement。Business Manager経由では ads_management または ads_read が必要になる場合がある。
主要エンドポイント /{ig-user-id}/media/{ig-user-id}/media_publish/{ig-container-id}?fields=status_code/{ig-user-id}/content_publishing_limit
共通制約 メディアは公開サーバーに配置。コンテナは24時間で期限切れ。24時間ローリングで400コンテナ作成可能。
キャプション 最大2200文字、ハッシュタグ30個、メンション20個。
投稿上限 Metaドキュメントに50件/日と100件/日の差があるため、Sociofyでは安全側の50 posts/account/24hを採用し、投稿前に content_publishing_limit を確認する。

Carousel

  • 子コンテナを先に作成し、親は media_type=CAROUSELchildren を使う。
  • ReelsはCarouselの子にできない。
  • MVPでは最大10枚。
  • JPEG、最大8MB、sRGB。
  • アスペクト比は4:5から1.91:1。

Reels

  • media_type=REELS
  • video_url またはresumable upload。
  • Sociofy推奨: 1080x1920 MP4、H.264、30 FPS。
  • Meta仕様: MOV/MP4、H.264/HEVC、23から60 FPS。
  • 3秒以上15分以下、最大300MB。

11. YouTube Shorts API仕様

YouTube Shorts専用の投稿APIは使わず、通常のYouTube Data API videos.insert で縦型MP4をアップロードする。

項目 仕様
OAuth scope https://www.googleapis.com/auth/youtube.upload
エンドポイント POST https://www.googleapis.com/upload/youtube/v3/videos、API method videos.insert
Shorts条件 縦型または正方形、3分以内。Sociofyは1080x1920 MP4を生成する。
quota videos.insert は100 units。SmartScout初期16 uploads/dayなら約1,600 units/day。
公開制約 2020-07-28以降に作成された未検証APIプロジェクトはアップロード動画がprivateになる。公開運用にはYouTube API Services auditが必要。
メタデータ snippet.titlesnippet.descriptionsnippet.tagssnippet.defaultLanguagestatus.privacyStatusstatus.selfDeclaredMadeForKidsstatus.containsSyntheticMedia
運用上は説明文に #Shorts を入れる。ただし現在の分類は主に長さとアスペクト比に依存する。

12. データモデル

中心となる関係は、ProductからEditorialAngle、LogicalFeed、ContentPackage、PlatformRendition、PublishJobへ流れる。

エンティティ 役割 主なフィールド
Product プロダクトのブランド、制約、対応言語を保持 nameurlbrand_voiceallowed_claimssupported_languages
EditorialAngle 人間が手動登録した運用切り口 nametopic_pillarstone_modifiersposting_cadence
LogicalFeed 切り口と言語を組み合わせた投稿単位 languagelocaletimezonedaily_post_target
SocialAccount 各SNSの接続アカウント platformhandlestatuscapabilitiesrate_limit_config
ContentPackage 1投稿企画の単位 topicobjectivestatusscheduled_atapproved_by
Slide スライドごとの構造化コピーと画像指示 roleheadlinebodyvisual_promptassets
PlatformRendition プラットフォーム別の投稿物 platformformatcaptionhashtagsenabled
PublishJob 実際の投稿ジョブ scheduled_atidempotency_keyplatform_publish_idattempt_countstatus

13. 内部API・バックグラウンドジョブ

内部API

POST /api/products/{id}/editorial-angles
PATCH /api/editorial-angles/{id}
POST /api/editorial-angles/{id}/duplicate
POST /api/content-packages/{id}/submit-for-review
POST /api/content-packages/{id}/approve
POST /api/content-packages/{id}/request-changes
POST /api/content-packages/{id}/schedule
POST /api/publish-jobs/{id}/retry
GET  /api/social-accounts/{id}/readiness

ジョブ

  • GenerateTopicJob
  • GenerateContentPackageJob
  • LocalizeContentJob
  • RenderSlideImagesJob
  • RenderSlideshowVideoJob
  • ValidatePlatformRenditionJob
  • PublishJobPollPublishStatusJob
  • RefreshTokenJobSyncRateLimitJob
  • PruneExpiredAssetsJobNotifyFailureJob
ジョブはすべて冪等にする。特に投稿ジョブは、ワーカー停止や再試行で重複投稿しないように、プラットフォーム側IDと状態を必ず保存する。

14. 運用・安全性

予約前チェック

  • 必要なスライド画像とレンディションが存在する
  • キャプションが制限内に収まる
  • 開示フィールドが設定済み
  • OpenAI画像生成と組織認証が利用可能
  • SNSアカウント接続とトークン有効性が確認済み
  • 公開メディアURLが取得可能
  • TikTok URL/domainが検証済み
  • Instagram accountがProfessionalで投稿可能
  • YouTube quotaが残っている

セキュリティ

  • 管理者認証必須
  • プラットフォームトークンは保存時暗号化
  • secret、token、署名付きURLをログに残さない
  • S3 bucketは原則private
  • 投稿操作と承認者IDを監査ログに保存
  • 外部SaaS化時はテナント分離、権限、データ削除/エクスポートを追加

エラー処理

分類 対応
リトライ可能 ネットワークタイムアウト、5xx、upload chunk失敗、status polling pending、一時的rate limit jitter付き指数バックオフで再試行
最終失敗 権限不足、トークン更新失敗、TikTok URL未検証、Instagram container期限切れ、YouTube quota超過、OpenAI moderation失敗 自動再試行せず、人間に通知して修正待ち

コンプライアンスと開示

  • 生成スライドショーは内部メタデータ上AI-assistedとして扱う。
  • YouTubeでは該当時に status.containsSyntheticMedia=true を設定する。
  • TikTokのブランド投稿/提携投稿は現行ポリシーに従ってtoggleを設定する。
  • プラットフォーム側に明示フィールドがない場合、キャプションに開示文を入れる。
  • 規制や広告ポリシー上危険な主張はProductの禁止主張に登録する。

15. 容量見積もり

項目 見積もり
初期フィード数 SmartScout初期4編集切り口 x 4 active locale = 16 logical feeds
コンテンツ数 1 content package/feed/day = 16 packages/day
通常投稿ジョブ TikTok 16 + Instagram 16 + YouTube 16 = 48 jobs/day
最大投稿ジョブ 全投稿でInstagram CarouselとReelsを両方有効化した場合、64 jobs/day
YouTube quota 16 uploads/day x 100 units = 約1,600 units/day。デフォルト10,000 units/day未満。
OpenAI画像生成 4 generated images/package x 16 packages/day = 64 generated images/day。固定CTA画像は日次生成対象外。再生成分は別途加算。

1日あたりの画像生成費用

OpenAI API pricingを2026-05-25時点で確認した計画値。SmartScout初期ではGPT Image 2で64枚/日を生成し、固定CTA画像は既存アセットとして再利用する。 実請求は品質、サイズ、prompt tokens、再生成回数、価格改定で変わる。

quality 参考単価/枚 64枚/日の画像出力費用
low $0.005 $0.32/day
medium $0.041 $2.62/day
high $0.165 $10.56/day
MVP計画値はmedium qualityの画像出力 $2.62/day + text input概算 $0.32/day = 約 $2.94/day。 Text inputは平均1,000 tokens/image、GPT Image 2のtext input単価 $5.00 / 1M tokensとして仮置きする。 簡体字 zh-Hans をactive化した場合は20 feeds、80 generated images/day、通常60 jobs/day、最大80 jobs/dayになる。
主なボトルネックは通常のrate limit量ではなく、各プラットフォームの審査、監査、権限、トークン、アカウント準備状態である。

16. ロードマップ

Phase 0: 仕様とプロトタイプ

  • 仕様確定
  • ローカルスキーマ試作
  • 手動EditorialAngle登録とLogicalFeed展開の試作
  • GPT Image 2のスライド生成検証
  • 画像/MP4レンダリング検証
  • S3/CloudFront URL取得検証
  • 各SNSを内部アカウントで手動テスト

Phase 1: 内部MVP

  • Product/Angle/Feed設定
  • 生成、ローカライズ、レビュー、承認UI
  • GPT Image 2画像生成
  • MP4スライドショー生成
  • Instagram、TikTok、YouTubeアダプター
  • 予約投稿とジョブダッシュボード

Phase 2: 運用強化

  • トークン更新自動化
  • 準備状況ダッシュボード
  • 失敗時の修復フロー
  • コンテンツカレンダー
  • 基本分析取り込み
  • prompt/template versioning
  • 一括承認

Phase 3: 外部SaaS準備

  • テナントモデル
  • セルフサーブOAuth
  • 課金
  • 権限システム
  • 顧客向けオンボーディング
  • App Review/Audit資料
  • ポリシーとabuse controls

17. 確定済み論点

  • 言語はユーザー選択式。MVP最低対応は英語、スペイン語、韓国語、中国語。
  • SmartScout初期の中国語運用は繁体字 zh-Hant をデフォルトにし、簡体字 zh-Hans はcandidateとして残す。
  • 言語数は固定上限にしない。AI翻訳は拡張しやすいが、active化は投稿先アカウント、承認、品質確認、分析の準備状態で管理する。
  • SmartScout初期の4つの編集切り口は既存運用から取り込み、人間が手動で定義・確認したものをSociofyへ登録する。AI/ChatGPTによる切り口提案、レコメンド、ランキングはMVP対象外にする。
  • 公開メディアはAWS S3に保存し、CloudFrontのカスタムドメインで配信する。
  • 技術スタックはAWS優先構成。単一モノレポ、pnpm workspace、Turborepo、共有パッケージ、React SPA + MUI v7 + Emotion、S3 + CloudFront、TypeScript API、ECS Fargate、Aurora PostgreSQL Serverless v2または既存方針に合わせたRDS/Aurora PostgreSQL、TypeORM、SQS、EventBridge Scheduler、DB-backed thin orchestrator、Cognito、Secrets Manager、CloudWatch Logs、AWS CDK。本格モニタリングはMVP後に追加する。
  • InstagramはCarousel/Reelsを投稿ごとに選ぶ。通常は1形式だけを推奨。
  • TikTokはMVPではPhoto Modeのみ。
  • 画像生成はOpenAI GPT Image 2 gpt-image-2。MVPでは1 packageあたり4枚を生成し、固定CTA画像1枚を再利用する。

18. 参照資料

公式資料は2026-05-26に確認。