はじめに
「勉強した技術を、どうやって自分の力に変えればよいのだろう」「ポートフォリオに何を載せればよいのだろう」と迷う学生・若手エンジニアに、まずおすすめしたいのが個人開発です。
個人開発は、すごいサービスを一発で当てるためだけの活動ではありません。自分で課題を決め、作り、公開し、使ってもらい、直す。この一連の経験を小さく何度も回すための練習です。授業、研修、技術書だけでは得にくい「完成まで運ぶ力」が身につきます。
この記事では、最初の題材の選び方、開発を前に進めるキーワード、無料から使えるデプロイ先を紹介します。2026年7月時点の情報です。
最初の作品に、ログイン・決済・チャット・AI・ネイティブアプリを全部載せる必要はありません。まずはURLを人に渡せる、小さなWebアプリを1本公開しましょう。
この記事の結論
- 個人開発の最初の目標は「役に立つ大作」ではなく、公開済みの小作品を1つ作ることです。
- アイデアは自分の不便から選び、機能は「1画面・1目的」に絞ります。
- GitHubにコードを置き、VercelまたはCloudflareで公開すれば、デプロイの経験まで得られます。
- 反応がなくても失敗ではありません。公開後に直した回数が、次の開発の速度になります。
個人開発で得られるもの
個人開発の価値は、フレームワークの使い方を覚えることだけではありません。実務でも必要になる、次の判断を自分で経験できます。
| 経験 | 個人開発でやること | 身につく力 |
|---|---|---|
| 課題設定 | 「誰の何を楽にするか」を決める | 要件を小さく切る力 |
| 設計 | 画面・データ・処理を考える | 実装前に迷いを減らす力 |
| 実装 | 詰まりながら動くものにする | 調査し、試す力 |
| 公開 | URLを発行して他人に触ってもらう | デプロイと運用の基礎 |
| 改善 | 感想や自分の不満を反映する | 優先順位を付ける力 |
特に「公開」は大切です。ローカル環境で動くことと、誰かがスマホから使えることの間には、環境変数、ビルド、ルーティング、エラー画面など多くの学びがあります。
最初に作るなら、このくらいでよい
題材選びで止まるなら、「自分が今週ちょっと困ったこと」を出発点にしましょう。身近な課題は仕様を想像しやすく、完成後に自分で使い続けられます。
| 開発例 | 最初の機能 | 次の改善 |
|---|---|---|
| 課題・締切カウントダウン | 課題名と期限を登録し、残り日数を表示する | カレンダー表示、通知 |
| 勉強記録アプリ | 今日学んだことを1行で保存する | タグ、連続記録 |
| 割り勘計算機 | 金額と人数から1人分を計算する | 端数の配分、履歴 |
| 就活・読書の応募管理 | ステータスを一覧で管理する | 検索、CSV出力 |
| サークル用の出欠確認 | 名前と参加可否を入力する | 共有リンク、集計 |
ここで重要なのは、最初のリリースで一つの行動を完結させることです。たとえば「課題・締切カウントダウン」なら、最初は「期限を一つ入力して残り日数を表示する」だけで完成です。ユーザー登録や通知は、公開してから必要になったときに足せば十分です。
30分で作れる、締切カウントダウンの例
HTMLとJavaScriptだけでも、小さな作品は始められます。次の例を index.html として保存し、ブラウザで開けば動きます。
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>締切カウントダウン</title>
</head>
<body>
<h1>締切カウントダウン</h1>
<label>
締切日
<input id="deadline" type="date" />
</label>
<button id="calculate">残り日数を表示</button>
<p id="result" aria-live="polite"></p>
<script>
const deadline = document.querySelector('#deadline');
const result = document.querySelector('#result');
document.querySelector('#calculate').addEventListener('click', () => {
if (!deadline.value) {
result.textContent = '締切日を入力してください。';
return;
}
const today = new Date();
today.setHours(0, 0, 0, 0);
const target = new Date(`${deadline.value}T00:00:00`);
const remainingDays = Math.ceil((target - today) / 86_400_000);
result.textContent = `締切まであと ${remainingDays} 日です。`;
});
</script>
</body>
</html>
この段階では見た目が質素でも問題ありません。次にCSSを当てる、入力を localStorage に保存する、ReactやNext.jsで作り直す、と段階的に育てられます。
提出期限などの重要な日時を扱うアプリは、タイムゾーンや締切時刻の扱いを後で必ず確認してください。最初は「日付だけを表示する」仕様にしておくと、複雑さを抑えられます。
開発を進めるためのキーワード
MVP(Minimum Viable Product)
MVPは、価値を確かめるための最小限のプロダクトです。「最低限の品質」ではなく、一番大事な価値だけが伝わる状態を指します。
締切アプリなら「締切を登録して残り日数を見る」がMVPです。ログイン、テーマ切り替え、ランキングは価値の検証後に追加できます。機能を削ることは手抜きではなく、完成に近づくための設計です。
課題仮説
「学生は締切を忘れがちなので、残り日数が見えれば助かるはず」のように、誰のどんな課題を解くかを一文にする考え方です。仮説があると、追加機能を判断しやすくなります。
機能を思いついたら、次の問いで絞ってください。
- この機能は、最初の課題を直接解決するか
- 今作らなければ、公開できないか
- 実際に使った人が欲しいと言ったか
Git / GitHub
Gitはファイルの変更履歴を管理する仕組み、GitHubはそのリポジトリを共有・公開できるサービスです。個人開発では「動いた状態」をコミットとして残しておくと、壊したときに戻れます。
最低限、次の流れを使えれば十分です。
git add .
git commit -m "締切の残り日数を表示する"
git push
コミットメッセージには「何を変えたか」を書きます。後から見返した自分も、立派なチームメンバーです。
デプロイ
デプロイとは、開発したアプリをインターネット上で動かし、URLからアクセスできる状態にすることです。GitHubとデプロイ先を連携すると、main ブランチへpushするだけで自動公開できるサービスが多くあります。
README
READMEは、リポジトリを開いた人に「何を作ったのか」「どう動かすのか」を伝える説明書です。完成度を示すだけでなく、数か月後の自分を助けます。
最初は次の4項目で十分です。
- アプリの概要と解決したい課題
- 使った技術
- ローカルでの起動方法
- 公開URLと今後追加したい機能
無償で使い始められるデプロイ先
無料枠・利用規約・上限は変更されるため、公開直前に必ず公式の料金ページを確認してください。また、無料枠であっても、外部APIや独自ドメイン、データベースで費用が発生する場合があります。
| サービス | 向いているもの | はじめやすさ | まず知っておくこと |
|---|---|---|---|
| Vercel | Next.js、React系のWebアプリ | とても高い | GitHub連携からプレビュー・本番公開まで進めやすい |
| Cloudflare Workers / Pages | 静的サイト、エッジで動くAPI、軽量なWebアプリ | 高い | Workersの無料プランには実行回数・CPU時間などの上限がある |
| GitHub Pages | HTML/CSS/JavaScriptだけの静的サイト | とても高い | サーバー側の処理は実行できない |
| Netlify | 静的サイト、フロントエンド中心のWebアプリ | 高い | 無料枠の利用量とチーム設定を確認する |
Vercel:Next.jsを最短で公開したいとき
VercelはNext.jsとの相性がよく、GitHubリポジトリを連携してフレームワークを選べば、ビルドと公開を進められます。プルリクエストごとに確認用URLを作るプレビュー機能もあり、変更を共有しやすいのが魅力です。
「ReactやNext.jsでポートフォリオを作りたい」「まずは公開までの成功体験がほしい」なら、最初の候補におすすめです。Hobbyプランは個人利用・非商用の制約などがあるため、用途が変わったらプラン条件を確認してください。
Cloudflare Workers / Pages:静的配信からAPIまで触りたいとき
Cloudflareでは静的アセットの配信に加え、Workersでリクエストに応じた処理をエッジ1で動かせます。たとえば、フロントエンドと小さなAPIを一つのサービスで試したいときに便利です。
Workers Freeプランには、1日あたりのリクエスト数や1回の実行で使えるCPU時間などの制限があります。個人開発の小規模な検証には始めやすい一方、重い処理や急なアクセス増には、メトリクスと上限を確認する習慣を付けましょう。
GitHub Pages:まず静的サイトを公開したいとき
GitHub Pagesは、GitHubリポジトリからHTML、CSS、JavaScriptで作った静的サイトを公開できる機能です。ポートフォリオ、技術メモ、プロダクトの紹介ページに向いています。
サーバーでデータを処理するAPIや秘密情報を置く用途には向きません。その代わり、構成がシンプルなので「GitHubにpushしてURLを公開する」最初の一歩として非常に良い選択です。
Netlify:フロントエンドを手軽に継続公開したいとき
NetlifyもGit連携による自動デプロイを提供しており、静的サイトやSPA(Single Page Application)を公開しやすいサービスです。Vercelと同様に、GitHubへpushする開発フローと相性がよいでしょう。
料金体系は変更されることがあるため、チーム利用やアクセスが増えてきた段階では、ダッシュボードの利用状況と公式ドキュメントを確認してください。
迷ったときの選び方
最初から最適解を選ぶ必要はありません。以下を目安に、一つ選んで実際に公開してみてください。
| 作りたいもの | 最初の選択 |
|---|---|
| HTML/CSS/JavaScriptだけの紹介サイト | GitHub Pages |
| Next.jsで作るポートフォリオやWebアプリ | Vercel |
| 軽いAPIやCloudflareのサービスも試したい | Cloudflare Workers / Pages |
| React/Viteなどの静的フロントエンド | Netlify または Cloudflare |
デプロイ先を比較して一週間使うより、どれか一つで今日URLを出すほうが学びは大きいです。乗り換えは後からできます。
公開までの小さなチェックリスト
- 誰の、どんな不便を解決するかを一文で書いた
- 最初の機能を一つに絞った
- ブラウザで一連の操作を試した
- GitHubへpushした
- 公開URLを自分のスマホで開いた
- READMEに概要・技術・URLを書いた
- 友人一人にURLを渡し、感想を聞いた
最後の項目は少し緊張しますが、最も効きます。「どこを押せばよいか分からなかった」「この機能がほしい」といった一言は、次に作るべきものを教えてくれます。
まとめ:完成させることが、次の自信になる
個人開発は、最初から素晴らしい作品を作る競技ではありません。小さく作り、公開し、直す反復です。
まずは今週中に、身近な不便を一つ選んでください。そして、画面一つ・機能一つのアプリをGitHubに置き、VercelかCloudflare、あるいはGitHub Pagesで公開してみましょう。公開されたURLは、学習の記録であると同時に、次の挑戦を始めるための足場になります。
参考になったら、ぜひいいね・ストックをお願いします。あなたが最初に公開した作品も、コメントで教えてください。
参考資料
-
利用者に近いネットワーク拠点で処理する仕組みです。応答を速くしやすい一方、一般的なサーバー環境とは制約が異なる場合があります。 ↩

