毎朝4時にアプリ3本と
Webサイトを自動生成する
仕組みを作った
毎朝4時に自動でアプリ3本とWebサイトを生成する仕組みとは、Claude AIのクラウドエージェントが寝ている間にニッチ市場の調査・Webサイト生成・Flutterアプリ3本のコード生成・Firebase自動デプロイまでを完全自動で実行するパイプラインです。手作業ゼロで毎日3本のアプリコードが蓄積されます。
実際に今日動かしてみて「副業の確定申告ガイド」というWebサイトが seadice.win/tools/fukugyo-tax/ に自動生成された。ここではその仕組みを全部公開する。
なぜ作ったか
作った理由は、アプリ1本ごとに繰り返す定型作業を全て自動化し、毎日3本量産して当たりを増やすためです。
アプリを1本リリースするたびに、毎回同じ作業をしていることに気づいた。ジャンルを考える、競合を調べる、Webページを作る、プライバシーポリシーを用意する、コードのベースを書く。これが全部手作業だった。具体的には次の5工程が毎回発生していた。
- ジャンルを考える
- 競合を調べる
- Webページを作る
- プライバシーポリシーを用意する
- コードのベースを書く
考えたのは、「毎日違うニッチジャンルのアプリを3本量産できれば、どれかは当たる」 という仮説だ。1本に全力をかけるより、毎日3本出し続けるほうが確率が上がる。ただし手作業では物理的に無理なので、自動化するしかない。
調べたら、Claude AIにはクラウド上でスケジュール実行できるエージェント機能があった。しかも今のサブスクリプションの範囲内で使える。これを使わない手はない。
パイプラインの全体像
パイプラインは毎朝4時にリサーチからデプロイまでの6ステップを順番に自動実行します。
毎朝4時(JST)にクラウドエージェントが起動して、以下を順番に実行する。
ニッチ市場のリサーチ
日本のApp Storeで競合が少なく需要がある分野を調査。すでに作ったツールと重複しないよう既存の p/tools/ フォルダを確認してから選定する。
ランディングページの生成
選んだジャンル向けのWebページを seadice.win/tools/{slug}/ に生成。3つのアプリカードを載せた完全SEO対応のHTMLを作成する。
プライバシーポリシーを3本分生成
App Store申請に必須のプライバシーポリシーページを各アプリ用に自動作成。seadice.win/privacy/{slug}-app1/ などで公開される。
ポートフォリオサイトを更新seadice.win/tools/ のインデックスページと seadice.win のトップページのToolsセクションに新しいカードを追加する。
Flutterアプリのコードを3本生成
別リポジトリ(apps-pipeline)に各アプリのFlutterプロジェクトを生成。AdMob・サブスク対応済みのコードベースから始められる。
GitHubにプッシュ → 自動デプロイ
GitHub ActionsとFirebase Hostingの連携により、コミットするだけで seadice.win に自動デプロイされる。
技術スタック
クラウドエージェント(Claude Routines)
Claude AIのAPIに含まれるスケジュール実行機能を使っている。エージェントにプロンプトを渡しておくと、指定した時間にクラウド上で自動起動する。PCの電源が切れていても、タブを閉じていても関係ない。
Cronの設定は 0 19 * * *(UTC19:00 = JST 4:00)。毎日1回、寝てる間に全部やってくれる。
エージェントには以下の権限を与えている:
- GitHubリポジトリの読み書き(
ghCLI経由) - Webリサーチ(競合調査・市場調査)
- ファイルの作成・編集
- git commit / push
GitHub Actions + Firebase Hosting
エージェントがGitHubにプッシュすると、GitHub Actionsが起動してFirebaseに自動デプロイする。設定ファイルは .github/workflows/firebase-hosting-merge.yml の1ファイルだけ。
GitHubは今回の用途(プライベートリポジトリ、Actions分)は無料枠で収まる。Firebase Hostingも無料枠(1GB/月)で十分。つまり追加コストゼロで動く。
Webページの設計思想
自動生成するHTMLは徹底的に軽量化した:
- JavaScriptゼロ(静的HTMLのみ)
- 外部フォントなし(システムフォント使用)
- CSSはインラインで記述
- 画像はWebP形式
- JSON-LDでStructured Data対応
理由はPageSpeed Insightsのスコアを100点に近づけるため。検索流入を狙うなら読み込み速度はSEOに直結する。
実際に動かした結果
今日の午後に初めて手動でエージェントを起動したところ、「副業の確定申告」というジャンルが選ばれて seadice.win/tools/fukugyo-tax/ が生成された。
最初の実行でいくつかハマった点があった。
GitHubのApp認証でハマった
エージェントがGitHubにプッシュしようとしたとき、認証エラーが出た。クラウドエージェントからGitHubに書き込むには、GitHubのOAuth AppをClaudeのクラウド環境にインストールする必要があった。これを設定してからは問題なく動いた。
firebase.jsonの上書き事故
GitHub Actionsをセットアップするときに firebase init hosting:github を実行したら、既存の firebase.json が上書きされてしまい、一時的に本番サイトが「Firebase Hosting Setup Complete」という白いページになった。firebase init 系のコマンドは既存プロジェクトでは慎重に使う必要がある。
手動で firebase deploy --only hosting を実行して復旧した。
デプロイが反映されない
ブラウザのキャッシュが原因で古いページが表示されることがあった。firebase.json のキャッシュヘッダー設定で、エントリーポイントになるファイル(index.html、flutter_bootstrap.jsなど)は no-cache にすることで解決した。
自動化できないこと
正直に言うと、全部が自動なわけではない。App Storeへの申請だけは今も手作業が残っている。
- flutter build ipa(ビルドはローカルのMacが必要)
- Transporterでアップロード
- App Store Connectで審査情報を入力・申請
これで1本あたり約30分。3本なら90分。毎日やるには重いが、週1〜2回まとめてやる前提なら現実的なペースだ。
Appleの審査は自動化できない。ただし一度審査を通過したアプリは、アップデートの審査が短くなる傾向がある。最初の1本をしっかり通しておくことが重要。
マネタイズの設計
自動生成されるアプリはすべて同じ収益モデルで設計している:
- 無料: 基本機能 + AdMobバナー広告
- 広告視聴: インタースティシャル広告を見て追加機能を解放
- サブスクリプション: 月額課金で広告なし・全機能解放
ニッチなターゲットを狙う理由は、競合が少ない分、検索で上位に出やすいから。「副業 確定申告 計算」みたいなロングテールキーワードで検索したユーザーが、そのジャンル専用のアプリを見つけてダウンロードするという流れを狙っている。
今後の展開
毎日3本 × 365日 = 年間1095本のアプリコードが蓄積される計算になる。全部をリリースはしないが、月に数本をリリースするだけでポートフォリオが積み上がっていく。
Webサイトはリリース前から公開されているので、SEOが先行して育つ。アプリがリリースされたときにはすでに検索に引っかかっている状態を作れるのが、このパイプラインの狙いだ。
実際にどれくらいのダウンロード数になるかは、数ヶ月後にまた記事にする予定。