「作っては使わない」を繰り返していた私が、運用コスト0円でアプリを公開できるようになった話
目的のないプログラミング学習
「勉強しているのに、なぜか手応えがない」
そんなふうに感じた時期、ありませんか?
私には、何年も続きました。
エンジニアとしてのキャリアが始まる前、私はプログラミングを「勉強のための勉強」として続けていました。
書籍や Web サイトのサンプルコードを IDE に打ち込み、コンソールに出力する。動いたら次の章へ進む。それ自体は悪いことではありませんが、私には学習を通じて何を作りたいのかが明確ではありませんでした。
「Java の文法を覚えた」「SQL が書けるようになった」——知識は増えていくのに、それを使って何かを生み出す実感がない。インプットだけが積み上がり、アウトプットの出口がない状態が何年も続いていました。
「作っては使わなくなる」ループ
やがて個人でアプリ開発を始めましたが、別の壁にぶつかりました。
作ったアプリをインターネット上に公開する方法がわからないのです。
正確に言えば、「サーバを構築しなければならない」「サーバの運用にはお金がかかる」という思い込みがありました。AWS や Azure のサービス一覧を眺めては、月額料金のシミュレーションに怯え、結局ローカルで完結するアプリばかり作っていました。
こうして生まれたのが、作っては使わなくなるループです。
- アイデアを思いつく
- ローカルで動くアプリを作る
- 自分しか使わないので飽きる
- 放置して次のアイデアに移る
- 1 に戻る
このループを何周も回しました。技術力は少しずつ上がっているのに、誰かに届くものは何一つ残らない。もどかしさだけが積もっていきました。
Claude Code との出会い
転機になったのは、Claude Code との出会いでした。
Claude Code が変えたのは、コーディングの速度だけではありません。サーバ構築のハードルが劇的に下がったことが、私にとって最大のインパクトでした。
「GitHub Pages でホスティングすれば静的サイトは無料で公開できる」「Vercel なら Next.js がそのままデプロイできる」「Supabase なら PostgreSQL が無料枠で使える」——これらの知識は以前からぼんやり知っていましたが、実際に設定ファイルを書き、CI/CD を構築し、ドメインを紐づける具体的な手順は、一人では踏み出せない領域でした。
Claude Code と一緒なら、その具体的な手順を一つずつ確認しながら進められます。結果として、私は初めてインターネット上にアプリを公開し、自分以外のユーザーに触ってもらえる環境を手に入れました。
制約駆動の設計思想
公開できるようになったことで学習はさらに加速しました。しかし、私の学びをもう一段深くしたのは制約駆動の設計です。
AWS や Azure を潤沢に使えば、技術的な制約はほぼなくなります。でも、それでは面白くない。
そこで私が自分に課したルールが、運用コストを 0 円にするということです。
このルールのもとでは、あらゆる技術選定がトレードオフの連続になります。
| 判断ポイント | 制約なしの選択 | 0 円制約での選択 |
|---|---|---|
| ホスティング | EC2 / ECS | GitHub Pages / Vercel(無料枠) |
| データベース | RDS | Supabase Free / ローカル Drift DB |
| 認証 | Cognito | NextAuth.js + 自前実装 |
| メール送信 | SES | Resend(無料枠)/ Formspree |
| ストレージ | S3 | Git リポジトリ内 / ブラウザ IndexedDB |
| バッチ処理 | Lambda + EventBridge | GitHub Actions(cron) |
「使いたいサービスが有料なら、無料で同じ体験を提供するにはどうするか」を考え続けることで、サービスの本質的な機能とコスト構造を深く理解できるようになりました。これは教科書からは学べない、実践でしか身につかない設計力です。
メンテナンスフリーの追求
運用コスト 0 円に加えて、もう一つ追求しているのがメンテナンスフリーです。
個人開発では「作った後の運用」が最大の敵です。手動でデプロイしなければならない、手動でデータを更新しなければならない——こうした運用負荷があると、やがてモチベーションが下がり、プロダクトは放置されます。
そこで私は、日次の自動バッチ処理を GitHub Actions で構築し、以下を自動化しています。
- ブログ記事の予約投稿 —
dateが当日以前の記事を自動公開 - 外部 API データの取得 — Qiita 記事を定期取得してサイトに反映
- ビルド&デプロイ — main ブランチへの push で自動デプロイ
これにより、記事を書いて Git に push するだけで、あとは全自動で公開まで完了します。サーバの面倒を見る必要はゼロ。コストもゼロ、メンテナンスもゼロ。
実際に公開しているプロダクト
現在、運用コスト 0 円で 3 つのプロダクトを公開・運用しています。
| プロダクト | 技術スタック | ホスティング |
|---|---|---|
| ユメハシ | Flutter Web / Drift / Riverpod | GitHub Pages |
| Defrago | Flutter Web / Drift / Riverpod | GitHub Pages |
| HomePage | Astro / TypeScript | GitHub Pages |
3 つとも月額の運用コストは完全に 0 円です。
先行投資としての Claude Code
Claude Code の利用には月額のサブスクリプション費用がかかります。これは確かにコストです。
しかし、私はこれを先行投資と捉えています。
Claude Code を使い始める前の私は、ローカルでしか動かないアプリを作っては放置するループに囚われていました。今の私は、3 つのプロダクトを公開し、ポートフォリオサイトを運用し、ブログ記事を定期発信しています。
この差を生み出したのが Claude Code との対話です。支払っている金額以上のリターンを、スキルの成長という形で確実に受け取っていると感じています。
「目的のない学習」から「制約のある実践」へ
振り返ると、私のプログラミング学習は 3 つの段階を経てきました。
- インプット期 — 書籍・Web で文法を学ぶ(目的なし)
- ローカル期 — アプリを作るが公開できない(出口なし)
- 公開期 — 制約のもとで設計し、インターネットに公開する(現在)
第 1 段階から第 2 段階への移行は自然に起きましたが、第 2 段階から第 3 段階への移行には外部のきっかけが必要でした。私の場合、それが Claude Code でした。
もし今、同じように「作っては使わない」ループにいる人がいるなら、伝えたいことは一つです。
サーバにお金はかからない。公開する方法は、想像よりずっと簡単だ。
GitHub Pages、Vercel、Supabase——無料で使えるインフラは山ほどあります。そして、その設定手順を一緒に歩いてくれるパートナーとして、AI ツールは非常に優秀です。
最初の一歩を踏み出せれば、学びの速度は静かに、でも確実に変わります。「作っては使わない」の先に、「作って届ける」 という、まったく違う景色が待っています。
もし、フォルダの奥に眠っているローカルアプリがあるなら、まずはそのひとつを GitHub Pages に上げてみてください。完成度は問いません。誰かに見える場所に出すこと、それ自体が次の景色への扉になります。
関連記事
- 「テスト工程が消滅した」— AI 駆動開発 vs 従来開発を全工程で比較してみた — Claude Code を使った開発の具体的な実績データ
- 『ユメログ』から『ユメハシ』へ — 夢と現実のあいだに、橋を架ける — 運用コスト 0 円で運用しているプロダクトの開発哲学
- Astro v6 で個人ホームページを作って分かった — 情報の少ないフレームワークで設計を通す技術 — このサイト自体の技術スタックと設計判断