【個人開発】寂しすぎてAI(Manus+Codex)を酷使し、3日で「最強の起業家マッチングアプリ」を実質0円で作った話
はじめに:なぜ作ったのか
「起業仲間、どこで探せばいいんだ問題」
エンジニアなら一度は直面しませんか?
既存のマッチングアプリを血眼になって探しましたが、結論、まともなアプリがこの世に存在しません。
あるのは高額な月額課金が必要なサービスか、更新が止まった廃墟だけ。
「じゃあ異業種交流会に行けよ」と言われますが、内気なエンジニアにとって、知らない人に名刺を配り歩くなんて拷問でしかありません。
「もっとエンジニア・起業仲間が、GitHubの草を見せ合うくらいのノリで出会える場所が欲しい!」
「ないなら作るか。AIも進化してるし、なんとかなるだろ」
そんな軽い気持ちで始めたら、
最新技術(React 19)と泥臭い節約術(無料枠フル活用)
を駆使した、ガチな開発になってしまった記録です。
成果物:みんなで起業
Manusで1日、Codexへの移行と修正で2日。
合計たったの3日間で完成したのがこちらです。


みんなで起業
主な機能
- マッチング: スワイプ形式ではなく、リスト検索形式でサクサク探せる
- リアルタイムチャット: WebSocket (Socket.IO) で即レス可能
- 画像・ファイル送信: 履歴書やピッチデックも送れる(Cloudflare R2連携)
- 募集・イベント機能: 掲示板的な使い方もOK
そして最大の特徴は、
現在ユーザーが私とAIしかいない「限界ゴーストタウン」
であることです。
(記事の最後に登録リンクがあります。助けてください。。。)
🛠 開発フロー:AI戦国時代の「使い分け」戦略
今回の開発テーマは
「とにかく金と時間をかけない」
です。
通常なら数ヶ月かかる開発を、以下のフローで3日に短縮しました。
1. Manusで「5割」を爆速生成 (Day 1) 🚀
初手は、最近話題の自律型AIエージェント「Manus」を使用しました。
Manusは、控えめに言って神です。どんなに重いタスクでも自律して完走してくれるエージェントで、ベンチマークでもChatGPT,Geminiを上回っています。
↓Manusでの開発風景

「起業家マッチングアプリを作りたい。技術スタックはReact, Node.js, MySQL。デザインはモダンに」と投げると、プロジェクト構成、基本のUIコンポーネント、ルーティングまで一気に生成してくれます。
Manusは、毎日付与される無料クレジットと、友達招待で貰えるクレジットだけで、初期開発には十分足ります。ここにお金はかけていません。
↓Manus試してみたい方はここからどうぞ(500クレジットもらえます)
これだけで開発の50%(台作り)が1日で完了しました。「真っ白なエディタを見つめて途方に暮れる時間」がゼロになるのは革命的です。
2. クレジット切れ → Cursor + Codex CLIへ移行 (Day 2-3) 🛠️
Manusは神ですが、クレジットが尽きると課金が必要です。
個人開発にお金はかけたくないので、ここからは Cursor + OpenAI Codex CLI に移行しました。
実は Cursor + Claude Code も試したのですが、今回のプロジェクト規模だとCodexの方が堅牢なコードを書き、エラーの発生率が低いと感じました。
Codex CLIの凄さと「泥臭い」運用術
Codex CLIは、ChatGPTの無料アカウントさえ持っていれば誰でも使えます。Cursor上でCodex拡張機能をインストールするだけです。
↓Cursor+Codexでの開発風景

