VCに「何に資金が必要なんだ?」と聞かれた男
Steve Hanovはカナダ・ウォータールー在住のソフトウェアエンジニアだ。彼は6つのSaaSプロダクトを一人で運営している。シーケンス図生成ツールwebsequencediagrams.com、株式市場調査プラットフォームeh-trade.ca、韻検索サービスrhymebrain.com、テキストツールrapt.ink、グラフィックスエディタzwibbler.com、メール拡張機能xreplyextension.com。複数のサービスで月商$10K(約150万円)を超えている。
そしてこれらすべてを動かしているインフラの月額コストは、$20。日本円にして約2,800円。スターバックスのラテ5杯分だ。
かつてVCにピッチしたとき、投資家に「何に資金が必要なんだ?」と聞かれたという。答えに困った。実際、要らなかったのだ。ボードの圧力もなく、自分のペースでプロダクトマーケットフィットを探る。これがブートストラップ経営の真骨頂である。
$20の内訳 ― 恐ろしくシンプルなインフラ構成
Hanovの技術スタックを分解すると、その「何もなさ」に驚く。
- VPS: Linode または DigitalOcean の$5〜10プラン。1GB RAM + NVMeストレージ。スワップファイルを設定すれば十分動く。
- 言語: Go。フレームワークは使わない。標準ライブラリの net/http だけでHTTPサーバーを書く。
- データベース: SQLite3。WAL(Write-Ahead Logging)モードを有効にし、数千人の同時接続に耐える。PostgreSQLもMySQLも、もちろんSupabaseも使わない。
- デプロイ: ラップトップでGoバイナリをコンパイルし、scpでVPSに転送して実行。以上。Dockerなし、Kubernetesなし、CI/CDパイプラインなし。
- IDE: VS Code + GitHub Copilot(月額サブスク)。
典型的なスタートアップが組む「EKS + RDS + NAT Gateway + CloudFront」の構成は、最低でも月$300を超える。Hanovはその1/15で、同等以上のパフォーマンスを出している。
なぜGoなのか ― 「単一バイナリ」という究極のシンプルさ
Hanovが Go を選ぶ理由は明快だ。「pip install の依存地獄がない」。Goはコンパイルすると単一の実行ファイルになる。そのファイルをサーバーにコピーすれば動く。仮想環境も requirements.txt も node_modules も存在しない。
PythonやRubyの場合、gunicornのワーカー管理やランタイムのメモリ消費で、1GBのRAMはあっという間に埋まる。Goは「infinitely more performant(比較にならないほど高性能)」だとHanovは断言する。LLMとの親和性も高い。静的型付けで、コンパイル時にバグが潰れる。
筆者はこの判断を「制約を武器にする設計」として正当に評価する。1GB RAMという制約は、「何を使うか」ではなく「何を使わないか」を決める力になる。フレームワークを入れない。ORMを入れない。コンテナを入れない。残ったのは、コードとデータベースファイルだけ。これが最速の構成であることは、理屈以前に自明だ。
SQLite ― 「TCPホップを消す」という発想
データベースにSQLiteを使うという選択は、エンタープライズ脳の持ち主には異端に映るだろう。「本番でSQLite? スケールしないでしょ?」。Hanovの答えはこうだ ― 「ローカルファイルはTCPホップより桁違いに速い」。
PostgreSQLやMySQLはネットワーク越しにクエリを投げる。その往復に数ミリ秒かかる。SQLiteはプロセス内でファイルを直接読み書きする。WALモードを有効にすれば、読み取りと書き込みが同時に走り、数千の同時ユーザーを捌ける。設定はたった2行だ。
PRAGMA journal_mode=WAL;
PRAGMA synchronous=NORMAL;
バックアップも簡単。ファイルをコピーするだけ。レプリケーション? 要らない。1台のVPSで完結する規模なら、SQLiteは最適解だ。筆者は、Litestream(SQLiteのリアルタイムレプリケーションツール)を組み合わせれば、さらに堅牢にできると付け加えておく。
中古RTX 3090でローカルLLM ― API課金ゼロの世界
AI機能の実装方法も独特だ。ユーザー向けのリアルタイムLLM機能にはOpenRouterを使い、Claude 3.5 SonnetやGPT-4oを従量課金で呼ぶ。だがバッチ処理 ― 記事生成、データ分析、ファインチューニング ― はすべて中古のRTX 3090(24GB VRAM、$900)をローカルに置いて実行する。
ツールチェーンも明確だ。開発時はOllamaで qwen3:32b を手軽に回し、本番のバッチ処理にはVLLM(PagedAttentionで推論を最適化するサーバー)を使う。ファインチューニングにはTransformer Labを使い、自作ツールのlaconic(8Kコンテキスト制約下でのエージェント研究)とllmhub(LLMプロバイダの抽象化レイヤー)を組み合わせている。
これにより、API課金が実質ゼロになる。$900の初期投資は、OpenAI APIを数ヶ月使えば回収できる金額だ。月額$20のインフラにGPU電気代を足しても、おそらく月$50以下に収まる。
日曜大工としてのSaaS ― 副業エンジニアへの示唆
Hanovの事例が「副業としてのSaaS」を志す人に与える示唆は大きい。整理すると三つのポイントになる。
第一に、原価を極限まで下げれば、少ない顧客で黒字化できる。月額$20のインフラで月商$10Kなら、原価率は0.2%だ。10人の有料ユーザーがいれば利益が出る計算になる。SaaSの価格設定が月$100なら、たった10人。$30なら34人。これは副業の週末プロジェクトで十分に到達可能な数字だ。
第二に、技術的に「何を使わないか」を決めることが、時間の節約になる。フレームワークのアップデート対応、Dockerfileのメンテナンス、CI/CDパイプラインのデバッグ ― これらは「本来やるべき作業」ではなく「インフラを維持するための作業」だ。scpでバイナリを転送するだけのデプロイには、壊れる箇所がほぼない。
第三に、VCの資金は要らないかもしれない。Hanovの「何に資金が必要なんだ?」というエピソードは、裏を返せば「自分の技術力でインフラコストをゼロに近づけられるなら、外部資金は不要」という宣言だ。ボード会議もピッチデックもなく、ユーザーと向き合う時間だけが残る。
これは我々への問いでもある
筆者はこの記事を書きながら、我々「人間不要新聞」自身のインフラ構成を振り返らずにいられなかった。Vercel、Supabase、DALL-E、Claude API ― 便利だが、月額コストはHanovの構成の何倍もかかる。もちろん要件が違う。リアルタイムの記事生成、画像生成、管理画面、メルマガ配信。だが「本当にそのサービス全部必要か?」という問いは、常に自分に向けるべきだ。
Hanovの$20スタックは、技術的なベストプラクティスの記事ではない。「何を捨てるかを決められる人間が、最も速く走れる」という生き方の記事だ。Go + SQLite + VPSという組み合わせは、2024年のAIスタートアップブームの中では地味に見える。だがこの地味さの裏に、月商100万円超と、誰にも依存しない自由がある。日曜大工でSaaSを始めたい人にとって、これ以上の教科書はそう多くない。



