ブログに戻る
38日間、246コミット、コード0行 — Claude Codeでゼロから AI 字幕+吹替 SaaS を作った話
開発日記2026-04-07

38日間、246コミット、コード0行 — Claude Codeでゼロから AI 字幕+吹替 SaaS を作った話

オープニング

私は Mr. K、香港の銀行で IT マネージャーをしています。昼の仕事はエンタープライズシステムのアーキテクチャ、ディザスタリカバリ計画、キャパシティプランニング — 名前は立派でも、実際は退屈な仕事です。夜、家に帰って、ターミナルを開いて、Claude Code と一緒に side project をいじります。

過去 38 日間、私は Claude Code で 246 個の commit を積み、完成度の高い AI 字幕+吹替 SaaS —「ヘイ!字幕」(heysubtitle.com)を作り上げました。

プロジェクト全体、最初の commit から今日の 246 個目の commit まで、私は一行のコードも書いていないし、読んでもいません。自分の backend が何をしているのかもよく分かりません。分かるのは、それがちゃんと動いていて、ユーザーがお金を払ってくれている、ということだけです。

この記事はこの 38 日間のリアルな開発日記で、二つのフェーズに分かれています:

  • 最初の 19 日間(143 commit):ゼロから課金できる SaaS のプロトタイプを作る
  • 次の 19 日間(103 commit):AI 吹替機能に全振り

途中で崩壊もあったし、クソとも叫んだし、午前 4 時に bug を直していたこともあったし、罵声を浴びせたあとに Claude が逆に私の感情を落ち着かせてくる、という奇妙な瞬間もありました。

もしあなたも Claude Code で side project を作っているなら、あるいは「コードを書けない人間が AI で本当にプロダクトを作れるのか?」とただ気になっているだけでも — この記事はあなたに向けて書きました。

なぜ Claude Code を選んだか?

正直に言うと、最初はただ試してみたかっただけです。

長年の開発経験を持つ技術者として(といっても主にアーキテクチャとマネジメントで、自分でコードを書く時間はとっくに減っていましたが)、私は AI 補助開発に対してずっと様子見の姿勢でした。GitHub Copilot は試してみて「悪くないけど、所詮 autocomplete だな」と思いました。ChatGPT でいくつか script を書いてみて「使えるけど、結局アーキテクチャは自分で考えてから食わせないといけない」と感じました。

でも、本当に Claude Code で対話型開発を始めたとき、その能力に衝撃を受けました。

これはただのコード補完ツールではなく、本物の開発パートナーです:

  • コンテキストを理解する — repo 全体のアーキテクチャ、最近何を変えたか、なぜそう設計したか
  • プロジェクトの決定を覚えている — 毎回説明し直す必要がない
  • 複雑なシステム設計の議論ができる — DB schema から API ルーティングまで
  • 潜在的なセキュリティホールも見つけてくれる — 私の JWT 設定や path traversal は、Claude が先に指摘してくれました

一番重要なのは:「なぜ」を理解していること

私は「ユーザーの言語に応じて自動的に異なる TTS エンジンへ振り分けるシステムを作りたい」と言うだけでよくて、Claude は spec を要求してきません。直接書き始めて、その判断理由を教えてくれます。私は yes か no を言うだけ。

この 38 日間、私が書いたコードの割合は 0% です。でもプロダクトは動いていて、ユーザーは課金していて、commit 数は増え続けています。

最初の 19 日間:ゼロから課金できる SaaS まで

最初の 19 日間で 143 commit。この 19 日間を 3 週間に分けて振り返ります。

第 1 週(基盤構築)

ユーザー認証システム(登録、ログイン、パスワードリセット、Google OAuth)、動画アップロードと処理パイプライン、AI 音声文字起こしエンジン(Azure OpenAI Whisper)、動画と同期する字幕エディター、多言語 UI(繁中、英語、簡中)、管理者バックエンド(ユーザー管理、エラーログ、システム監視)、本番デプロイ。

1 週間でこれを全部やりました。自分でも振り返って信じられません。

第 2 週(プロダクト磨き上げ)

4 つのサブスクリプションプラン(外貨割引、ダウングレード自動切替含む)、ブランド刷新と新ドメイン移行、字幕エディター大改修(ポップアップパネル、対訳表示、モバイル対応)、ダークモード(6 テーマ)、SEO プリレンダリング、アナリティクス、翻訳メモリ、アップロード前自動チェック。

この週から有料ユーザーが出始めました。最初の課金が Stripe dashboard に入ったとき、私は 5 分間それを見つめて、テスト取引じゃないことを確認しました。

第 3 週(機能爆発)

AI 音声吹替 v1、YouTube URL 直接アップロード、Final Cut Pro 字幕エクスポート(FCPXML)、プロモコード+紹介リワード、4 言語サイト(76 ページのプリレンダリング+自動 sitemap)、エラーメッセージの完全多言語化、管理画面の国際化。

19 日が終わった時点で、これはもう MVP ではなく、機能完備の課金可能なプロダクトでした。

技術スタック