最強のメリット:
- 並列処理: Codexは「ここのバグ直して」「あっちのデザイン変えて」といった複数の依頼を並列で投げられます。人間がコードを読んでいる間に裏でAIが3つ仕事を片付けている、という超効率的な動きが可能です。
- 無料枠ハック: Codexには週あたりの会話制限があり、ガッツリ開発するとすぐに上限に達します。そこで私はChatGPT無料アカウントを複数持っておくという物理的な力技で解決しました。制限が来たらアカウントを切り替える。これで実質無限に使えます。
☁️ 脱Manus依存:インフラの再構築
Manusは便利ですが、デフォルトだとManusのサーバー環境に依存してしまいます。
「自分のプロダクト」として独立させるため、インフラ周りはガッツリ移行しました。
1. DB移行:Manus MySQL → Railway MySQL
Manus管理下のDBから、デプロイ先である Railway 上のMySQLにスキーマを移行しました。
Drizzle ORM を採用していたおかげで、接続文字列を変えてマイグレーションを走らせるだけで済みました。
2. ストレージ移行:→ Cloudflare R2
マッチングアプリにおいて「アバター画像」「チャットでのPDF送信」は必須機能です。
最初はローカル保存やDB保存を考えていましたが、容量が大きくなると死にます。AWS S3は個人には料金設定が怖い。
そこで Cloudflare R2 を採用しました。
- Egress(下り転送量)が無料!
- S3互換APIがあるので、
aws-sdkがそのまま使える - 無料枠がデカい
チャットルームで重いピッチデック(PDF)を投げ合っても、R2ならお財布の心配がいりません。
💻 最終的な技術スタック詳細
ManusとCodexとペアプロした結果、以下のようなモダンかつ実践的な構成になりました。
| カテゴリ | 技術 | 選定理由 |
|---|---|---|
| Frontend | React 19 |
useOptimistic による「いいね」の即時反映など、UX向上のため採用。 |
| Build | Vite 7 | 開発体験(HMR)の爆速化。 |
| Styling | Tailwind CSS v4 | CSS変数対応などの新機能を先取り。shadcn/ui との相性も抜群。 |
| Backend | Node.js + Express | AIが得意とする定番構成。 |
| API | tRPC v11 | これ最高。 フロントとバックで型定義を共有し、API叩く際も型安全に。ドキュメント不要。 |
| Realtime | Socket.IO | チャットと「マッチ成立通知」のリアルタイム化に使用。 |
| Database | MySQL (PlanetScale/Railway) | スケーラビリティ重視。 |
| ORM | Drizzle ORM | 軽量でSQLライクに書けて、マイグレーション管理が楽。 |
| Storage | Cloudflare R2 | 画像・ファイル保存用。S3互換・転送量無料。 |
苦労した点:React 19 useOptimistic と WebSocket の競合
React 19の目玉機能 useOptimistic を使って、「いいね」ボタンを押した瞬間にUIを更新するようにしました。
しかし、WebSocketからも「マッチ成立」のイベントが飛んできます。
**「楽観的更新による仮の状態」と、「サーバーから来る真の状態」**の整合性を取るのに苦労しました。
結局、tRPCの onSuccess でキャッシュを invalidate しつつ、WebSocketイベントでも強制的に再フェッチをかけるという力技で解決しました。
// クライアント側のフック例(雰囲気)
const utils = trpc.useUtils();
// WebSocketでマッチ通知が来たらキャッシュを破棄して強制更新
socket.on("match_notification", () => {
utils.matching.getMatches.invalidate();
toast("マッチしました!🎉");
});
🚀 デプロイ:Railwayで爆速公開
開発が完了しても、デプロイ(公開)で躓くと心が折れますよね。
今回はRailwayを採用しました。Heroku亡き今の、個人開発者の新たな聖地です。
手順は拍子抜けするほど簡単でした。
1. CursorのターミナルからGitHubへPush
まずはコードをGitHubに上げます。Cursorの統合ターミナルでいつもの呪文を唱えるだけです。
git add .
git commit -m "feat: complete beta version"
git push origin main
2. RailwayとGitHubを連携
Railwayのダッシュボードを開き、「New Project」→「Deploy from GitHub repo」を選択。
先ほどPushしたリポジトリを選ぶと、勝手に構成(Node.jsなど)を解析してビルドが始まります。
Dockerfileすら書いていませんが、Railwayが「あ、これNode.jsですね、把握」といった感じでよしなに計らってくれました。
3. 環境変数の設定
ローカルの .env に書いていた内容(DBの接続情報やCloudflare R2のキーなど)を、Railwayの管理画面からコピペします。
これだけでデプロイ完了。
URLが発行され、世界中に「私とAIしかいないマッチングアプリ」が公開されました。
インフラ構築の知識ゼロでも、Pushしてから5分後には本番環境が動いているスピード感は感動モノです。
まとめ:AI時代でも「泥臭さ」は必要
ManusとCodexのおかげで、コードを書く量は劇的に減りました。
しかし、「どの技術を選ぶか」、「コストをどう抑えるか」、「バグをどう踏み抜くか」という判断は、まだ人間にしかできません。
特に「無料枠のアカウントを切り替えて乗り切る」みたいな泥臭いハックは、AIには提案できない(コンプライアンス的に)人間の知恵です。
最後に:助けてください
技術的には満足いくものができましたが、致命的なバグがあります。
それは「ユーザーがいない」ことです。
現在、私とテストデータのボットしか存在しません。
React 19で動くモダンなチャット画面も、相手がいなければただの独り言です。
エンジニア、起業家、デザイナー、あるいは「AIで作ったアプリの粗探しをしてやるか」という冷やかしの方。
どなたでも大歓迎です。完全無料ですので、ぜひ登録して遊んでみてください。
▼ みんなで起業
開発者が泣いて喜びます。
Discussion