Frontend:Nuxt(Vue) + hls.js
役割:視聴・配信者・管理画面のWeb構築と動画プレイヤー
- 読込が速くSSR/SEO良好・脱React(非Meta)でBig Tech非依存
- hls.jsは完全OSS。回線が弱い視聴者は自動で画質を下げる(ABR)
- PWA+Tailwindで開発時間を約40%短縮・デザイン一貫性
Backend:NestJS + PostgreSQL + Redis
役割:ログイン・アップロード・決済・チャット等の全API処理=司令塔
- NestJSはモジュール構造+TypeScriptでバグ削減・WebSocket強い
- PostgreSQLはOSS・30年の安定実績・JSON+全文検索・数百万件までスケール
- Redisは読書き<1ms。ライブチャット(Pub/Sub)とキャッシュの業界標準
ジョブ処理:BullMQ + Prisma(ORM)
役割:重い処理を裏で実行/DBアクセスの型安全な橋渡し
- 1GB動画アップロードも即レスポンス→変換は裏で実行(待たせない)
- Prismaは型安全・スキーマ自動生成でバグ削減
- AI開発(Claude Code)との親和性が高く開発を高速化
配信:SRS cluster + FFmpeg + NVENC(GPU)
役割:RTMP受信→HLS/LL-HLS変換・複数画質化=配信の心臓部
- SRSは主要プロトコル全対応・クラスタで1万+視聴へスケール
- FFmpegは業界標準OSS・worker poolで同時アップロードに対応
- NVENC(GPU)はCPU比5〜10倍。1080p60×1,000を非Big Techで実現する鍵
Storage / CDN:MinIO + Bunny
役割:動画・アーカイブ保管(S3互換)と高速エッジ配信
- MinIOは100% OSS・自社ホストでデータ主権100%・HDD追加で拡張
- BunnyはCloudFront比 約70%安価・日本にエッジ→JP視聴者に低遅延
- S3互換のため将来の移行が容易(ロックインなし)
Infra / 監視:Hetzner等 + OSS監視
役割:物理サーバ実行環境と24/7監視・運用
- bare metalはAWS/GCP比 約1/3価格・VMより高性能(配信用途で重要)
- Prometheus/Grafana/LokiはOSSデファクト・障害時にメール/Slackアラート
- GitLab CI+Terraformで3環境・DR再現 ※海外DCはデータ所在を要確認