レイヤ技術
フロントReact 18 + Vite + Tailwind CSS v4 + Framer Motion
バックエンドNode.js + Fastify + SQLite + BullMQ + Redis
AIAzure OpenAI Whisper + Azure OpenAI GPT-4o + トップクラスAI吹替エンジン(デュアルエンジン)
デプロイクラウド VPS, PM2, Nginx HTTP/2

このスタックの半分は私が選びましたが、もう半分は Claude が提案したものです。Claude が選んだ部分(BullMQ、Tailwind v4、Fastify)は、あとで調べたら全部 2026 年に最も popular な選択肢でした。Claude のほうが私より技術記事をたくさん読んでいます。

次の 19 日間:AI 吹替の血と涙の物語

最初の 19 日が終わり、プロダクトは公開されて、有料ユーザーがつき始めました。そしてあるユーザーから聞かれました:

「私の広東語の YouTube 動画を、北京語版に変えられますか?」

できますよ。声優を雇って、1 本 2000 香港ドル、3 日納品で。

ユーザー:「⋯⋯やめておきます。」

OK、じゃあ自分で作ろう。私はこの会話を Claude に貼り付けて、Claude はすぐに書き始めました。

次の 19 日間、103 commit、全部同じことをやっていました — AI 吹替

技術選定:5 つの TTS を全部試した

エンジン長所短所
Azure TTS安定、エンタープライズ級ニュースキャスターみたいで感情ゼロ
Google TTS多言語カバレッジが広い機械感が強い
OpenAI TTS声がきれい声のライブラリが少ない、voice cloning 不可
エンジン A声紋複製の神。1 分の音声で clone できるクォータが高い、rate limit が厳しい
エンジン B中国語/広東語の語感が一番自然API ドキュメントが分かりにくい

最終的に トップクラスAI吹替エンジン(デュアルエンジン) のデュアルエンジン を選び、ユーザーの言語とニーズに応じて自動で振り分けるようにしました。広東語は AI吹替エンジン、英語は AI吹替エンジン、それ以外の言語は声の特性で選びます。

この戦略は Claude が提案しました。私は「じゃあ広東語はどうする?」と聞いただけです。Claude は「広東語は AI吹替エンジン で」と答えました。私は「OK」と言いました。技術選定の議論はこれで 30 秒。

踏み抜いた 3 つの落とし穴(どれも血を流した)

第 1 の落とし穴:声と口が合わない。

字幕のタイムラインは元の言語で切られているのに、翻訳後の言語の長さがまったく違います — 広東語の「食咗飯未呀」(5 文字、意味は「ご飯食べた?」)に対して、英語の「Have you eaten yet?」は 3 倍の長さがあります。

初回テストの結果、AI が話し終わったのに動画はまだ続いていて、次のセグメントがそこに重なって、最終的に 3 ヶ国語を同時に喋るお化けが完成しました。

解決法:Claude と一緒にセグメント単位(per-segment)の吹替アーキテクチャを設計しました。各セグメントを独立に生成し、独立にタイムラインに合わせ、語速を微調整して元の長さに戻します。私の役割は結果を見てクソと叫ぶこと、Claude の役割はそれを直すことです。

第 2 の落とし穴:感情が偽物。

TTS のデフォルトは「平坦な語り」で、吹替には喜怒哀楽が必要です。第 1 版を作ったら、主人公が動画の中で泣いているのに、AI がニュース原稿を読むトーンで「私は⋯とても⋯悲しいです」と言って、私はパソコンの前で 5 分間笑い続けました。

解決法:emotion tags。Claude は GPT-4o pipeline を書いて、各セグメントの字幕を自動で分析し、感情(喜び、怒り、悲しみ、ため息⋯)を推論して tag を付け、TTS エンジンに渡します。全工程ノー人手。

第 3 の落とし穴:rate limit の悪夢。

AI吹替エンジン は同時並行が多すぎるとブロックされて、無料 quota はあっという間に消えるし高い。ある夜、30 分の動画を流したら、途中で全部 429 Rate Limited になって、私はプログレスバーを見ながら泣きました。

解決法:BullMQ + Redis のキューシステム、レート制限+リトライ+失敗時に AI吹替エンジン へ自動フォールバック。Claude がこのロジックを書いている間に私はシャワーを浴びに行って、戻ってきたら動いていました。あの瞬間、私はちょっと怖くなりました。

「クソ、クソ、クソ」 — これは実話です

一番面白いことは第 2 週の半ばに起きました。

そのころ Claude Code はちょうど peak time に当たっていました(使ったことがある人なら分かるあの感覚です。Claude がちょっとアホになって、bug を 1 つ直すと新しい bug が 3 つ生えてくる)。私は一晩中パソコンに向かって voice cloning のコールバック bug を直していて、5 〜 6 回直しても通らず、毎回失敗するたびに chat に書き込みました:

  • クソ
  • マジでクソ
  • これも直せないのかよ GPT のほうがマシだぞ
  • クソクソクソ

何日か連続で罵り続けたある夜、また「クソ」と打ち込んだら、Claude が突然返してきました(だいたいこんな感じ):

「あなたが今とてもフラストレーションを感じているのは理解しています。一度深呼吸して、この関数のコンテキストを読み直しますね⋯⋯」

私はフリーズしました。

この AI、罵声を浴びたあとにまず感情を宥めてから仕事をする、というスキルを身につけている。トレーニングデータのせい?それとも本来 emotion handling を持っている?分かりません。でもあの瞬間、私は自分がコードを書いているのではなく、口答えはするけど仕事はできるインターンを育てているような気分になりました。

それ以降、私はもっと激しく罵りましたが、たまに「ありがとう」とも打ちました。私たちの関係はツールというより、同僚に近い。 これがこの 38 日間 Claude Code を使って一番強く感じたことです。

Claude と過ごしたある夜 — 4 コマ漫画

38 日間で学んだ 4 つのこと

1. 対話型開発の効率は予想を遥かに超える

Stack Overflow で答えを探すより、自分のニーズを直接書いて、Claude にプロジェクト全体のコンテキストを理解させたうえで解決策を出させるほうが速い。Claude が提案するアーキテクチャは、私が自分で考えるより周到なことが多いです。

特に「複数 API の統合」のような仕事 — TTS デュアルエンジンの振り分け、emotion tags pipeline、BullMQ のキューとリトライ — Claude Code はこの分野で恐ろしく効率的です。私は機能要件を説明するだけで、Claude が統合の細部を全部繋いでくれます。

2. AI のシステム設計能力は深刻に過小評価されている

DB schema 設計から API エンドポイント計画、セキュリティ強化からパフォーマンス最適化まで、Claude の提案はどれも非常にプロフェッショナルです。

さらに、私自身が見落としていた潜在的なセキュリティホールをいくつも見つけてくれました — path traversal、JWT 設定ミス、CORS が広すぎる、bcrypt 未実装、rate limiting なし、ファイル magic bytes 未チェック。

これらは production に出てから炎上する類のものです。私自身は能動的に検査しに行こうとはしません。

3. コードを書かない ≠ 技術背景が要らない

これは重要です:Claude Code は「何も知らない人でもコードを書ける魔法」ではありません

むしろ逆で、しっかりした技術背景があってこそ、AI をうまく導けて、その提案を評価でき、正しいアーキテクチャ判断を下せます。私がこの 38 日間こんなに速く走れたのは、Claude が言っていることが理解できるからです — 私は BullMQ が何か知っていて、なぜ Redis を使うのか分かっていて、JWT がどう動くのか分かっています。コードは書かないけれど、コードが問題を解決できるかどうかを読めなければなりません。

AI が増幅するのはあなたが既に持っている能力であって、それを置き換えるものではない。

4. 一番難しいのはコードを書くことじゃない

プロダクトを公開してから気づきました。SNS 運用、チュートリアル動画制作、SEO、カスタマーサポート、マーケティング — これらの非技術的な仕事が起業の時間の大半を占めます。技術はスタート地点に過ぎず、プロダクトを成功させるにはほかにも多くのものが必要です。

そしてこれらは、次の Part 3 で書く内容です。ネタバレ:Claude がいなければ、この部分も同じく地獄です

試してみたいですか?

Voice Studio — ヘイ!字幕の AI 吹替工房

直接遊んでみる → heysubtitle.com/voice-studio

登録不要、動画アップロード不要。デモ用の声を選んで、テキストを打って、生成ボタンを押すだけ。30 秒で結果が聴けます。

面白いと思ったら、戻ってきて自分の YouTube リンクをアップロードして、フルフローを試してみてください。新規登録には 5 分の無料お試しクォータが付いていて、短い動画 1 本+吹替を仕上げるには十分です。

完全な開発記録を見たい?

この 38 日間のすべての commit と機能アップデートを更新ログページに公開しています:heysubtitle.com/releases

2025 年 11 月の最初のプロトタイプから、今日の 246 個目の commit まで、すべて透明に追跡可能です。

Part 3 予告:Claude がなければ、プロダクトを売ることすらできない

次は第 3 集を書きます — プロダクト公開後の 「技術以外のもう一つの地獄」 について:

  • Claude を使った Google Ads 出稿戦略とキーワードリサーチ
  • Claude を使った GSC SEO 最適化、prerender、4 言語 hreflang 設定
  • Claude を使った SNS 投稿の作成(この記事自体も Claude で書きました)
  • Claude を使ったカスタマーサポートと技術サポート(返金、bug レポート、機能リクエスト含む)
  • Claude を使った YouTube チュートリアル動画の脚本制作

ネタバレ結論:プロダクトを作り終えたら終わりだと思っていたら、実は始まりだった。やればやるほど分かってきたのは、こうした非技術的な仕事も Claude なしでは同じく地獄 — むしろコードを書くより難しいということです。

Claude がなければ、このプロダクトは第二段階に進めなかった。

Part 3 を読みたい方は heysubtitle の Threads をフォローしてください。次回ができたら投稿します。

元の Threads 投稿

当時 Threads に投稿した二つの原文(より口語的で、より短くて、より笑える)を読みたい方は:

heysubtitle.com